OpenCL platform support for Fedora 37

First post. Please be gentle. I cannot seem to find a package to install OpenCL platforms for Fedora 37. I am using NVIDIA version 525.8902 on GeForce GTX 1660 TI in dedicated GPU (turned off Intel) mode on Lenovo Legion 5 laptop. darktable-cltest indicates it finds libOpenCL.so.1 but could not get platforms: Unknown OpenCL error.

Do you have secure boot on?

How did you install NVidia driver? I used RPMFusion repo and followed their Nvidia howto steps

https://rpmfusion.org/Howto/NVIDIA

$ rpm -qa|grep nvidia
xorg-x11-drv-nvidia-cuda-libs-525.89.02-1.fc37.x86_64
nvidia-gpu-firmware-20230210-147.fc37.noarch
xorg-x11-drv-nvidia-kmodsrc-525.89.02-1.fc37.x86_64
nvidia-persistenced-525.89.02-1.fc37.x86_64
xorg-x11-drv-nvidia-libs-525.89.02-1.fc37.i686
xorg-x11-drv-nvidia-libs-525.89.02-1.fc37.x86_64
akmod-nvidia-525.89.02-1.fc37.x86_64
nvidia-settings-525.89.02-1.fc37.x86_64
xorg-x11-drv-nvidia-power-525.89.02-1.fc37.x86_64
xorg-x11-drv-nvidia-525.89.02-1.fc37.x86_64
xorg-x11-drv-nvidia-cuda-libs-525.89.02-1.fc37.i686
xorg-x11-drv-nvidia-cuda-525.89.02-1.fc37.x86_64
kmod-nvidia-6.1.12-200.fc37.x86_64-525.89.02-1.fc37.x86_64
kmod-nvidia-6.1.13-200.fc37.x86_64-525.89.02-1.fc37.x86_64
kmod-nvidia-6.1.14-200.fc37.x86_64-525.89.02-1.fc37.x86_64

$ darktable-cltest
[dt_get_sysresource_level] switched to 1 as `default’
total mem: 32004MB
mipmap cache: 4000MB
available mem: 16002MB
singlebuff: 250MB
OpenCL tune mem: OFF
OpenCL pinned: OFF
[opencl_init] opencl related configuration options:
[opencl_init] opencl: OFF
[opencl_init] opencl_scheduling_profile: ‘default’
[opencl_init] opencl_library: ‘default path’
[opencl_init] opencl_device_priority: ‘/!0,///!0,*’
[opencl_init] opencl_mandatory_timeout: 400
[opencl_init] opencl library ‘libOpenCL.so.1’ found on your system and loaded
[opencl_init] found 1 platform
[opencl_init] found 1 device

[dt_opencl_device_init]
DEVICE: 0: ‘NVIDIA GeForce GT 1030’
CANONICAL NAME: nvidiageforcegt1030
PLATFORM NAME & VENDOR: NVIDIA CUDA, NVIDIA Corporation
DRIVER VERSION: 525.89.02
DEVICE VERSION: OpenCL 3.0 CUDA, SM_20 SUPPORT
DEVICE_TYPE: GPU
GLOBAL MEM SIZE: 1966 MB
MAX MEM ALLOC: 492 MB
MAX IMAGE SIZE: 16384 x 32768
MAX WORK GROUP SIZE: 1024
MAX WORK ITEM DIMENSIONS: 3
MAX WORK ITEM SIZES: [ 1024 1024 64 ]
ASYNC PIXELPIPE: NO
PINNED MEMORY TRANSFER: NO
MEMORY TUNING: NO
FORCED HEADROOM: 400
AVOID ATOMICS: NO
MICRO NAP: 250
ROUNDUP WIDTH: 16
ROUNDUP HEIGHT: 16
CHECK EVENT HANDLES: 128
PERFORMANCE: 0.293
TILING ADVANTAGE: 0.000
DEFAULT DEVICE: NO
KERNEL DIRECTORY: /usr/local/share/darktable/kernels
CL COMPILER OPTION: -cl-fast-relaxed-math
KERNEL LOADING TIME: 0.1631 sec
[opencl_init] OpenCL successfully initialized.
[opencl_init] here are the internal numbers and names of OpenCL devices available to darktable:
[opencl_init] 0 ‘NVIDIA GeForce GT 1030’
[opencl_init] FINALLY: opencl is AVAILABLE on this system.
[opencl_init] initial status of opencl enabled flag is OFF.
[dt_opencl_update_priorities] these are your device priorities:
[dt_opencl_update_priorities] image preview export thumbs preview2
[dt_opencl_update_priorities] 0 -1 0 0 -1
[dt_opencl_update_priorities] show if opencl use is mandatory for a given pixelpipe:
[dt_opencl_update_priorities] image preview export thumbs preview2
[dt_opencl_update_priorities] 0 0 0 0 0
[opencl_synchronization_timeout] synchronization timeout set to 200
[dt_opencl_update_priorities] these are your device priorities:
[dt_opencl_update_priorities] image preview export thumbs preview2
[dt_opencl_update_priorities] 0 -1 0 0 -1
[dt_opencl_update_priorities] show if opencl use is mandatory for a given pixelpipe:
[dt_opencl_update_priorities] image preview export thumbs preview2
[dt_opencl_update_priorities] 0 0 0 0 0
[opencl_synchronization_timeout] synchronization timeout set to 200

Secure boot off

rpm -qa | grep nvidia
nvidia-gpu-firmware-20230210-147.fc37.noarch
kmod-nvidia-6.1.12-200.fc37.x86_64-525.85.05-1.fc37.x86_64
xorg-x11-drv-nvidia-kmodsrc-525.89.02-1.fc37.x86_64
xorg-x11-drv-nvidia-cuda-libs-525.89.02-1.fc37.x86_64
xorg-x11-drv-nvidia-libs-525.89.02-1.fc37.i686
xorg-x11-drv-nvidia-libs-525.89.02-1.fc37.x86_64
akmod-nvidia-525.89.02-1.fc37.x86_64
xorg-x11-drv-nvidia-power-525.89.02-1.fc37.x86_64
xorg-x11-drv-nvidia-525.89.02-1.fc37.x86_64
nvidia-settings-525.89.02-1.fc37.x86_64
kmod-nvidia-6.1.13-200.fc37.x86_64-525.89.02-1.fc37.x86_64
kmod-nvidia-6.1.14-200.fc37.x86_64-525.89.02-1.fc37.x86_64

darktable-clttest
[dt_get_sysresource_level] switched to 1 as `default’
total mem: 15901MB
mipmap cache: 1987MB
available mem: 7950MB
singlebuff: 124MB
OpenCL tune mem: OFF
OpenCL pinned: OFF
[opencl_init] opencl related configuration options:
[opencl_init] opencl: ON
[opencl_init] opencl_scheduling_profile: ‘default’
[opencl_init] opencl_library: ‘default path’
[opencl_init] opencl_device_priority: ‘/!0,///!0,*’
[opencl_init] opencl_mandatory_timeout: 200
[opencl_init] opencl library ‘libOpenCL.so.1’ found on your system and loaded
[opencl_init] could not get platforms: Unknown OpenCL error
[opencl_init] FINALLY: opencl is NOT AVAILABLE on this system.
[opencl_init] initial status of opencl enabled flag is OFF.

I see the cuda-libs but not just the cuda.

Try this and restart the computer.

sudo dnf install xorg-x11-drv-nvidia-cuda

Worked. OpenCL successfully initialized. Thanks. Not sure how I was supposed to figure that out. No hints given by cltest.

It is part of the rpm fusion link that was provided above. It is not a darktable issue.

g-man,

You are, of course, correct. Thanks for the hand spank (sincerely).

40 years of building software make me acutely aware that one does not always have visibility into the nuances of architectural layers below those with which one directly interfaces. My comment was made out of frustration, not criticism. Not being an expert in OpenCl, and having never written code that uses it’s API, my hope was that darktable would point me to the error of my ways and suggest what it was looking for that was not found in a manner that would enlighten this newbie adventurer into that space. I accept full responsibility for not having an intimate knowledge of OpenCL and its boundaries with darketable, of which I am quickly becoming a huge fan.

It is always good to learn from those with more experience. Thus the value of this platform. Unfortunately, sometimes one don’t know what one does not know. Party on Garth.

1 Like