Hallo Heiko !

Very pleased to hear that (not the bug part, though).

Did you try with smaller pictures ? Usually, darktable falls back to CPU
when there is not enough ressource available on the GPU.

You can try :

 1. the command *nvidia-smi* to see how the GPU RAM is used (if there is
    not enough vRAM available, you will see an OpenCL error code -4).
 2. setting opencl_async_pixelpipe=true in darktablerc
 3. setting opencl_mandatory_timeout > 200 in darktablerc

Also, I have discovered this week that Gnome 3.28.2 with Xorg has
serious memory leaks issues and can affect OpenCL performance. After
several hours of uptime, Xorg consumes up to 1GB RAM/vRAM on Ubuntu
18.04, so OpenCL has not enough space.

I hope this helps,

Aurélien.

Le 29/10/2018 à 17:23, Heiko Bauke a écrit :
> Hi,
>
> I own a laptop with a low-end OpenCL capable graphics card.  Usually I
> explicitly turn OpenCL support off for darktable.
>
> Today I enabled OpenCL support in darktable for some testing purposes.
> Starting darktable (current git master with some extensions not
> related to OpenCL) with the options '-d opencl -d perf' yields
>
>> 0.062332 [opencl_init] opencl related configuration options:
>> 0.062345 [opencl_init] 0.062359 [opencl_init] opencl: 1
>> 0.062361 [opencl_init] opencl_library: ''
>> 0.062364 [opencl_init] opencl_memory_requirement: 200
>> 0.062367 [opencl_init] opencl_memory_headroom: 0
>> 0.062372 [opencl_init] opencl_device_priority: ''
>> 0.062377 [opencl_init] opencl_mandatory_timeout: 0
>> 0.062382 [opencl_init] opencl_size_roundup: 16
>> 0.062386 [opencl_init] opencl_async_pixelpipe: 0
>> 0.062389 [opencl_init] opencl_synch_cache: 0
>> 0.062392 [opencl_init] opencl_number_event_handles: 0
>> 0.062396 [opencl_init] opencl_micro_nap: 0
>> 0.062399 [opencl_init] opencl_use_pinned_memory: 0
>> 0.062402 [opencl_init] opencl_use_cpu_devices: 0
>> 0.062404 [opencl_init] opencl_avoid_atomics: 0
>> 0.062407 [opencl_init] 0.062615 [opencl_init] found opencl runtime
>> library 'libOpenCL'
>> 0.062652 [opencl_init] opencl library 'libOpenCL' found on your
>> system and loaded
>> 0.078292 [opencl_init] found 1 platform
>> 0.078310 [opencl_init] found 1 device
>> 0.078526 [opencl_init] device 0 `GeForce GT 730M' has sm_20 support.
>> 0.078613 [opencl_init] device 0 `GeForce GT 730M' supports image
>> sizes of 16384 x 16384
>> 0.078619 [opencl_init] device 0 `GeForce GT 730M' allows GPU memory
>> allocations of up to 501MB
>> [opencl_init] device 0: GeForce GT 730M     
>> GLOBAL_MEM_SIZE:          2004MB
>>      MAX_WORK_GROUP_SIZE:      1024
>>      MAX_WORK_ITEM_DIMENSIONS: 3
>>      MAX_WORK_ITEM_SIZES:      [ 1024 1024 64 ]
>>      DRIVER_VERSION:           390.77
>>      DEVICE_VERSION:           OpenCL 1.2 CUDA
>> 0.157247 [opencl_init] options for OpenCL compiler:
>> -cl-fast-relaxed-math  -DNVIDIA_SM_20=1 -DNVIDIA=1
>> -I"/usr/local/darktable_guided/share/darktable/kernels"
>
> [...]
>
>> 0.177151 [opencl_init] compiling program `heal.cl' ..
>> 0.177158 [opencl_fopen_stat] could not open file
>> `/usr/local/darktable_guided/share/darktable/kernels/heal.cl'!
>> 0.177163 [opencl_init] kernel loading time: 0.0198 0.177170
>> [opencl_init] OpenCL successfully initialized.
>> 0.177173 [opencl_init] here are the internal numbers and names of
>> OpenCL devices available to darktable:
>> 0.177176 [opencl_init]        0    'GeForce GT 730M'
>> 0.177180 [opencl_init] FINALLY: opencl is AVAILABLE on this system.
>> 0.177183 [opencl_init] initial status of opencl enabled flag is ON.
>> 0.177205 [opencl_create_kernel] successfully loaded kernel
>> `blendop_mask_Lab' (0) for device 0
>> 0.177213 [opencl_create_kernel] successfully loaded kernel
>> `blendop_mask_RAW' (1) for device 0
>> 0.177222 [opencl_create_kernel] successfully loaded kernel
>> `blendop_mask_rgb' (2) for device 0
>
> [...]
>
> Neglecting the fact that the kernel heal.cl cannot be loaded
> everything looks fine to me.  Nevertheless, all modules utilize CPUs
> only but not my GPU, including 'denoise (profiled)'.
>
>> 38.392474 [dev_pixelpipe] took 0.405 secs (1.365 CPU) processed
>> `denoise (profiled)' on CPU, blended on CPU [full]
>
> How can I enable GPU processing?
>
> In particular, I need to enable blending on GPU.  Currently I am
> working on automatic mask refinement based on a guided filter, see
> http://kaiminghe.com/publications/eccv10guidedfilter.pdf For this
> purpose I have extended the function dt_develop_blend_process and now
> I also have to ajust dt_develop_blend_process_cl.  But currently, the
> latter function is never called.  Any hint?
>
>
>     Heiko
>
>

___________________________________________________________________________
darktable developer mailing list
to unsubscribe send a mail to darktable-dev+unsubscr...@lists.darktable.org

Reply via email to