opencl activeren in darktable
Het gebruik van OpenCL in darktable vereist dat jouw pc is uitgerust met een geschikte grafische kaart en dat deze over de vereiste bibliotheken beschikt. De meeste moderne grafische kaarten van NVIDIA, Intel of AMD worden geleverd met volledige OpenCL-ondersteuning. De OpenCL-compiler wordt normaal gesproken geleverd als onderdeel van het propriëtaire grafisch stuurprogramma en wordt gebruikt als een dynamische bibliotheek genaamd libOpenCL.so
. Deze bibliotheek moet zich in een map bevinden waar deze kan worden gevonden door de dynamische linker van jouw systeem.
Wanneer darktable start, zal het eerst proberen libOpenCL.so
te vinden en te laden en – bij succes – controleert of de beschikbare grafische kaart OpenCL-ondersteuning heeft. Er moet voldoende grafisch geheugen (1GB+) beschikbaar zijn om darktable te laten profiteren van de GPU. Als die controle slaagt, probeert darktable zijn OpenCL-omgeving in te stellen: een verwerkingscontext moet worden geïnitialiseerd, een berekeningspijplijn moet worden gestart, OpenCL-broncodebestanden (extensie is .cl
) moeten worden gelezen en gecompileerd en de meegeleverde routines (OpenCL-kernels) moeten voorbereid zijn voor de modules van darktable. Als dat allemaal met succes is voltooid, is de voorbereiding voltooid.
Standaard is OpenCL-ondersteuning geactiveerd in darktable als alle bovenstaande stappen succesvol waren. Als je het wilt deactiveren, kun je dat doen in voorkeuren > verwerken > OpenCL. Deze configuratieparameter wordt grijs weergegeven als de OpenCL-initialisatie is mislukt.
Je kan OpenCL-ondersteuning op elk moment in- en uitschakelen zonder dat je opnieuw hoeft te starten. Afhankelijk van het type modules dat je gebruikt, zal je het effect merken als een algemene versnelling tijdens interactief werken en exporteren. De meeste modules in darktable kunnen profiteren van OpenCL, maar niet alle modules zijn veeleisend genoeg om een merkbaar verschil te maken. Om een echt verschil te voelen, gebruik je modules zoals diffuus of verscherpen en [ruisreductie (profiel)](../. ./module-reference/processing-modules/denoise-profiled.md).
Als je geïnteresseerd bent in profileringsstatistieken, kan je darktable starten met de opdrachtregelparameters -d opencl -d perf
. Na elke run van de pixelpijp krijgt je details te zien van de verwerkingstijd voor elke module plus een nog fijnmaziger profiel voor alle gebruikte OpenCL-kernels.
Afgezien van de snelheid, zou je geen verschil moeten zien in de resultaten tussen CPU- en GPU-verwerking. Met uitzondering van enkele afrondingsfouten, zijn de resultaten zo ontworpen dat ze identiek zijn. Als darktable om de een of andere reden een GPU-berekening niet goed afrondt, zal het normaal gesproken de fout detecteren en automatisch (en transparant) terugvallen op CPU-verwerking.