(Merging another thread that started on darktable-dev, as the nvidia
OpenCL problem is not a DT development issue; I found this thread in
the list archives. In response to my email, Ulrich suggested that my
problem may be fixed in recent nvidia driver releases:
[...] you might upgrade your nvidia driver. The background of your
issue is a long standing bug in nvidia's opencl implementation
reported to the developers some time ago. I recently got the
confirmation of the nvidia guys that the issue has been fixed since
driver version 331.67.)
Unfortunately, 331.89 (from xorg-edgers) disables OpenCL completely:
kofa@eagle:~/darktable-dev/bin > ./darktable -d opencl
[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] trying to load opencl library: '<system default>'
[opencl_init] could not find opencl runtime library 'libOpenCL'
[opencl_init] no working opencl library found. Continue with opencl disabled
[opencl_init] FINALLY: opencl is NOT AVAILABLE on this system.
[opencl_init] initial status of opencl enabled flag is OFF.
Verification:
kofa@eagle:~/darktable-dev/bin > dpkg -l|grep nvidia
rc nvidia-304 304.117-0ubuntu1
amd64 NVIDIA legacy binary
driver - version 304.117
ii nvidia-331
331.89-0ubuntu1~xedgers14.04.2 amd64
NVIDIA binary driver - version 331.89
ii nvidia-331-dev
331.89-0ubuntu1~xedgers14.04.2 amd64
NVIDIA binary Xorg driver development files
ii nvidia-331-uvm
331.89-0ubuntu1~xedgers14.04.2 amd64
NVIDIA Unified Memory kernel module
rc nvidia-340
340.24-0ubuntu1~xedgers14.04.1 amd64
NVIDIA binary driver - version 340.24
rc nvidia-libopencl1-304 304.117-0ubuntu1
amd64 NVIDIA OpenCL Driver and
ICD Loader library
ii nvidia-libopencl1-331
331.89-0ubuntu1~xedgers14.04.2 amd64
NVIDIA OpenCL Driver and ICD Loader library
rc nvidia-opencl-icd-304 304.117-0ubuntu1
amd64 NVIDIA OpenCL ICD
ii nvidia-opencl-icd-331
331.89-0ubuntu1~xedgers14.04.2 amd64
NVIDIA OpenCL ICD
ii nvidia-settings
340.24-0ubuntu1~xedgers14.04.1 amd64
Tool for configuring the NVIDIA graphics driver
ii nvidia-settings-304
340.24-0ubuntu1~xedgers14.04.1 amd64
Transitional package for nvidia-settings
kofa@eagle:~/darktable-dev/bin > dpkg -L nvidia-opencl-icd-331
/.
/etc
/etc/OpenCL
/etc/OpenCL/vendors
/etc/OpenCL/vendors/nvidia.icd
/usr
/usr/lib
/usr/lib/i386-linux-gnu
/usr/lib/i386-linux-gnu/libnvidia-opencl.so.331.89
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/libnvidia-opencl.so.331.89
/usr/share
/usr/share/doc
/usr/share/doc/nvidia-opencl-icd-331
/usr/share/doc/nvidia-opencl-icd-331/changelog.Debian.gz
/usr/share/doc/nvidia-opencl-icd-331/copyright
/usr/lib/i386-linux-gnu/libnvidia-opencl.so.1
/usr/lib/x86_64-linux-gnu/libnvidia-opencl.so.1
kofa@eagle:~/darktable-dev/bin > cat /etc/OpenCL/vendors/nvidia.icd
libnvidia-opencl.so.1
kofa@eagle:~/darktable-dev/bin > ls -l
/usr/lib/x86_64-linux-gnu/libnvidia-opencl.so.1
lrwxrwxrwx 1 root root 26 Jul 16 09:24
/usr/lib/x86_64-linux-gnu/libnvidia-opencl.so.1 ->
libnvidia-opencl.so.331.89
kofa@eagle:~/darktable-dev/bin > ls -l
/usr/lib/x86_64-linux-gnu/libnvidia-opencl.so.331.89
-rw-r--r-- 1 root root 13971304 Jul 1 20:37
/usr/lib/x86_64-linux-gnu/libnvidia-opencl.so.331.89
More verification (libOpenCL is present, chain of symlinks leads to
nvidia's implementation):
kofa@eagle:~/darktable-dev/bin > ls -l /usr/lib/x86_64-linux-gnu/libOpenCL.so.1
lrwxrwxrwx 1 root root 16 Jul 16 09:24
/usr/lib/x86_64-linux-gnu/libOpenCL.so.1 -> libOpenCL.so.1.0
kofa@eagle:~/darktable-dev/bin > ls -l
/usr/lib/x86_64-linux-gnu/libOpenCL.so.1.0
lrwxrwxrwx 1 root root 18 Jul 16 09:24
/usr/lib/x86_64-linux-gnu/libOpenCL.so.1.0 -> libOpenCL.so.1.0.0
kofa@eagle:~/darktable-dev/bin > ls -l
/usr/lib/x86_64-linux-gnu/libOpenCL.so.1.0.0
-rw-r--r-- 1 root root 21296 Jul 1 20:37
/usr/lib/x86_64-linux-gnu/libOpenCL.so.1.0.0
kofa@eagle:~/darktable-dev/bin > dpkg -S
/usr/lib/x86_64-linux-gnu/libOpenCL.so.1.0.0
nvidia-libopencl1-331: /usr/lib/x86_64-linux-gnu/libOpenCL.so.1.0.0
So, everything seems to be there, the nvidia driver is installed, the
OpenCL library is installed and points to the right library, the
library symlink is set up properly, and the actual implementation file
is present, too.
Trying to force the library via darktablerc results in another error:
'could not load all required symbols from library':
kofa@eagle:~/darktable-dev/bin > ./darktable -d opencl
[opencl_init] opencl related configuration options:
[opencl_init]
[opencl_init] opencl: 1
[opencl_init] opencl_library: 'libnvidia-opencl.so.1'
[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] trying to load opencl library: 'libnvidia-opencl.so.1'
[opencl_init] could not load all required symbols from library
[opencl_init] no working opencl library found. Continue with opencl disabled
[opencl_init] FINALLY: opencl is NOT AVAILABLE on this system.
[opencl_init] initial status of opencl enabled flag is OFF.
On 23 July 2014 22:37, KOVÁCS István <[email protected]> wrote:
> I'll give nvidia 331.67 a try using the recently updated xorg-edgers
> PPA, thanks!
>
> On 23 July 2014 22:04, Ulrich Pegelow <[email protected]> wrote:
>> Dear Istvan,
>>
>> I consider your proposed option but it will take a bit time for
>> implementation.
>>
>> In between you might upgrade your nvidia driver. The background of your
>> issue is a long standing bug in nvidia's opencl implementation reported
>> to the developers some time ago. I recently got the confirmation of the
>> nvidia guys that the issue has been fixed since driver version 331.67.
>>
>> Best wishes
>>
>> Ulrich
>>
>> Am 23.07.2014 20:56, schrieb KOVÁCS István:
>>> Dear All,
>>>
>>> Given the issues with nvidia (some versions just don't work, some work
>>> but fail to compile all kernels), I have to remove the blendop kernel
>>> to get DT to use OpenCL:
>>> ===
>>> kofa@eagle:~/darktable-dev/bin > dpkg -l|grep nvidia
>>> ii nvidia-304 304.117-0ubuntu1
>>> amd64 NVIDIA legacy binary driver -
>>> version 304.117
>>> ii nvidia-libopencl1-304 304.117-0ubuntu1
>>> amd64 NVIDIA OpenCL Driver and ICD
>>> Loader library
>>> ii nvidia-opencl-icd-304 304.117-0ubuntu1
>>> amd64 NVIDIA OpenCL ICD
>>> ii nvidia-settings 331.20-0ubuntu8
>>> amd64 Tool for configuring the
>>> NVIDIA graphics driver
>>> ii nvidia-settings-304 331.20-0ubuntu8
>>> amd64 Transitional package for
>>> nvidia-settings
>>> ===
>>> [opencl_init] compiling program `blendop.cl' ..
>>> [opencl_fopen_stat] could not open file
>>> `/home/kofa/.cache/darktable/cached_kernels_for_GeForceGTX650/blendop.cl.bin'!
>>> [opencl_load_program] could not load cached binary program, trying to
>>> compile source
>>> [opencl_load_program] successfully loaded program from
>>> `/home/kofa/darktable-dev/share/darktable/kernels/blendop.cl'
>>> [opencl_build_program] could not build program: -30
>>> [opencl_build_program] BUILD STATUS: -2
>>> BUILD LOG:
>>>
>>>
>>> [opencl_init] failed to compile program `blendop.cl'!
>>> [opencl_init] FINALLY: opencl is NOT AVAILABLE on this system.
>>> [opencl_init] initial status of opencl enabled flag is OFF.
>>> ===
>>> kofa@eagle:~/darktable-dev > rm share/darktable/kernels/blendop.cl
>>> kofa@eagle:~/darktable-dev > cd bin/
>>> kofa@eagle:~/darktable-dev/bin > ./darktable -debug opencl
>>> [...]
>>> [opencl_init] kernel loading time: 0.1189
>>> [opencl_init] OpenCL successfully initialized.
>>> [opencl_init] here are the internal numbers and names of OpenCL
>>> devices available to darktable:
>>> [opencl_init] 0 'GeForce GTX 650'
>>> [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] could not create kernel `blendop_mask_Lab'! (-44)
>>> [opencl_create_kernel] could not create kernel `blendop_mask_RAW'! (-44)
>>> [opencl_create_kernel] could not create kernel `blendop_mask_rgb'! (-44)
>>> [opencl_create_kernel] could not create kernel `blendop_Lab'! (-44)
>>> [opencl_create_kernel] could not create kernel `blendop_RAW'! (-44)
>>> [opencl_create_kernel] could not create kernel `blendop_rgb'! (-44)
>>> [opencl_create_kernel] could not create kernel `blendop_copy_alpha'! (-44)
>>> [opencl_create_kernel] could not create kernel `blendop_set_mask'! (-44)
>>> ===
>>>
>>> I know this is just a workaround, but I've been unable to find a
>>> better version (I've tried xorg-edgers, too, with all available
>>> versions).
>>> Anyway, instead of disabling OpenCL completely, I think DT should just
>>> behave as if the module was not present at all, and enable whatever
>>> OpenCL kernels are available. Maybe a warning on the UI would be nice,
>>> telling the user that performance is not optimal, telling them to run
>>> with -debug opencl.
>>>
>>> What do you think?
>>>
>>> Thanks,
>>> Kofa
>>>
>>
>> ------------------------------------------------------------------------------
>> Want fast and easy access to all the code in your enterprise? Index and
>> search up to 200,000 lines of code with a free copy of Black Duck
>> Code Sight - the same software that powers the world's largest code
>> search on Ohloh, the Black Duck Open Hub! Try it now.
>> http://p.sf.net/sfu/bds
>> _______________________________________________
>> darktable-devel mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/darktable-devel
------------------------------------------------------------------------------
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
_______________________________________________
Darktable-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/darktable-users