Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
OpenCL vs denoiseprofile
#7
(11-02-18, 14:36)manu a écrit : Merci @temperdu, ton sujet m'a permis de vérifier et corriger des valeurs d'opencl_memory_* dans mon darktablerc.

Je n'ai pas d'écran 4K et j'ai également du monter à 800 pour headroom pour ne pas "retomber" sur le CPU. (nVidia GK107GLM [Quadro K1000M] avec 2Go RAM). J'ai cependant deux écrans connectés.

Je n'ai pas trouvé d'informations sur les paramètres opencl_ qu'on a dans darktablerc. J'aurais pourtant bien aimé avoir des explications au delà de headroom dont le lien que tu cites précise :

Citation :This value tells darktable how many megabytes (out of the totally available amount) should be left free for driver and video purposes.

Car j'ai mis 800 "à tâtons" sur un export jpg répété avec des valeurs différentes et en contrôlant la sortie du -d opencl, mais comment savoir si cette valeur est correcte pour d'autres traitements, à part contrôler au coup par coup la console ?

Vos échanges ainsi qu'une discussion sur la liste darktable-users m'ont poussé à aller vérifier ma configuration.

J'ai pour cela utilisé les outils cités dans les mail de la liste. À savoir, un raw de test avec son fichier xmp qu'on peut télécharger
$ wget http://www.mirada.ch/bench.SRW
$ wget http://www.mirada.ch/bench.SRW.xmp

Ainsi que les lignes de commandes pour l'utiliser
$ darktable-cli bench.SRW test.jpg --core --disable-opencl -d perf
$ darktable-cli bench.SRW test.jpg --core -d perf -d opencl

En lançant la première ligne (sans opencl), le traitement s'effectue en environ 37 secondes

J'ai ensuite fait un essai avec opencl, mais en regardant le log du traitement, je me suis aperçu qu'un module n'était pas traité avec opencl, il s'agit du module atrous (l'égaliseur en français). Le message d'erreur était le suivant :
Code :
default_process_tiling_cl_ptp] use tiling on module 'atrous' for image with full size 5490 x 3660
[default_process_tiling_cl_ptp] (2 x 1) tiles with max dimensions 4400 x 3660 and overlap 256
[default_process_tiling_cl_ptp] tile (0, 0) with 4400 x 3660 at origin [0, 0]
[opencl_atrous] couldn't enqueue kernel! -4
[default_process_tiling_opencl_ptp] couldn't run process_cl() for module 'atrous' in tiling mode: 0
[opencl_pixelpipe] could not run module 'atrous' on gpu. falling back to cpu path
Le temps de traitement dans ce cas était d'environ 15 secondes
J'ai alors tâtonné avec toutes les variables opencl_xxxx pour finir par trouver que je devais augmenter la valeur de opencl_memory_headroom. Sa valeur est par défaut de 300. Et contrairement à ce qu'on pourrait penser en lisant la description de cette variable, il ne faut pas réduire sa valeur, mais l'augmenter pour faire en sorte que tous les modules soient traités avec opencl. Cependant il ne faut pas trop l'augmenter. sinon tout est bien traité en opencl, mais les performances diminuent. En clair quand je l'augmente juste ce qu'il faut pour que tous les modules soient traités avec opencl, soit chez moi, 500, j'obtiens un temps de traitement d'environ 8,5 secondes. alors que lorsque j'augmente fortement la valeur, par exemple à 2000 le temps approche les 10 secondes. Si on examine le log, on s’aperçoit qu'à cette valeurs de nombreux modules se mettent à découper leur traitement en blocs successifs (des tuiles dans le jargon darktable), ce qui n'est pas le cas à 500. Ma carte graphique ne dispose que de trois gigaoctets de mémoire. ce qui doit expliquer le phénomène

Conclusion, il faut augmenter la valeur de opencl_memory_headroom juste assez pour que tous les modules soient traité en opencl, mais pas plus. Chez moi, c'est 500
Mes photos : jpverrue.fr
Répondre


Messages dans ce sujet
OpenCL vs denoiseprofile - par temperdu - 11-02-18, 11:04
RE: OpenCL vs denoiseprofile - par manu - 11-02-18, 14:36
RE: OpenCL vs denoiseprofile - par temperdu - 12-02-18, 09:08
RE: OpenCL vs denoiseprofile - par manu - 14-02-18, 16:29
RE: OpenCL vs denoiseprofile - par jpg54 - 11-02-18, 14:39
RE: OpenCL vs denoiseprofile - par jpg54 - 12-02-18, 09:30
RE: OpenCL vs denoiseprofile - par jpverrue - 13-02-18, 22:43
RE: OpenCL vs denoiseprofile - par pascal - 14-02-18, 08:30
RE: OpenCL vs denoiseprofile - par jpverrue - 15-02-18, 11:35
RE: OpenCL vs denoiseprofile - par temperdu - 16-02-18, 20:56
RE: OpenCL vs denoiseprofile - par temperdu - 17-02-18, 00:23

Atteindre :


Utilisateur(s) parcourant ce sujet : 4 visiteur(s)