activer OpenCL dans darktable
L’utilisation d’OpenCL dans darktable 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 darktable 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, darktable 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 darktable. Une fois tout ceci effectué avec succès, la préparation est terminée.
Par défaut OpenCL est activé dans darktable si toutes les étapes ci-dessus se sont terminées avec succès. Si vous désirez le désactiver vous pouvez le faire dans l’onglet préférences >traitement >cpu/gpu/mémoire. Ce paramètre de configuration vous indique aussi si l’initialisation d’OpenCL a échoué : il est grisé dans ce cas.
Vous pouvez à tout moment activer ou désactiver la prise en charge d’OpenCL, ce qui aura un effet immédiat. Selon le type des modules que vous utilisez, vous en remarquerez l’effet comme une accélération générale lors du travail interactif et lors de l’exportation. La plupart des modules de darktable peuvent profiter d’OpenCL mais tous ne sont pas suffisamment consommateurs de ressources pour que la différence puisse être remarquée. Afin de ressentir une vraie différence, prenez un module comme ombres et hautes lumières, renforcer la netteté, filtre passe-bas, filtre passe-haut ou encore plus extrême contrast equalizer et réduction bruit (profil).
Si vous êtes intéressé par les valeurs de profilage, vous pouvez lancer darktable 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.
En dehors de l’accélération, vous ne devriez voir aucune différence dans les résultats entre le traitement CPU et GPU. À l’exception de quelques erreurs d’arrondi, les résultats sont conçus pour être identiques. Si, pour une raison quelconque, darktable ne parvient pas à terminer correctement un calcul GPU, il détectera normalement l’échec et reviendra automatiquement (et de manière transparente) au traitement CPU.