darktable-cltest

Bonjour, je poste dans installation faute de trouver mieux/plus approprié.

Ma machine est maintenant un peu vieille avec son AMD Athlon™ 64 X2 Dual Core Processor 4200+ × 2, ses 8Go de RAM et sa carte graphique GeForce GT 620/PCIe/SSE2 avec 2Go de RAM.

Aussi l’exploitation d’OpenCL me semble peut-être une bonne opportunité pour grappiller le peu de puissance que je peux encore trouver sur cette conf.

Sur ma machine fraîchement bootée, quand je lance DT, je vois dans l’onglet « fonctionnement » de la config que « activer le support d’Open CL » est grisé.
Dans un terminal, je lance un darktable-cltest qui me crache pas mal de chose, cf. plus bas.

Je relance DT et là, « activer le support d’OpenCL » n’est plus grisé ! Cool.

Pas facile de dire si la machine est plus rapide, faudrait un bench. Disons que si ça ne paraît pas nettement plus rapide, ça ne paraît pas moins rapide non lus !

Le pb, c’est que si je redémarre la machine, je constate que je reviens à la situation du début, et qu’il me faut refaire un darktable-cltest pour re-activer le support d’OpenCL.

Bon, je peux mettre ça en cron au boot, mais ça vous paraît normal à la base ?

Ci-dessous l’output du darktable-cltest, ce qui me chiffonne aussi un peu c’est la dernière ligne…

manu@manubuntu:~$ darktable-cltest
[opencl_init] opencl related configuration options:
[opencl_init]
[opencl_init] opencl: 1
[opencl_init] opencl_library: ‹  ›
[opencl_init] opencl_memory_requirement: 768
[opencl_init] opencl_memory_headroom: 300
[opencl_init] opencl_device_priority: ‹ /!0,// ›
[opencl_init] opencl_size_roundup: 16
[opencl_init] opencl_async_pixelpipe: 0
[opencl_init] opencl_synch_cache: 0
[opencl_init] opencl_number_event_handles: 25
[opencl_init] opencl_micro_nap: 1000
[opencl_init] opencl_use_pinned_memory: 0
[opencl_init] opencl_use_cpu_devices: 0
[opencl_init] opencl_avoid_atomics: 0
[opencl_init] opencl_omit_whitebalance: 0
[opencl_init]
[opencl_init] could not find opencl runtime library ‹ libOpenCL ›
[opencl_init] could not find opencl runtime library ‹ libOpenCL.so ›
[opencl_init] found opencl runtime library ‹ libOpenCL.so.1 ›
[opencl_init] opencl library ‹ libOpenCL.so.1 › found on your system and loaded
[opencl_init] found 1 platform
[opencl_init] found 1 device
[opencl_init] device 0 GeForce GT 620' has sm_20 support. [opencl_init] device 0 GeForce GT 620’ supports image sizes of 16384 x 16384
[opencl_init] device 0 GeForce GT 620' allows GPU memory allocations of up to 511MB [opencl_init] device 0: GeForce GT 620 GLOBAL_MEM_SIZE: 2047MB MAX_WORK_GROUP_SIZE: 1024 MAX_WORK_ITEM_DIMENSIONS: 3 MAX_WORK_ITEM_SIZES: [ 1024 1024 64 ] DRIVER_VERSION: 352.63 DEVICE_VERSION: OpenCL 1.1 CUDA [opencl_init] compiling program demosaic_ppg.cl’ ..
[opencl_fopen_stat] could not open file /home/manu/.cache/darktable/cached_kernels_for_GeForceGT620/demosaic_ppg.cl.bin'! [opencl_load_program] could not load cached binary program, trying to compile source [opencl_load_program] successfully loaded program from /usr/share/darktable/kernels/demosaic_ppg.cl’
[opencl_build_program] successfully built program
[opencl_build_program] BUILD STATUS: 0
BUILD LOG:

[opencl_build_program] saving binary
[opencl_init] compiling program atrous.cl' .. [opencl_fopen_stat] could not open file /home/manu/.cache/darktable/cached_kernels_for_GeForceGT620/atrous.cl.bin’!
[opencl_load_program] could not load cached binary program, trying to compile source
[opencl_load_program] successfully loaded program from `/usr/share/darktable/kernels/atrous.cl’
[opencl_build_program] successfully built program
[opencl_build_program] BUILD STATUS: 0
BUILD LOG:

[opencl_build_program] saving binary
[opencl_init] compiling program basic.cl' .. [opencl_fopen_stat] could not open file /home/manu/.cache/darktable/cached_kernels_for_GeForceGT620/basic.cl.bin’!
[opencl_load_program] could not load cached binary program, trying to compile source
[opencl_load_program] successfully loaded program from `/usr/share/darktable/kernels/basic.cl’
[opencl_build_program] successfully built program
[opencl_build_program] BUILD STATUS: 0
BUILD LOG:

[opencl_build_program] saving binary
[opencl_init] compiling program blendop.cl' .. [opencl_fopen_stat] could not open file /home/manu/.cache/darktable/cached_kernels_for_GeForceGT620/blendop.cl.bin’!
[opencl_load_program] could not load cached binary program, trying to compile source
[opencl_load_program] successfully loaded program from `/usr/share/darktable/kernels/blendop.cl’
[opencl_build_program] successfully built program
[opencl_build_program] BUILD STATUS: 0
BUILD LOG:

[opencl_build_program] saving binary
[opencl_init] compiling program highpass.cl' .. [opencl_fopen_stat] could not open file /home/manu/.cache/darktable/cached_kernels_for_GeForceGT620/highpass.cl.bin’!
[opencl_load_program] could not load cached binary program, trying to compile source
[opencl_load_program] successfully loaded program from `/usr/share/darktable/kernels/highpass.cl’
[opencl_build_program] successfully built program
[opencl_build_program] BUILD STATUS: 0
BUILD LOG:

[opencl_build_program] saving binary
[opencl_init] compiling program nlmeans.cl' .. [opencl_fopen_stat] could not open file /home/manu/.cache/darktable/cached_kernels_for_GeForceGT620/nlmeans.cl.bin’!
[opencl_load_program] could not load cached binary program, trying to compile source
[opencl_load_program] successfully loaded program from `/usr/share/darktable/kernels/nlmeans.cl’
[opencl_build_program] successfully built program
[opencl_build_program] BUILD STATUS: 0
BUILD LOG:

[opencl_build_program] saving binary
[opencl_init] compiling program gaussian.cl' .. [opencl_fopen_stat] could not open file /home/manu/.cache/darktable/cached_kernels_for_GeForceGT620/gaussian.cl.bin’!
[opencl_load_program] could not load cached binary program, trying to compile source
[opencl_load_program] successfully loaded program from `/usr/share/darktable/kernels/gaussian.cl’
[opencl_build_program] successfully built program
[opencl_build_program] BUILD STATUS: 0
BUILD LOG:

[opencl_build_program] saving binary
[opencl_init] compiling program sharpen.cl' .. [opencl_fopen_stat] could not open file /home/manu/.cache/darktable/cached_kernels_for_GeForceGT620/sharpen.cl.bin’!
[opencl_load_program] could not load cached binary program, trying to compile source
[opencl_load_program] successfully loaded program from `/usr/share/darktable/kernels/sharpen.cl’
[opencl_build_program] successfully built program
[opencl_build_program] BUILD STATUS: 0
BUILD LOG:

[opencl_build_program] saving binary
[opencl_init] compiling program extended.cl' .. [opencl_fopen_stat] could not open file /home/manu/.cache/darktable/cached_kernels_for_GeForceGT620/extended.cl.bin’!
[opencl_load_program] could not load cached binary program, trying to compile source
[opencl_load_program] successfully loaded program from `/usr/share/darktable/kernels/extended.cl’
[opencl_build_program] successfully built program
[opencl_build_program] BUILD STATUS: 0
BUILD LOG:

[opencl_build_program] saving binary
[opencl_init] compiling program soften.cl' .. [opencl_fopen_stat] could not open file /home/manu/.cache/darktable/cached_kernels_for_GeForceGT620/soften.cl.bin’!
[opencl_load_program] could not load cached binary program, trying to compile source
[opencl_load_program] successfully loaded program from `/usr/share/darktable/kernels/soften.cl’
[opencl_build_program] successfully built program
[opencl_build_program] BUILD STATUS: 0
BUILD LOG:

[opencl_build_program] saving binary
[opencl_init] compiling program bilateral.cl' .. [opencl_fopen_stat] could not open file /home/manu/.cache/darktable/cached_kernels_for_GeForceGT620/bilateral.cl.bin’!
[opencl_load_program] could not load cached binary program, trying to compile source
[opencl_load_program] successfully loaded program from `/usr/share/darktable/kernels/bilateral.cl’
[opencl_build_program] successfully built program
[opencl_build_program] BUILD STATUS: 0
BUILD LOG:

[opencl_build_program] saving binary
[opencl_init] compiling program denoiseprofile.cl' .. [opencl_fopen_stat] could not open file /home/manu/.cache/darktable/cached_kernels_for_GeForceGT620/denoiseprofile.cl.bin’!
[opencl_load_program] could not load cached binary program, trying to compile source
[opencl_load_program] successfully loaded program from `/usr/share/darktable/kernels/denoiseprofile.cl’
[opencl_build_program] successfully built program
[opencl_build_program] BUILD STATUS: 0
BUILD LOG:

[opencl_build_program] saving binary
[opencl_init] compiling program bloom.cl' .. [opencl_fopen_stat] could not open file /home/manu/.cache/darktable/cached_kernels_for_GeForceGT620/bloom.cl.bin’!
[opencl_load_program] could not load cached binary program, trying to compile source
[opencl_load_program] successfully loaded program from `/usr/share/darktable/kernels/bloom.cl’
[opencl_build_program] successfully built program
[opencl_build_program] BUILD STATUS: 0
BUILD LOG:

[opencl_build_program] saving binary
[opencl_init] compiling program colorreconstruction.cl' .. [opencl_fopen_stat] could not open file /home/manu/.cache/darktable/cached_kernels_for_GeForceGT620/colorreconstruction.cl.bin’!
[opencl_load_program] could not load cached binary program, trying to compile source
[opencl_load_program] successfully loaded program from `/usr/share/darktable/kernels/colorreconstruction.cl’
[opencl_build_program] successfully built program
[opencl_build_program] BUILD STATUS: 0
BUILD LOG:

[opencl_build_program] saving binary
[opencl_init] compiling program demosaic_other.cl' .. [opencl_fopen_stat] could not open file /home/manu/.cache/darktable/cached_kernels_for_GeForceGT620/demosaic_other.cl.bin’!
[opencl_load_program] could not load cached binary program, trying to compile source
[opencl_load_program] successfully loaded program from `/usr/share/darktable/kernels/demosaic_other.cl’
[opencl_build_program] successfully built program
[opencl_build_program] BUILD STATUS: 0
BUILD LOG:

[opencl_build_program] saving binary
[opencl_init] kernel loading time: 35.9945
[opencl_init] OpenCL successfully initialized.
[opencl_init] here are the internal numbers and names of OpenCL devices available to darktable:
[opencl_init] 0 ‹ GeForce GT 620 ›
[opencl_init] these are your device priorities:
[opencl_init] image preview export thumbnail
[opencl_init] 0 -1 0 0
[opencl_init] FINALLY: opencl is AVAILABLE on this system.
[opencl_init] initial status of opencl enabled flag is ON.
[opencl_create_kernel] successfully loaded kernel zero' (0) for device 0 [opencl_create_kernel] successfully loaded kernel splat’ (1) for device 0
[opencl_create_kernel] successfully loaded kernel blur_line' (2) for device 0 [opencl_create_kernel] successfully loaded kernel blur_line_z’ (3) for device 0
[opencl_create_kernel] successfully loaded kernel slice' (4) for device 0 [opencl_create_kernel] successfully loaded kernel slice_to_output’ (5) for device 0
[opencl_create_kernel] successfully loaded kernel gaussian_column_1c' (6) for device 0 [opencl_create_kernel] successfully loaded kernel gaussian_transpose_1c’ (7) for device 0
[opencl_create_kernel] successfully loaded kernel gaussian_column_4c' (8) for device 0 [opencl_create_kernel] successfully loaded kernel gaussian_transpose_4c’ (9) for device 0
[opencl_create_kernel] successfully loaded kernel interpolation_resample' (10) for device 0 [opencl_create_kernel] successfully loaded kernel blendop_mask_Lab’ (11) for device 0
[opencl_create_kernel] successfully loaded kernel blendop_mask_RAW' (12) for device 0 [opencl_create_kernel] successfully loaded kernel blendop_mask_rgb’ (13) for device 0
[opencl_create_kernel] successfully loaded kernel blendop_Lab' (14) for device 0 [opencl_create_kernel] successfully loaded kernel blendop_RAW’ (15) for device 0
[opencl_create_kernel] successfully loaded kernel blendop_rgb' (16) for device 0 [opencl_create_kernel] successfully loaded kernel blendop_copy_alpha’ (17) for device 0
[opencl_create_kernel] successfully loaded kernel blendop_set_mask' (18) for device 0 [opencl_create_kernel] successfully loaded kernel graduatedndp’ (19) for device 0
[opencl_create_kernel] successfully loaded kernel graduatedndm' (20) for device 0 [opencl_create_kernel] successfully loaded kernel levels’ (21) for device 0
[opencl_create_kernel] successfully loaded kernel highlights_1f' (22) for device 0 [opencl_create_kernel] successfully loaded kernel highlights_4f’ (23) for device 0
[opencl_create_kernel] successfully loaded kernel colorreconstruction_zero' (24) for device 0 [opencl_create_kernel] successfully loaded kernel colorreconstruction_splat’ (25) for device 0
[opencl_create_kernel] successfully loaded kernel colorreconstruction_blur_line' (26) for device 0 [opencl_create_kernel] successfully loaded kernel colorreconstruction_slice’ (27) for device 0
[opencl_create_kernel] successfully loaded kernel channelmixer' (28) for device 0 [opencl_create_kernel] successfully loaded kernel denoiseprofile_precondition’ (29) for device 0
[opencl_create_kernel] successfully loaded kernel denoiseprofile_init' (30) for device 0 [opencl_create_kernel] successfully loaded kernel denoiseprofile_dist’ (31) for device 0
[opencl_create_kernel] successfully loaded kernel denoiseprofile_horiz' (32) for device 0 [opencl_create_kernel] successfully loaded kernel denoiseprofile_vert’ (33) for device 0
[opencl_create_kernel] successfully loaded kernel denoiseprofile_accu' (34) for device 0 [opencl_create_kernel] successfully loaded kernel denoiseprofile_finish’ (35) for device 0
[opencl_create_kernel] successfully loaded kernel denoiseprofile_backtransform' (36) for device 0 [opencl_create_kernel] successfully loaded kernel denoiseprofile_decompose’ (37) for device 0
[opencl_create_kernel] successfully loaded kernel denoiseprofile_synthesize' (38) for device 0 [opencl_create_kernel] successfully loaded kernel denoiseprofile_reduce_first’ (39) for device 0
[opencl_create_kernel] successfully loaded kernel denoiseprofile_reduce_second' (40) for device 0 [opencl_create_kernel] successfully loaded kernel eaw_decompose’ (41) for device 0
[opencl_create_kernel] successfully loaded kernel eaw_synthesize' (42) for device 0 [opencl_create_kernel] successfully loaded kernel lowpass_mix’ (43) for device 0
[opencl_create_kernel] successfully loaded kernel colorcontrast' (44) for device 0 [opencl_create_kernel] successfully loaded kernel colorcorrection’ (45) for device 0
[opencl_create_kernel] successfully loaded kernel colorbalance' (46) for device 0 [opencl_create_kernel] successfully loaded kernel sharpen_hblur’ (47) for device 0
[opencl_create_kernel] successfully loaded kernel sharpen_vblur' (48) for device 0 [opencl_create_kernel] successfully loaded kernel sharpen_mix’ (49) for device 0
[opencl_create_kernel] successfully loaded kernel colorize' (50) for device 0 [opencl_create_kernel] successfully loaded kernel overexposed’ (51) for device 0
[opencl_create_kernel] successfully loaded kernel vibrance' (52) for device 0 [opencl_create_kernel] successfully loaded kernel bloom_threshold’ (53) for device 0
[opencl_create_kernel] successfully loaded kernel bloom_hblur' (54) for device 0 [opencl_create_kernel] successfully loaded kernel bloom_vblur’ (55) for device 0
[opencl_create_kernel] successfully loaded kernel bloom_mix' (56) for device 0 [opencl_create_kernel] successfully loaded kernel pixelmax_first’ (57) for device 0
[opencl_create_kernel] successfully loaded kernel pixelmax_second' (58) for device 0 [opencl_create_kernel] successfully loaded kernel global_tonemap_reinhard’ (59) for device 0
[opencl_create_kernel] successfully loaded kernel global_tonemap_drago' (60) for device 0 [opencl_create_kernel] successfully loaded kernel global_tonemap_filmic’ (61) for device 0
[opencl_create_kernel] successfully loaded kernel rawprepare_1f' (62) for device 0 [opencl_create_kernel] successfully loaded kernel rawprepare_4f’ (63) for device 0
[opencl_create_kernel] successfully loaded kernel vignette' (64) for device 0 [opencl_create_kernel] successfully loaded kernel borders_fill’ (65) for device 0
[opencl_create_kernel] successfully loaded kernel relight' (66) for device 0 [opencl_create_kernel] successfully loaded kernel tonecurve’ (67) for device 0
[opencl_create_kernel] successfully loaded kernel whitebalance_4f' (68) for device 0 [opencl_create_kernel] successfully loaded kernel whitebalance_1f’ (69) for device 0
[opencl_create_kernel] successfully loaded kernel splittoning' (70) for device 0 [opencl_create_kernel] successfully loaded kernel clip_and_zoom_demosaic_half_size’ (71) for device 0
[opencl_create_kernel] successfully loaded kernel ppg_demosaic_green' (72) for device 0 [opencl_create_kernel] successfully loaded kernel green_equilibration’ (73) for device 0
[opencl_create_kernel] successfully loaded kernel pre_median' (74) for device 0 [opencl_create_kernel] successfully loaded kernel ppg_demosaic_green_median’ (75) for device 0
[opencl_create_kernel] successfully loaded kernel ppg_demosaic_redblue' (76) for device 0 [opencl_create_kernel] successfully loaded kernel clip_and_zoom’ (77) for device 0
[opencl_create_kernel] successfully loaded kernel border_interpolate' (78) for device 0 [opencl_create_kernel] successfully loaded kernel color_smoothing’ (79) for device 0
[opencl_create_kernel] successfully loaded kernel passthrough_monochrome' (80) for device 0 [opencl_create_kernel] successfully loaded kernel clip_and_zoom_demosaic_passthrough_monochrome’ (81) for device 0
[opencl_create_kernel] successfully loaded kernel profilegamma' (82) for device 0 [opencl_create_kernel] successfully loaded kernel colorout’ (83) for device 0
[opencl_create_kernel] successfully loaded kernel colorin_unbound' (84) for device 0 [opencl_create_kernel] successfully loaded kernel colorin_clipping’ (85) for device 0
[opencl_create_kernel] successfully loaded kernel lowlight' (86) for device 0 [opencl_create_kernel] successfully loaded kernel basecurve’ (87) for device 0
[opencl_create_kernel] successfully loaded kernel soften_overexposed' (88) for device 0 [opencl_create_kernel] successfully loaded kernel soften_hblur’ (89) for device 0
[opencl_create_kernel] successfully loaded kernel soften_vblur' (90) for device 0 [opencl_create_kernel] successfully loaded kernel soften_mix’ (91) for device 0
[opencl_create_kernel] successfully loaded kernel flip' (92) for device 0 [opencl_create_kernel] successfully loaded kernel highpass_invert’ (93) for device 0
[opencl_create_kernel] successfully loaded kernel highpass_hblur' (94) for device 0 [opencl_create_kernel] successfully loaded kernel highpass_vblur’ (95) for device 0
[opencl_create_kernel] successfully loaded kernel highpass_mix' (96) for device 0 [opencl_create_kernel] successfully loaded kernel colormapping_histogram’ (97) for device 0
[opencl_create_kernel] successfully loaded kernel colormapping_mapping' (98) for device 0 [opencl_create_kernel] successfully loaded kernel lens_distort_bilinear’ (99) for device 0
[opencl_create_kernel] successfully loaded kernel lens_distort_bicubic' (100) for device 0 [opencl_create_kernel] successfully loaded kernel lens_distort_lanczos2’ (101) for device 0
[opencl_create_kernel] successfully loaded kernel lens_distort_lanczos3' (102) for device 0 [opencl_create_kernel] successfully loaded kernel lens_vignette’ (103) for device 0
[opencl_create_kernel] successfully loaded kernel colorzones' (104) for device 0 [opencl_create_kernel] successfully loaded kernel colisa’ (105) for device 0
[opencl_create_kernel] successfully loaded kernel zonesystem' (106) for device 0 [opencl_create_kernel] successfully loaded kernel clip_rotate_bilinear’ (107) for device 0
[opencl_create_kernel] successfully loaded kernel clip_rotate_bicubic' (108) for device 0 [opencl_create_kernel] successfully loaded kernel clip_rotate_lanczos2’ (109) for device 0
[opencl_create_kernel] successfully loaded kernel clip_rotate_lanczos3' (110) for device 0 [opencl_create_kernel] successfully loaded kernel monochrome_filter’ (111) for device 0
[opencl_create_kernel] successfully loaded kernel monochrome' (112) for device 0 [opencl_create_kernel] successfully loaded kernel invert_1f’ (113) for device 0
[opencl_create_kernel] successfully loaded kernel invert_4f' (114) for device 0 [opencl_create_kernel] successfully loaded kernel velvia’ (115) for device 0
[opencl_create_kernel] successfully loaded kernel nlmeans_init' (116) for device 0 [opencl_create_kernel] successfully loaded kernel nlmeans_dist’ (117) for device 0
[opencl_create_kernel] successfully loaded kernel nlmeans_horiz' (118) for device 0 [opencl_create_kernel] successfully loaded kernel nlmeans_vert’ (119) for device 0
[opencl_create_kernel] successfully loaded kernel nlmeans_accu' (120) for device 0 [opencl_create_kernel] successfully loaded kernel nlmeans_finish’ (121) for device 0
[opencl_create_kernel] successfully loaded kernel exposure' (122) for device 0 [opencl_create_kernel] successfully loaded kernel shadows_highlights_mix’ (123) for device 0
[opencl_summary_statistics] device ‹ GeForce GT 620 ›: NOT utilized

Effectivement opencl n’est pas utilisé. C’est curieux, car il a fait tout le boulot de compil des ‹ noyaux › avant. Avec quand même un problème concernant l’ouverture du dossier sensé les contenir. Il y a aussi un pb concernant la taille de mémoire disponible : [opencl_init] device 0 `GeForce GT 620′ allows GPU memory allocations of up to 511MB

Comme ta carte annonce 2GB de mémoire il faudrait peut être forcer le paramètre opencl_memory_requirement dans ton fichier $HOME/.config/darktable/darktablerc
Concernant opencl et les réglages afférents, je te recommande la lecture du chapitre 10.2 du manuel de darktable.

Le paquet nvidia-modprobe est installé ?

Merci jpv, c’est intéressant tout ça. :slight_smile:

Dans l’intervalle, j’ai installé la dernière version de nVidia CUDA, qui semble nécessaire pour faire fonctionner OpenCL avec une carte nVidia (il existe un package de la version 7.5 de CUDA pour les distros principales).

Depuis, nvidia-settings me montre une activité GPU, par exemple quand je switche d’espace de travail, et l’affichage me paraît globalement plus fluide, c’est déjà ça de gagné. Non pas que c’était lent, mais à présent plus fluide.

Avec la doc que tu m’as indiquée, j’ai pu avancer en (re)installant certains paquets.

nvidia-352 352.63-0ubuntu0.15.10.1
nvidia-352-dev 352.63-0ubuntu0.15.10.1
nvidia-352-uvm 352.39-0ubuntu1
nvidia-libopencl1-352 352.63-0ubuntu0.15.10.1
nvidia-modprobe 352.39-0ubuntu1
nvidia-opencl-dev:amd64 6.5.14-2
nvidia-opencl-icd-352 352.63-0ubuntu0.15.10.1
nvidia-prime 0.8.1
nvidia-settings 352.39-0ubuntu1

J’ai bien les modules du noyau :

nvidia_uvm 77824 0
nvidia 8646656 58 nvidia_uvm
drm 360448 3 nvidia

et mes devices nvidia* (en rw pour ugo) :

crw-rw-rw- 1 root root 195, 0 juin 26 20:12 /dev/nvidia0
crw-rw-rw- 1 root root 195, 255 juin 26 20:12 /dev/nvidiactl
crw-rw-rw- 1 root root 246, 0 juin 26 20:12 /dev/nvidia-uvm

Après, opencl_memory_requirement sert à indiquer la limite basse en termes de RAM sur le GPU pour passer en OpenCL, plutôt que le monter à 2048, je l’ai descendu à 500, tenant compte de la ligne :

[opencl_init] device 0 `GeForce GT 620′ allows GPU memory allocations of up to 511MB

Je ne sais pas vraiment d’où sort cette limite… nvidia-settings m’indique de son côté, pour ce GPU :

Total Memory: 2048 MB
Total Dedicated Memory: 2047 MB
Used Dedicated Memory: 417 MB (20%)

La dernière valeur varie un peu tout le temps, je l’ai déjà vue au dessus de 511 Mo, par exemple en visualisation d’une vidéo…

Disons que j’ai mis 500 en tant que valeur inférieure à 511MB, pour éviter qu’OpenCL ne juge que la CG ne peut être utilisée faute de RAM suffisante…

Et comme vu dans la partie AMD/AIT de la doc, j’ai essayé de réduire opencl_memory_headroom à 0, manière de laisser le maximum de champs à DT.

Résultat ? Idem ! :frowning:

manu@manubuntu:~$ darktable-cltest
[opencl_init] opencl related configuration options:
[opencl_init]
[opencl_init] opencl: 1
[opencl_init] opencl_library: ‹  ›
[opencl_init] opencl_memory_requirement: 500
[opencl_init] opencl_memory_headroom: 0
[opencl_init] opencl_device_priority: ‹ /!0,// ›
[opencl_init] opencl_size_roundup: 16
[opencl_init] opencl_async_pixelpipe: 0
[opencl_init] opencl_synch_cache: 0
[opencl_init] opencl_number_event_handles: 25
[opencl_init] opencl_micro_nap: 1000
[opencl_init] opencl_use_pinned_memory: 0
[opencl_init] opencl_use_cpu_devices: 0
[opencl_init] opencl_avoid_atomics: 0
[opencl_init] opencl_omit_whitebalance: 0
[opencl_init]
[opencl_init] found opencl runtime library ‹ libOpenCL ›
[opencl_init] opencl library ‹ libOpenCL › found on your system and loaded
[opencl_init] found 1 platform
[opencl_init] found 1 device
[opencl_init] device 0 GeForce GT 620' has sm_20 support. [opencl_init] device 0 GeForce GT 620’ supports image sizes of 16384 x 16384
[opencl_init] device 0 GeForce GT 620' allows GPU memory allocations of up to 511MB [opencl_init] device 0: GeForce GT 620 GLOBAL_MEM_SIZE: 2047MB MAX_WORK_GROUP_SIZE: 1024 MAX_WORK_ITEM_DIMENSIONS: 3 MAX_WORK_ITEM_SIZES: [ 1024 1024 64 ] DRIVER_VERSION: 352.63 DEVICE_VERSION: OpenCL 1.1 CUDA [opencl_init] compiling program demosaic_ppg.cl’ ..
[opencl_load_program] loaded cached binary program from file /home/manu/.cache/darktable/cached_kernels_for_GeForceGT620/demosaic_ppg.cl.bin' [opencl_load_program] successfully loaded program from /usr/share/darktable/kernels/demosaic_ppg.cl’
[opencl_build_program] successfully built program
[opencl_build_program] BUILD STATUS: 0
BUILD LOG:

[opencl_init] compiling program atrous.cl' .. [opencl_load_program] loaded cached binary program from file /home/manu/.cache/darktable/cached_kernels_for_GeForceGT620/atrous.cl.bin’
[opencl_load_program] successfully loaded program from `/usr/share/darktable/kernels/atrous.cl’
[opencl_build_program] successfully built program
[opencl_build_program] BUILD STATUS: 0
BUILD LOG:

[opencl_init] compiling program basic.cl' .. [opencl_load_program] loaded cached binary program from file /home/manu/.cache/darktable/cached_kernels_for_GeForceGT620/basic.cl.bin’
[opencl_load_program] successfully loaded program from `/usr/share/darktable/kernels/basic.cl’
[opencl_build_program] successfully built program
[opencl_build_program] BUILD STATUS: 0
BUILD LOG:

[opencl_init] compiling program blendop.cl' .. [opencl_load_program] loaded cached binary program from file /home/manu/.cache/darktable/cached_kernels_for_GeForceGT620/blendop.cl.bin’
[opencl_load_program] successfully loaded program from `/usr/share/darktable/kernels/blendop.cl’
[opencl_build_program] successfully built program
[opencl_build_program] BUILD STATUS: 0
BUILD LOG:

[opencl_init] compiling program highpass.cl' .. [opencl_load_program] loaded cached binary program from file /home/manu/.cache/darktable/cached_kernels_for_GeForceGT620/highpass.cl.bin’
[opencl_load_program] successfully loaded program from `/usr/share/darktable/kernels/highpass.cl’
[opencl_build_program] successfully built program
[opencl_build_program] BUILD STATUS: 0
BUILD LOG:

[opencl_init] compiling program nlmeans.cl' .. [opencl_load_program] loaded cached binary program from file /home/manu/.cache/darktable/cached_kernels_for_GeForceGT620/nlmeans.cl.bin’
[opencl_load_program] successfully loaded program from `/usr/share/darktable/kernels/nlmeans.cl’
[opencl_build_program] successfully built program
[opencl_build_program] BUILD STATUS: 0
BUILD LOG:

[opencl_init] compiling program gaussian.cl' .. [opencl_load_program] loaded cached binary program from file /home/manu/.cache/darktable/cached_kernels_for_GeForceGT620/gaussian.cl.bin’
[opencl_load_program] successfully loaded program from `/usr/share/darktable/kernels/gaussian.cl’
[opencl_build_program] successfully built program
[opencl_build_program] BUILD STATUS: 0
BUILD LOG:

[opencl_init] compiling program sharpen.cl' .. [opencl_load_program] loaded cached binary program from file /home/manu/.cache/darktable/cached_kernels_for_GeForceGT620/sharpen.cl.bin’
[opencl_load_program] successfully loaded program from `/usr/share/darktable/kernels/sharpen.cl’
[opencl_build_program] successfully built program
[opencl_build_program] BUILD STATUS: 0
BUILD LOG:

[opencl_init] compiling program extended.cl' .. [opencl_load_program] loaded cached binary program from file /home/manu/.cache/darktable/cached_kernels_for_GeForceGT620/extended.cl.bin’
[opencl_load_program] successfully loaded program from `/usr/share/darktable/kernels/extended.cl’
[opencl_build_program] successfully built program
[opencl_build_program] BUILD STATUS: 0
BUILD LOG:

[opencl_init] compiling program soften.cl' .. [opencl_load_program] loaded cached binary program from file /home/manu/.cache/darktable/cached_kernels_for_GeForceGT620/soften.cl.bin’
[opencl_load_program] successfully loaded program from `/usr/share/darktable/kernels/soften.cl’
[opencl_build_program] successfully built program
[opencl_build_program] BUILD STATUS: 0
BUILD LOG:

[opencl_init] compiling program bilateral.cl' .. [opencl_load_program] loaded cached binary program from file /home/manu/.cache/darktable/cached_kernels_for_GeForceGT620/bilateral.cl.bin’
[opencl_load_program] successfully loaded program from `/usr/share/darktable/kernels/bilateral.cl’
[opencl_build_program] successfully built program
[opencl_build_program] BUILD STATUS: 0
BUILD LOG:

[opencl_init] compiling program denoiseprofile.cl' .. [opencl_load_program] loaded cached binary program from file /home/manu/.cache/darktable/cached_kernels_for_GeForceGT620/denoiseprofile.cl.bin’
[opencl_load_program] successfully loaded program from `/usr/share/darktable/kernels/denoiseprofile.cl’
[opencl_build_program] successfully built program
[opencl_build_program] BUILD STATUS: 0
BUILD LOG:

[opencl_init] compiling program bloom.cl' .. [opencl_load_program] loaded cached binary program from file /home/manu/.cache/darktable/cached_kernels_for_GeForceGT620/bloom.cl.bin’
[opencl_load_program] successfully loaded program from `/usr/share/darktable/kernels/bloom.cl’
[opencl_build_program] successfully built program
[opencl_build_program] BUILD STATUS: 0
BUILD LOG:

[opencl_init] compiling program colorreconstruction.cl' .. [opencl_load_program] loaded cached binary program from file /home/manu/.cache/darktable/cached_kernels_for_GeForceGT620/colorreconstruction.cl.bin’
[opencl_load_program] successfully loaded program from `/usr/share/darktable/kernels/colorreconstruction.cl’
[opencl_build_program] successfully built program
[opencl_build_program] BUILD STATUS: 0
BUILD LOG:

[opencl_init] compiling program demosaic_other.cl' .. [opencl_load_program] loaded cached binary program from file /home/manu/.cache/darktable/cached_kernels_for_GeForceGT620/demosaic_other.cl.bin’
[opencl_load_program] successfully loaded program from `/usr/share/darktable/kernels/demosaic_other.cl’
[opencl_build_program] successfully built program
[opencl_build_program] BUILD STATUS: 0
BUILD LOG:

[opencl_init] kernel loading time: 21.9250
[opencl_init] OpenCL successfully initialized.
[opencl_init] here are the internal numbers and names of OpenCL devices available to darktable:
[opencl_init] 0 ‹ GeForce GT 620 ›
[opencl_init] these are your device priorities:
[opencl_init] image preview export thumbnail
[opencl_init] 0 -1 0 0
[opencl_init] FINALLY: opencl is AVAILABLE on this system.
[opencl_init] initial status of opencl enabled flag is ON.
[opencl_create_kernel] successfully loaded kernel zero' (0) for device 0 [opencl_create_kernel] successfully loaded kernel splat’ (1) for device 0
[opencl_create_kernel] successfully loaded kernel blur_line' (2) for device 0 [opencl_create_kernel] successfully loaded kernel blur_line_z’ (3) for device 0
[opencl_create_kernel] successfully loaded kernel slice' (4) for device 0 [opencl_create_kernel] successfully loaded kernel slice_to_output’ (5) for device 0
[opencl_create_kernel] successfully loaded kernel gaussian_column_1c' (6) for device 0 [opencl_create_kernel] successfully loaded kernel gaussian_transpose_1c’ (7) for device 0
[opencl_create_kernel] successfully loaded kernel gaussian_column_4c' (8) for device 0 [opencl_create_kernel] successfully loaded kernel gaussian_transpose_4c’ (9) for device 0
[opencl_create_kernel] successfully loaded kernel interpolation_resample' (10) for device 0 [opencl_create_kernel] successfully loaded kernel blendop_mask_Lab’ (11) for device 0
[opencl_create_kernel] successfully loaded kernel blendop_mask_RAW' (12) for device 0 [opencl_create_kernel] successfully loaded kernel blendop_mask_rgb’ (13) for device 0
[opencl_create_kernel] successfully loaded kernel blendop_Lab' (14) for device 0 [opencl_create_kernel] successfully loaded kernel blendop_RAW’ (15) for device 0
[opencl_create_kernel] successfully loaded kernel blendop_rgb' (16) for device 0 [opencl_create_kernel] successfully loaded kernel blendop_copy_alpha’ (17) for device 0
[opencl_create_kernel] successfully loaded kernel blendop_set_mask' (18) for device 0 [opencl_create_kernel] successfully loaded kernel graduatedndp’ (19) for device 0
[opencl_create_kernel] successfully loaded kernel graduatedndm' (20) for device 0 [opencl_create_kernel] successfully loaded kernel levels’ (21) for device 0
[opencl_create_kernel] successfully loaded kernel highlights_1f' (22) for device 0 [opencl_create_kernel] successfully loaded kernel highlights_4f’ (23) for device 0
[opencl_create_kernel] successfully loaded kernel colorreconstruction_zero' (24) for device 0 [opencl_create_kernel] successfully loaded kernel colorreconstruction_splat’ (25) for device 0
[opencl_create_kernel] successfully loaded kernel colorreconstruction_blur_line' (26) for device 0 [opencl_create_kernel] successfully loaded kernel colorreconstruction_slice’ (27) for device 0
[opencl_create_kernel] successfully loaded kernel channelmixer' (28) for device 0 [opencl_create_kernel] successfully loaded kernel denoiseprofile_precondition’ (29) for device 0
[opencl_create_kernel] successfully loaded kernel denoiseprofile_init' (30) for device 0 [opencl_create_kernel] successfully loaded kernel denoiseprofile_dist’ (31) for device 0
[opencl_create_kernel] successfully loaded kernel denoiseprofile_horiz' (32) for device 0 [opencl_create_kernel] successfully loaded kernel denoiseprofile_vert’ (33) for device 0
[opencl_create_kernel] successfully loaded kernel denoiseprofile_accu' (34) for device 0 [opencl_create_kernel] successfully loaded kernel denoiseprofile_finish’ (35) for device 0
[opencl_create_kernel] successfully loaded kernel denoiseprofile_backtransform' (36) for device 0 [opencl_create_kernel] successfully loaded kernel denoiseprofile_decompose’ (37) for device 0
[opencl_create_kernel] successfully loaded kernel denoiseprofile_synthesize' (38) for device 0 [opencl_create_kernel] successfully loaded kernel denoiseprofile_reduce_first’ (39) for device 0
[opencl_create_kernel] successfully loaded kernel denoiseprofile_reduce_second' (40) for device 0 [opencl_create_kernel] successfully loaded kernel eaw_decompose’ (41) for device 0
[opencl_create_kernel] successfully loaded kernel eaw_synthesize' (42) for device 0 [opencl_create_kernel] successfully loaded kernel lowpass_mix’ (43) for device 0
[opencl_create_kernel] successfully loaded kernel colorcontrast' (44) for device 0 [opencl_create_kernel] successfully loaded kernel colorcorrection’ (45) for device 0
[opencl_create_kernel] successfully loaded kernel colorbalance' (46) for device 0 [opencl_create_kernel] successfully loaded kernel sharpen_hblur’ (47) for device 0
[opencl_create_kernel] successfully loaded kernel sharpen_vblur' (48) for device 0 [opencl_create_kernel] successfully loaded kernel sharpen_mix’ (49) for device 0
[opencl_create_kernel] successfully loaded kernel colorize' (50) for device 0 [opencl_create_kernel] successfully loaded kernel overexposed’ (51) for device 0
[opencl_create_kernel] successfully loaded kernel vibrance' (52) for device 0 [opencl_create_kernel] successfully loaded kernel bloom_threshold’ (53) for device 0
[opencl_create_kernel] successfully loaded kernel bloom_hblur' (54) for device 0 [opencl_create_kernel] successfully loaded kernel bloom_vblur’ (55) for device 0
[opencl_create_kernel] successfully loaded kernel bloom_mix' (56) for device 0 [opencl_create_kernel] successfully loaded kernel pixelmax_first’ (57) for device 0
[opencl_create_kernel] successfully loaded kernel pixelmax_second' (58) for device 0 [opencl_create_kernel] successfully loaded kernel global_tonemap_reinhard’ (59) for device 0
[opencl_create_kernel] successfully loaded kernel global_tonemap_drago' (60) for device 0 [opencl_create_kernel] successfully loaded kernel global_tonemap_filmic’ (61) for device 0
[opencl_create_kernel] successfully loaded kernel rawprepare_1f' (62) for device 0 [opencl_create_kernel] successfully loaded kernel rawprepare_4f’ (63) for device 0
[opencl_create_kernel] successfully loaded kernel vignette' (64) for device 0 [opencl_create_kernel] successfully loaded kernel borders_fill’ (65) for device 0
[opencl_create_kernel] successfully loaded kernel relight' (66) for device 0 [opencl_create_kernel] successfully loaded kernel tonecurve’ (67) for device 0
[opencl_create_kernel] successfully loaded kernel whitebalance_4f' (68) for device 0 [opencl_create_kernel] successfully loaded kernel whitebalance_1f’ (69) for device 0
[opencl_create_kernel] successfully loaded kernel splittoning' (70) for device 0 [opencl_create_kernel] successfully loaded kernel clip_and_zoom_demosaic_half_size’ (71) for device 0
[opencl_create_kernel] successfully loaded kernel ppg_demosaic_green' (72) for device 0 [opencl_create_kernel] successfully loaded kernel green_equilibration’ (73) for device 0
[opencl_create_kernel] successfully loaded kernel pre_median' (74) for device 0 [opencl_create_kernel] successfully loaded kernel ppg_demosaic_green_median’ (75) for device 0
[opencl_create_kernel] successfully loaded kernel ppg_demosaic_redblue' (76) for device 0 [opencl_create_kernel] successfully loaded kernel clip_and_zoom’ (77) for device 0
[opencl_create_kernel] successfully loaded kernel border_interpolate' (78) for device 0 [opencl_create_kernel] successfully loaded kernel color_smoothing’ (79) for device 0
[opencl_create_kernel] successfully loaded kernel passthrough_monochrome' (80) for device 0 [opencl_create_kernel] successfully loaded kernel clip_and_zoom_demosaic_passthrough_monochrome’ (81) for device 0
[opencl_create_kernel] successfully loaded kernel profilegamma' (82) for device 0 [opencl_create_kernel] successfully loaded kernel colorout’ (83) for device 0
[opencl_create_kernel] successfully loaded kernel colorin_unbound' (84) for device 0 [opencl_create_kernel] successfully loaded kernel colorin_clipping’ (85) for device 0
[opencl_create_kernel] successfully loaded kernel lowlight' (86) for device 0 [opencl_create_kernel] successfully loaded kernel basecurve’ (87) for device 0
[opencl_create_kernel] successfully loaded kernel soften_overexposed' (88) for device 0 [opencl_create_kernel] successfully loaded kernel soften_hblur’ (89) for device 0
[opencl_create_kernel] successfully loaded kernel soften_vblur' (90) for device 0 [opencl_create_kernel] successfully loaded kernel soften_mix’ (91) for device 0
[opencl_create_kernel] successfully loaded kernel flip' (92) for device 0 [opencl_create_kernel] successfully loaded kernel highpass_invert’ (93) for device 0
[opencl_create_kernel] successfully loaded kernel highpass_hblur' (94) for device 0 [opencl_create_kernel] successfully loaded kernel highpass_vblur’ (95) for device 0
[opencl_create_kernel] successfully loaded kernel highpass_mix' (96) for device 0 [opencl_create_kernel] successfully loaded kernel colormapping_histogram’ (97) for device 0
[opencl_create_kernel] successfully loaded kernel colormapping_mapping' (98) for device 0 [opencl_create_kernel] successfully loaded kernel lens_distort_bilinear’ (99) for device 0
[opencl_create_kernel] successfully loaded kernel lens_distort_bicubic' (100) for device 0 [opencl_create_kernel] successfully loaded kernel lens_distort_lanczos2’ (101) for device 0
[opencl_create_kernel] successfully loaded kernel lens_distort_lanczos3' (102) for device 0 [opencl_create_kernel] successfully loaded kernel lens_vignette’ (103) for device 0
[opencl_create_kernel] successfully loaded kernel colorzones' (104) for device 0 [opencl_create_kernel] successfully loaded kernel colisa’ (105) for device 0
[opencl_create_kernel] successfully loaded kernel zonesystem' (106) for device 0 [opencl_create_kernel] successfully loaded kernel clip_rotate_bilinear’ (107) for device 0
[opencl_create_kernel] successfully loaded kernel clip_rotate_bicubic' (108) for device 0 [opencl_create_kernel] successfully loaded kernel clip_rotate_lanczos2’ (109) for device 0
[opencl_create_kernel] successfully loaded kernel clip_rotate_lanczos3' (110) for device 0 [opencl_create_kernel] successfully loaded kernel monochrome_filter’ (111) for device 0
[opencl_create_kernel] successfully loaded kernel monochrome' (112) for device 0 [opencl_create_kernel] successfully loaded kernel invert_1f’ (113) for device 0
[opencl_create_kernel] successfully loaded kernel invert_4f' (114) for device 0 [opencl_create_kernel] successfully loaded kernel velvia’ (115) for device 0
[opencl_create_kernel] successfully loaded kernel nlmeans_init' (116) for device 0 [opencl_create_kernel] successfully loaded kernel nlmeans_dist’ (117) for device 0
[opencl_create_kernel] successfully loaded kernel nlmeans_horiz' (118) for device 0 [opencl_create_kernel] successfully loaded kernel nlmeans_vert’ (119) for device 0
[opencl_create_kernel] successfully loaded kernel nlmeans_accu' (120) for device 0 [opencl_create_kernel] successfully loaded kernel nlmeans_finish’ (121) for device 0
[opencl_create_kernel] successfully loaded kernel exposure' (122) for device 0 [opencl_create_kernel] successfully loaded kernel shadows_highlights_mix’ (123) for device 0
[opencl_summary_statistics] device ‹ GeForce GT 620 ›: NOT utilized

Je viens d’écrire à darktable-devel@lists.sourceforge.net pour avoir leur avis…

Sauf que cette adresse mail n’existe pas… :((

Finalement un coup d’IRC et bon, cette ligne à la fin est trompeuse.

En fait, le GPU est bien utilisé, ça se voit avec un lancement en mode console par darktable -d perf -d opencl

Restera à faire quelques tests, rigoureux, pour voir si OpenCL apporte vraiment qqch.

À vue de nez comme ça, je dirais « plutôt oui », mais pas super flagrant avec cette config.

Les adresses mail des listes de diffusion ont changé depuis quelque temps déjà.

Pour liste ‹ développeurs › : darktable-dev@lists.darktable.org

Et pour la liste ‹ utilisateurs › : darktable-user@lists.darktable.org

Effectivement c’est un peu vicieux comme message !

Pour mesurer l’efficacité tu fais un run avec darktable -d opencl -d perf et un autre avec darktable —disable-opencl -d perf et tu exportes la même photo à chaque fois. Tu devrais obtenir dans le log le total de temps de traitement dans les deux cas et ainsi pouvoir les comparer

Oui, les listes n’étaient pas à jour dans la doc, et sur le site DT non plus. Et celle que tu indiques pour les dev m’a retourné une erreur bizarre aussi. J’ai vu ça avec les gars sur IRC, ça a été pris en compte.

De même que cette ligne vicelarde qui devrait être virée ou modifiée, c’est pris en compte sur redmine aussi.

Et oui, c’est ce que je compte faire pour le test de perf. :slight_smile:
Je posterai ici.

Bon… Vite fait j’ai fait un test basique, faudra que j’en fasse d’autres.

Je lance DT selon chaque méthode, je double-clique sur la même photo, dans la chambre noire, elle a 12 traitements, je passe sur la version 0 puis la 12 et j’exporte.

Globalement, c’est plus rapide sans OpenCL ! :smiley:

Quelques synthèses, en 1ère ligne avec OpenCL, en 2nde sans :

… initing base buffer [full]
[list]
[][dev_process_image] pixel pipeline processing took 13,335 secs (10,408 CPU)
[
][dev_process_image] pixel pipeline processing took 8,603 secs (11,076 CPU)
[/list]
… initing base buffer [preview]
[list]
[][dev_process_preview] pixel pipeline processing took 2,095 secs (2,344 CPU)
[
][dev_process_preview] pixel pipeline processing took 1,339 secs (1,884 CPU)
[/list]
… initing base buffer [export]
[list]
[][dev_process_export] pixel pipeline processing took 27,583 secs (28,396 CPU)
[
][dev_process_export] pixel pipeline processing took 25,207 secs (27,332 CPU)
[/list]
Les impressions sont souvent trompeuses…

Mais pour être honnête ça me rappelle une discussion similaire sur le forum français d’ASP… :smiley:

Dans certains traitements, sur certaines config avec un GPU poilu (pas cette merdouille de GT620), ça doit valoir le coup d’utiliser OpenCL… :wink: