How to use Opencl in openSUSE tumbleweed?

Thank you @asn.

If I understand properly, that just implements the opencl part and therefore keeps the system interdependent from snapshot (Kernel/driver) updates.
The next days I might find some time to install Tumbleweed and Leap on an external drive to try it out on a “real” system. Still undecided whether I wanna “roll” or not

@asn Thanks for your comments. Before I asked this question here, I tried many days and installed all I can find (about opencl) on “https://software.opensuse.org/” (even I don’t waht it is…).
If I let you and @darix feel I run away, I apology.

Actually, I still keep openSUSE tumbleweed on my laptop not switch to Linuxmint and try to find how to use opencl (I really like this OS) and using darktable on another PC with Win10 temporarily.
If you and @darix have any new idea of fix opencl issue, pleae let me know. :slightly_smiling_face:

Hi @darix, I used Nvidia driver ver.390 (G04)on Ubuntu before, it’s not working too.
Until I install “ocl-icd-opencl-dev”, then it works.

#apt install ocl-icd-opencl-dev

Maybe my Quadro k2100m also need this library on openSUSE.
Do you install any opencl library for your P600? or just install driver?

Hi All~ good news!
After reinstall the driver, opencl-headers and libopencl1 it works!! Thanks you all.

But there are a very weird problem.
Opencl worked only if I run darktable-cltest first.
Once I reboot my system, it wouldn’t work untill I run “darktable-cltest” again. Any ideas?

#rpmqpack| grep -iE ‘(opencl|ocl|nvidia)’ | grep -Eiv ‘(geoclue|autoclean)’
kernel-firmware-nvidia
libOpenCL1
nvidia-computeG05
nvidia-gfxG05-kmp-default
nvidia-glG05
opencl-headers
x11-video-nvidiaG05

#darktable-cltest
WARNING: either your user id or the effective user id are 0. are you running darktable as root?
0.018800 [opencl_init] opencl related configuration options:
0.018807 [opencl_init]
0.018809 [opencl_init] opencl: 1
0.018821 [opencl_init] opencl_scheduling_profile: ‘default’
0.018822 [opencl_init] opencl_library: ‘’
0.018824 [opencl_init] opencl_memory_requirement: 768
0.018826 [opencl_init] opencl_memory_headroom: 400
0.018829 [opencl_init] opencl_device_priority: ‘/!0,///!0,*’
0.018833 [opencl_init] opencl_mandatory_timeout: 200
0.018846 [opencl_init] opencl_size_roundup: 16
0.018849 [opencl_init] opencl_async_pixelpipe: 0
0.018851 [opencl_init] opencl_synch_cache: active module
0.018854 [opencl_init] opencl_number_event_handles: 25
0.018856 [opencl_init] opencl_micro_nap: 1000
0.018859 [opencl_init] opencl_use_pinned_memory: 0
0.018861 [opencl_init] opencl_use_cpu_devices: 0
0.018863 [opencl_init] opencl_avoid_atomics: 0
0.018865 [opencl_init]
0.018936 [opencl_init] could not find opencl runtime library ‘libOpenCL’
0.018986 [opencl_init] could not find opencl runtime library ‘libOpenCL.so’
0.019097 [opencl_init] found opencl runtime library ‘libOpenCL.so.1’
0.019126 [opencl_init] opencl library ‘libOpenCL.so.1’ found on your system and loaded
0.155082 [opencl_init] found 1 platform
0.155118 [opencl_init] found 1 device
0.155414 [opencl_init] device 0 Quadro K2100M' has sm_20 support. 0.155577 [opencl_init] device 0 Quadro K2100M’ supports image sizes of 16384 x 16384
0.155584 [opencl_init] device 0 `Quadro K2100M’ allows GPU memory allocations of up to 498MB
[opencl_init] device 0: Quadro K2100M
GLOBAL_MEM_SIZE: 1995MB
MAX_WORK_GROUP_SIZE: 1024
MAX_WORK_ITEM_DIMENSIONS: 3
MAX_WORK_ITEM_SIZES: [ 1024 1024 64 ]
DRIVER_VERSION: 440.44
DEVICE_VERSION: OpenCL 1.2 CUDA

Take care of the warning:

/Claes

Hi @Claes
Oh~ I use “sudo darktable-cltest”…
Maybe all the problems are about authority?

darktable -d opencl

Hi @asn
Here is the result if I don’t run "sudo darktable-cltest” first. It’s not working.

kelvin@localhost:~> darktable -d opencl
Invalid MIT-MAGIC-COOKIE-1 keyInvalid MIT-MAGIC-COOKIE-1 key0.140339 [opencl_init] opencl related configuration options:
0.140349 [opencl_init]
0.140351 [opencl_init] opencl: 1
0.140354 [opencl_init] opencl_scheduling_profile: ‘default’
0.140356 [opencl_init] opencl_library: ‘’
0.140358 [opencl_init] opencl_memory_requirement: 768
0.140361 [opencl_init] opencl_memory_headroom: 400
0.140363 [opencl_init] opencl_device_priority: ‘/!0,///!0,*’
0.140366 [opencl_init] opencl_mandatory_timeout: 200
0.140370 [opencl_init] opencl_size_roundup: 16
0.140373 [opencl_init] opencl_async_pixelpipe: 0
0.140376 [opencl_init] opencl_synch_cache: active module
0.140379 [opencl_init] opencl_number_event_handles: 25
0.140382 [opencl_init] opencl_micro_nap: 1000
0.140384 [opencl_init] opencl_use_pinned_memory: 0
0.140387 [opencl_init] opencl_use_cpu_devices: 0
0.140389 [opencl_init] opencl_avoid_atomics: 0
0.140392 [opencl_init]
0.140515 [opencl_init] could not find opencl runtime library ‘libOpenCL’
0.140559 [opencl_init] could not find opencl runtime library ‘libOpenCL.so’
0.141801 [opencl_init] found opencl runtime library ‘libOpenCL.so.1’
0.141823 [opencl_init] opencl library ‘libOpenCL.so.1’ found on your system and loaded
0.181442 [opencl_init] could not get platforms: -1001
0.181460 [opencl_init] FINALLY: opencl is NOT AVAILABLE on this system.
0.181464 [opencl_init] initial status of opencl enabled flag is OFF.

But after I ran "sudo darktable-cltest”, then run “darktable -d opencl”

kelvin@localhost:~> darktable -d opencl
Invalid MIT-MAGIC-COOKIE-1 keyInvalid MIT-MAGIC-COOKIE-1 key0.052770 [opencl_init] opencl related configuration options:
0.052782 [opencl_init]
0.052794 [opencl_init] opencl: 1
0.052797 [opencl_init] opencl_scheduling_profile: ‘default’
0.052800 [opencl_init] opencl_library: ‘’
0.052805 [opencl_init] opencl_memory_requirement: 768
0.052808 [opencl_init] opencl_memory_headroom: 400
0.052812 [opencl_init] opencl_device_priority: ‘/!0,///!0,*’
0.052815 [opencl_init] opencl_mandatory_timeout: 200
0.052819 [opencl_init] opencl_size_roundup: 16
0.052822 [opencl_init] opencl_async_pixelpipe: 0
0.052825 [opencl_init] opencl_synch_cache: active module
0.052829 [opencl_init] opencl_number_event_handles: 25
0.052833 [opencl_init] opencl_micro_nap: 1000
0.052836 [opencl_init] opencl_use_pinned_memory: 0
0.052839 [opencl_init] opencl_use_cpu_devices: 0
0.052842 [opencl_init] opencl_avoid_atomics: 0
0.052845 [opencl_init]
0.052945 [opencl_init] could not find opencl runtime library ‘libOpenCL’
0.052979 [opencl_init] could not find opencl runtime library ‘libOpenCL.so’
0.053062 [opencl_init] found opencl runtime library ‘libOpenCL.so.1’
0.053081 [opencl_init] opencl library ‘libOpenCL.so.1’ found on your system and loaded
0.062374 [opencl_init] found 1 platform
0.062400 [opencl_init] found 1 device
0.062530 [opencl_init] device 0 Quadro K2100M' has sm_20 support. 0.062622 [opencl_init] device 0 Quadro K2100M’ supports image sizes of 16384 x 16384
0.062625 [opencl_init] device 0 `Quadro K2100M’ allows GPU memory allocations of up to 498MB
[opencl_init] device 0: Quadro K2100M
GLOBAL_MEM_SIZE: 1995MB
MAX_WORK_GROUP_SIZE: 1024
MAX_WORK_ITEM_DIMENSIONS: 3
MAX_WORK_ITEM_SIZES: [ 1024 1024 64 ]
DRIVER_VERSION: 440.44
DEVICE_VERSION: OpenCL 1.2 CUDA

It works!

Hi @asn
After I run "sudo darktable-cltest ".
I can just use “darktable-cltest”, then opencl works.
It looks like I need to run a “sudo darktable-cltest” first, anyway.

kelvin@localhost:~> darktable-cltest
0.020404 [opencl_init] opencl related configuration options:
0.020414 [opencl_init]
0.020416 [opencl_init] opencl: 1
0.020428 [opencl_init] opencl_scheduling_profile: ‘default’
0.020430 [opencl_init] opencl_library: ‘’
0.020432 [opencl_init] opencl_memory_requirement: 768
0.020433 [opencl_init] opencl_memory_headroom: 400
0.020436 [opencl_init] opencl_device_priority: ‘/!0,///!0,*’
0.020450 [opencl_init] opencl_mandatory_timeout: 200
0.020453 [opencl_init] opencl_size_roundup: 16
0.020454 [opencl_init] opencl_async_pixelpipe: 0
0.020456 [opencl_init] opencl_synch_cache: active module
0.020459 [opencl_init] opencl_number_event_handles: 25
0.020462 [opencl_init] opencl_micro_nap: 1000
0.020464 [opencl_init] opencl_use_pinned_memory: 0
0.020466 [opencl_init] opencl_use_cpu_devices: 0
0.020468 [opencl_init] opencl_avoid_atomics: 0
0.020470 [opencl_init]
0.020547 [opencl_init] could not find opencl runtime library ‘libOpenCL’
0.020612 [opencl_init] could not find opencl runtime library ‘libOpenCL.so’
0.020715 [opencl_init] found opencl runtime library ‘libOpenCL.so.1’
0.020747 [opencl_init] opencl library ‘libOpenCL.so.1’ found on your system and loaded
0.030686 [opencl_init] found 1 platform
0.030701 [opencl_init] found 1 device
0.030869 [opencl_init] device 0 Quadro K2100M' has sm_20 support. 0.030987 [opencl_init] device 0 Quadro K2100M’ supports image sizes of 16384 x 16384
0.030990 [opencl_init] device 0 `Quadro K2100M’ allows GPU memory allocations of up to 498MB
[opencl_init] device 0: Quadro K2100M
GLOBAL_MEM_SIZE: 1995MB
MAX_WORK_GROUP_SIZE: 1024
MAX_WORK_ITEM_DIMENSIONS: 3
MAX_WORK_ITEM_SIZES: [ 1024 1024 64 ]
DRIVER_VERSION: 440.44
DEVICE_VERSION: OpenCL 1.2 CUD

It worked, thank you very much :sunglasses:

@asn I did a quick test install on an external SSD today.

Your setup description works flawlessly. One questions though:

  • Is it correct, that the repo and the files are not signed?

Yes, they are not signed which is really bad!!!

Open a ROCm bug, suggest them to either sign the packages or use the OpenSUSE Build Service, which should be easier :slight_smile:

1 Like

done
github issue

Okay, again the combination of tumbleweed, opencl and in my case AMD graphics card, which is older and belongs to the polaris line. That line has no longer been supported by rocm since rocm 4.5.
On supported OSs, which tumbleweed is not, the official AMD driver works unobtrusively.
I cannot get the official driver to work under tumbleweed. Because of the line of my graphics card, I should call up the installer with --opencl=legacy which enforces dkms to be installed by the setup script.

Does anyone of you use the same combination (tumbleweed, AMD and opencl) and can point me in the right direction?