L’utilisation d’OpenCL dans Ansel nécessite que votre PC soit équipé d’une carte graphique adaptée et que les bibliothèques requises soient installées. Les cartes graphiques modernes de NVIDIA et d’ATI prennent en charge complètement OpenCL. Le compilateur OpenCL fait normalement partie du pilote graphique propriétaire ; il est utilisé sous la forme d’une bibliothèque dynamique appelée libOpenCL.so
. Cette bibliothèque doit se trouver dans un répertoire qui puisse être trouvé par l’éditeur dynamique de liens de votre système.
Quand Ansel démarre, il va d’abord essayer de trouver et de charger libOpenCL.so et, en cas de succès, vérifier que la carte graphique disponible prend en charge OpenCL. Une quantité de mémoire graphique suffisante (1 Go+) doit être disponible afin de tirer parti du GPU. Si ce contrôle réussit, Ansel va essayer de configurer son environnement OpenCL : un contexte de traitement doit être initialisé, un pipeline de calcul doit être démarré. Les fichiers du code source d’OpenCL (d’extension .cl) doivent être lus et compilés et les routines incluses (noyaux d’OpenCL) doivent être préparées pour les modules de Ansel. Une fois tout ceci effectué avec succès, la préparation est terminée.
By default, OpenCL support is activated in Ansel if all the above steps were successful. If you want to de-activate it you can do so in Preferences > Processing > CPU, GPU, Memory. This configuration parameter is grayed out if the OpenCL initialization failed.
You can switch OpenCL support off and on at any time without requiring a restart. Depending on the type of modules you are using, you will notice the effect as a general speed-up during interactive work and export. Most modules in Ansel can take advantage of OpenCL but not all modules are demanding enough to make a noticeable difference. In order to feel a real difference, use modules like diffuse or sharpen, and denoise (profiled).
Si vous êtes intéressé par les valeurs de profilage, vous pouvez lancer Ansel avec les paramètres de la ligne de commande -d opencl -d perf
. Après chaque exécution du pipeline graphique, vous allez obtenir l’allocation détaillée du temps d’exécution de chaque module avec un profil encore plus fin pour tous les noyaux OpenCL utilisés.
Apart from the speed-up you should not see any difference in the results between CPU and GPU processing. Except for some rounding errors, the results are designed to be identical. If, for some reason, Ansel fails to properly finish a GPU calculation, it will normally detect the failure and automatically (and transparently) fall back to CPU processing.