Jellyfin Forum
SOLVED: Jellyfin Docker Container on intel GPU - openCL devices not found - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Support (https://forum.jellyfin.org/f-support)
+--- Forum: Troubleshooting (https://forum.jellyfin.org/f-troubleshooting)
+--- Thread: SOLVED: Jellyfin Docker Container on intel GPU - openCL devices not found (/t-solved-jellyfin-docker-container-on-intel-gpu-opencl-devices-not-found)



Jellyfin Docker Container on intel GPU - openCL devices not found - Timo Verbrugghe - 2024-03-25

Hi everyone,

I'm having a very strange issue with nixos that I can't seem to generate on another linux OS such as ubuntu or arch.

I have an intel N100 pc with a alder lake GPU with quicksync. I run jellyfin in a docker container on nixos. When I enable OpenCL tone mapping in the docker container, none of my media can play. I see in the jellyfin logs that it doesn't seem to find an OpenCL device:

Code:
root@jelly:/# /usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=va:/dev/dri/renderD128 -init_hw_device opencl@va
ffmpeg version 5.1.4-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 10 (Debian 10.2.1-6)
  configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-libs=-lfftw3f --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-libdrm --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libsvtav1 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-opencl --enable-vaapi --enable-amf --enable-libmfx --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
  libavutil      57. 28.100 / 57. 28.100
  libavcodec    59. 37.100 / 59. 37.100
  libavformat    59. 27.100 / 59. 27.100
  libavdevice    59.  7.100 / 59.  7.100
  libavfilter    8. 44.100 /  8. 44.100
  libswscale      6.  7.100 /  6.  7.100
  libswresample  4.  7.100 /  4.  7.100
  libpostproc    56.  6.100 / 56.  6.100
[AVHWDeviceContext @ 0x564f45c27cc0] libva: VA-API version 1.20.0
[AVHWDeviceContext @ 0x564f45c27cc0] libva: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
[AVHWDeviceContext @ 0x564f45c27cc0] libva: Found init function __vaDriverInit_1_20
[AVHWDeviceContext @ 0x564f45c27cc0] libva: va_openDriver() returns 0
[AVHWDeviceContext @ 0x564f45c27cc0] Initialised VAAPI connection: version 1.20
[AVHWDeviceContext @ 0x564f45c27cc0] VAAPI driver: Intel iHD driver for Intel(R) Gen Graphics - 23.4.0 (05e4d0d).
[AVHWDeviceContext @ 0x564f45c27cc0] Driver not found in known nonstandard list, using standard behaviour.
[AVHWDeviceContext @ 0x564f45c57940] Failed to get number of OpenCL platforms: -1001.
Device creation failed: -19.
Failed to set value 'opencl@va' for option 'init_hw_device': No such device
Error parsing global options: No such device


Nixos config. I've tried both with only adding in the onevpl-intel-gpu package, not adding that in, adding that in and removing intel-media-driver package, all same issues.

Code:
  hardware.opengl = {
    enable = true;
    extraPackages = with pkgs; [
      intel-media-driver
      intel-compute-runtime
      vaapiVdpau
      libvdpau-va-gl
      vaapiIntel
      intel-ocl
      # Intel Video Processing Library (VPL) API runtime implementation
      # replace with`onevpl-intel-gpu` after https://github.com/NixOS/nixpkgs/pull/264621
      (pkgs.callPackage ./onevpl-intel-gpu.nix { })
    ];
  };

Docker compose, i pass the intel gpu through by passing through /dev/dri. This docker compose has been used on a ubuntu server system as well for months with no issues.


Code:
  jellyfin:
    container_name: jellyfin
    image: jellyfin/jellyfin
    restart: always
    network_mode: service:tailscale-jellyfin
    environment:
      - TZ=Europe/Brussels
    volumes:
      - jellyfin:/config
      - /tmp:/cache
      - movies:/movies
      - tvshows:/tv
      - /dev/shm:/dev/shm
    devices:
      - /dev/dri:/dev/dri


On ubuntu or arch running the same docker compose setup, jellyfin docker does recognize an OpenCL device. Jellyfin docker logs on ubuntu server



Code:
[AVHWDeviceContext @ 0x5615fea0e100] libva: VA-API version 1.20.0
[AVHWDeviceContext @ 0x5615fea0e100] libva: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
[AVHWDeviceContext @ 0x5615fea0e100] libva: Found init function __vaDriverInit_1_20
[AVHWDeviceContext @ 0x5615fea0e100] libva: va_openDriver() returns 0
[AVHWDeviceContext @ 0x5615fea0e100] Initialised VAAPI connection: version 1.20
[AVHWDeviceContext @ 0x5615fea0e100] VAAPI driver: Intel iHD driver for Intel(R) Gen Graphics - 23.4.0 (05e4d0d).
[AVHWDeviceContext @ 0x5615fea0e100] Driver not found in known nonstandard list, using standard behaviour.
[AVHWDeviceContext @ 0x5615fea3dc40] 0.0: Intel(R) OpenCL Graphics / Intel(R) UHD Graphics
[AVHWDeviceContext @ 0x5615fea3dc40] Intel QSV to OpenCL mapping function found (clCreateFromVA_APIMediaSurfaceINTEL).
[AVHWDeviceContext @ 0x5615fea3dc40] Intel QSV in OpenCL acquire function found (clEnqueueAcquireVA_APIMediaSurfacesINTEL).
[AVHWDeviceContext @ 0x5615fea3dc40] Intel QSV in OpenCL release function found (clEnqueueReleaseVA_APIMediaSurfacesINTEL).


So weird that the underlying OS can have an influence on a passed through GPU in a docker container ... Anybody having the same issue?


RE: Jellyfin Docker Container on intel GPU - openCL devices not found - TheDreadPirate - 2024-03-25

Make sure that the Intel Compute Runtime on NixOS is new enough. I think the minimum version for the N100 is Intel Compute Runtime 22.30.23789 and newer.

https://github.com/intel/compute-runtime/releases


RE: Jellyfin Docker Container on intel GPU - openCL devices not found - Timo Verbrugghe - 2024-03-25

My intel compute runtime version is 24.05.28454.6 which is the latest version available on the github page you linked...

Code:
[root@ulrich:/home/ulrich]# nix-store --query --requisites /run/current-system | cut -d- -f2- | sort -u | grep intel-compute-runtime

intel-compute-runtime-24.05.28454.6



RE: Jellyfin Docker Container on intel GPU - openCL devices not found - Timo Verbrugghe - 2024-03-25

Allright the plot thickens. I have 2 N100 (Alder Lake) and 1 N5105 (Jasper Lake) device.

I ran
Code:
/usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=va:/dev/dri/renderD128 -init_hw_device opencl@va

inside a jellyfin container on each device to check if it detects opencl capabilities.

On a N5105 device with nixos as host OS, it works and opencl is detected.

Code:
root@3076deea253c:/# /usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=va:/dev/dri/renderD128 -init_hw_device opencl@va
ffmpeg version 5.1.4-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 10 (Debian 10.2.1-6)
  configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-libs=-lfftw3f --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-libdrm --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libsvtav1 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-opencl --enable-vaapi --enable-amf --enable-libmfx --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
  libavutil      57. 28.100 / 57. 28.100
  libavcodec    59. 37.100 / 59. 37.100
  libavformat    59. 27.100 / 59. 27.100
  libavdevice    59.  7.100 / 59.  7.100
  libavfilter    8. 44.100 /  8. 44.100
  libswscale      6.  7.100 /  6.  7.100
  libswresample  4.  7.100 /  4.  7.100
  libpostproc    56.  6.100 / 56.  6.100
[AVHWDeviceContext @ 0x564f29b88cc0] libva: VA-API version 1.20.0
[AVHWDeviceContext @ 0x564f29b88cc0] libva: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
[AVHWDeviceContext @ 0x564f29b88cc0] libva: Found init function __vaDriverInit_1_20
[AVHWDeviceContext @ 0x564f29b88cc0] libva: va_openDriver() returns 0
[AVHWDeviceContext @ 0x564f29b88cc0] Initialised VAAPI connection: version 1.20
[AVHWDeviceContext @ 0x564f29b88cc0] VAAPI driver: Intel iHD driver for Intel(R) Gen Graphics - 23.4.0 (05e4d0d).
[AVHWDeviceContext @ 0x564f29b88cc0] Driver not found in known nonstandard list, using standard behaviour.
[AVHWDeviceContext @ 0x564f29bab540] 0.0: Intel(R) OpenCL Graphics / Intel(R) UHD Graphics
[AVHWDeviceContext @ 0x564f29bab540] Intel QSV to OpenCL mapping function found (clCreateFromVA_APIMediaSurfaceINTEL).
[AVHWDeviceContext @ 0x564f29bab540] Intel QSV in OpenCL acquire function found (clEnqueueAcquireVA_APIMediaSurfacesINTEL).
[AVHWDeviceContext @ 0x564f29bab540] Intel QSV in OpenCL release function found (clEnqueueReleaseVA_APIMediaSurfacesINTEL).

On a N100 device with ubuntu as host OS, it works and opencl is detected

Code:
root@679c855e6589:/# /usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=va:/dev/dri/renderD128 -init_hw_device opencl@vaffmpeg version 5.1.4-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers  built with gcc 10 (Debian 10.2.1-6)  configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-libs=-lfftw3f --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-libdrm --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libsvtav1 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-opencl --enable-vaapi --enable-amf --enable-libmfx --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
  libavutil      57. 28.100 / 57. 28.100
  libavcodec    59. 37.100 / 59. 37.100
  libavformat    59. 27.100 / 59. 27.100
  libavdevice    59.  7.100 / 59.  7.100
  libavfilter    8. 44.100 /  8. 44.100
  libswscale      6.  7.100 /  6.  7.100
  libswresample  4.  7.100 /  4.  7.100
  libpostproc    56.  6.100 / 56.  6.100
[AVHWDeviceContext @ 0x555b8b00c100] libva: VA-API version 1.20.0
[AVHWDeviceContext @ 0x555b8b00c100] libva: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
[AVHWDeviceContext @ 0x555b8b00c100] libva: Found init function __vaDriverInit_1_20
[AVHWDeviceContext @ 0x555b8b00c100] libva: va_openDriver() returns 0
[AVHWDeviceContext @ 0x555b8b00c100] Initialised VAAPI connection: version 1.20
[AVHWDeviceContext @ 0x555b8b00c100] VAAPI driver: Intel iHD driver for Intel(R) Gen Graphics - 23.4.0 (05e4d0d).
[AVHWDeviceContext @ 0x555b8b00c100] Driver not found in known nonstandard list, using standard behaviour.
[AVHWDeviceContext @ 0x555b8b03bc40] 0.0: Intel(R) OpenCL Graphics / Intel(R) UHD Graphics
[AVHWDeviceContext @ 0x555b8b03bc40] Intel QSV to OpenCL mapping function found (clCreateFromVA_APIMediaSurfaceINTEL).
[AVHWDeviceContext @ 0x555b8b03bc40] Intel QSV in OpenCL acquire function found (clEnqueueAcquireVA_APIMediaSurfacesINTEL).
[AVHWDeviceContext @ 0x555b8b03bc40] Intel QSV in OpenCL release function found (clEnqueueReleaseVA_APIMediaSurfacesINTEL).

On the N100 device with nixos as host OS, it doesn't work and opencl isn't detected.

Code:
root@c9803a7b2fda:/# /usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=va:/dev/dri/renderD128 -init_hw_device opencl@va
ffmpeg version 5.1.4-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 10 (Debian 10.2.1-6)
  configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-libs=-lfftw3f --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-libdrm --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libsvtav1 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-opencl --enable-vaapi --enable-amf --enable-libmfx --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
  libavutil      57. 28.100 / 57. 28.100
  libavcodec    59. 37.100 / 59. 37.100
  libavformat    59. 27.100 / 59. 27.100
  libavdevice    59.  7.100 / 59.  7.100
  libavfilter    8. 44.100 /  8. 44.100
  libswscale      6.  7.100 /  6.  7.100
  libswresample  4.  7.100 /  4.  7.100
  libpostproc    56.  6.100 / 56.  6.100
[AVHWDeviceContext @ 0x55d31f318cc0] libva: VA-API version 1.20.0
[AVHWDeviceContext @ 0x55d31f318cc0] libva: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
[AVHWDeviceContext @ 0x55d31f318cc0] libva: Found init function __vaDriverInit_1_20
[AVHWDeviceContext @ 0x55d31f318cc0] libva: va_openDriver() returns 0
[AVHWDeviceContext @ 0x55d31f318cc0] Initialised VAAPI connection: version 1.20
[AVHWDeviceContext @ 0x55d31f318cc0] VAAPI driver: Intel iHD driver for Intel(R) Gen Graphics - 23.4.0 (05e4d0d).
[AVHWDeviceContext @ 0x55d31f318cc0] Driver not found in known nonstandard list, using standard behaviour.
[AVHWDeviceContext @ 0x55d31f350900] Failed to get number of OpenCL platforms: -1001.
Device creation failed: -19.
Failed to set value 'opencl@va' for option 'init_hw_device': No such device
Error parsing global options: No such device

So there seems to be an issue with N100 devices in Nixos with opencl...


RE: Jellyfin Docker Container on intel GPU - openCL devices not found - TheDreadPirate - 2024-03-25

Just re-read your first post. If you are using the official docker image, it will come with all the Intel drivers you need.

The only thing that could potentially be an issue is the kernel. What kernel are you currently running on NixOS?


RE: Jellyfin Docker Container on intel GPU - openCL devices not found - Timo Verbrugghe - 2024-03-25

Output of uname -r is 6.8.1

However, I now see that clinfo on my N5105 machine is different than the output of clinfo on my N100 machine... Weird because they both have the exact same nixos configuration and packages installed.

N100 machine with nixos:

Code:
Number of platforms                              1
  Platform Name                                  Intel(R) OpenCL
  Platform Vendor                                Intel(R) Corporation
  Platform Version                                OpenCL 1.2 LINUX
  Platform Profile                                FULL_PROFILE
  Platform Extensions                            cl_khr_icd cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cl_khr_depth_images cl_khr_3d_image_writes cl_intel_exec_by_local_thread cl_khr_spir cl_khr_fp64
  Platform Extensions function suffix            INTEL

  Platform Name                                  Intel(R) OpenCL
Number of devices                                1
  Device Name                                    Intel(R) N100
  Device Vendor                                  Intel(R) Corporation
  Device Vendor ID                                0x8086
  Device Version                                  OpenCL 1.2 (Build 475)
  Driver Version                                  1.2.0.475
  Device OpenCL C Version                        OpenCL C 1.2
  Device Type                                    CPU
  Device Profile                                  FULL_PROFILE
  Device Available                                Yes
  Compiler Available                              Yes
  Linker Available                                Yes
  Max compute units                              4
  Max clock frequency                            0MHz
  Device Partition                                (core)
    Max number of sub-devices                    4
    Supported partition types                    by counts, equally, by names (Intel)
    Supported affinity domains                    (n/a)
  Max work item dimensions                        3
  Max work item sizes                            8192x8192x8192
  Max work group size                            8192
  Preferred work group size multiple (kernel)    128
  Preferred / native vector sizes
    char                                                1 / 32
    short                                                1 / 16
    int                                                  1 / 8
    long                                                1 / 4
    half                                                0 / 0        (n/a)
    float                                                1 / 8
    double                                              1 / 4        (cl_khr_fp64)
  Half-precision Floating-point support          (n/a)
  Single-precision Floating-point support        (core)
    Denormals                                    Yes
    Infinity and NANs                            Yes
    Round to nearest                              Yes
    Round to zero                                No
    Round to infinity                            No
    IEEE754-2008 fused multiply-add              No
    Support is emulated in software              No
    Correctly-rounded divide and sqrt operations  No
  Double-precision Floating-point support        (cl_khr_fp64)
    Denormals                                    Yes
    Infinity and NANs                            Yes
    Round to nearest                              Yes
    Round to zero                                Yes
    Round to infinity                            Yes
    IEEE754-2008 fused multiply-add              Yes
    Support is emulated in software              No
  Address bits                                    64, Little-Endian
  Global memory size                              12512915456 (11.65GiB)
  Error Correction support                        No
  Max memory allocation                          3128228864 (2.913GiB)
  Unified memory for Host and Device              Yes
  Minimum alignment for any data type            128 bytes
  Alignment of base address                      1024 bits (128 bytes)
  Global Memory cache type                        Read/Write
  Global Memory cache size                        524288 (512KiB)
  Global Memory cache line size                  64 bytes
  Image support                                  Yes
    Max number of samplers per kernel            480
    Max size for 1D images from buffer            195514304 pixels
    Max 1D or 2D image array size                2048 images
    Max 2D image size                            16384x16384 pixels
    Max 3D image size                            2048x2048x2048 pixels
    Max number of read image args                480
    Max number of write image args                480
  Local memory type                              Global
  Local memory size                              32768 (32KiB)
  Max number of constant args                    480
  Max constant buffer size                        131072 (128KiB)
  Max size of kernel argument                    3840 (3.75KiB)
  Queue properties
    Out-of-order execution                        Yes
    Profiling                                    Yes
    Local thread execution (Intel)                Yes
  Prefer user sync for interop                    No
  Profiling timer resolution                      1ns
  Execution capabilities
    Run OpenCL kernels                            Yes
    Run native kernels                            Yes
    SPIR versions                                1.2
  printf() buffer size                            1048576 (1024KiB)
  Built-in kernels                                (n/a)
  Device Extensions                              cl_khr_icd cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cl_khr_depth_images cl_khr_3d_image_writes cl_intel_exec_by_local_thread cl_khr_spir cl_khr_fp64

NULL platform behavior
  clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...)  Intel(R) OpenCL
  clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...)  Success [INTEL]
  clCreateContext(NULL, ...) [default]            Success [INTEL]
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_DEFAULT)  Success (1)
    Platform Name                                Intel(R) OpenCL
    Device Name                                  Intel(R) N100
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU)  Success (1)
    Platform Name                                Intel(R) OpenCL
    Device Name                                  Intel(R) N100
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL)  Success (1)
    Platform Name                                Intel(R) OpenCL
    Device Name                                  Intel(R) N100

ICD loader properties
  ICD loader Name                                OpenCL ICD Loader
  ICD loader Vendor                              OCL Icd free software
  ICD loader Version                              2.3.2
  ICD loader Profile                              OpenCL 3.0


Output on N5105 machine

Code:
Number of platforms                              2
  Platform Name                                  Intel(R) OpenCL Graphics
  Platform Vendor                                Intel(R) Corporation
  Platform Version                                OpenCL 3.0
  Platform Profile                                FULL_PROFILE
  Platform Extensions                            cl_khr_byte_addressable_store cl_khr_device_uuid cl_khr_fp16 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_icd cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_intel_command_queue_families cl_intel_subgroups cl_intel_required_subgroup_size cl_intel_subgroups_short cl_khr_spir cl_intel_accelerator cl_intel_driver_diagnostics cl_khr_priority_hints cl_khr_throttle_hints cl_khr_create_command_queue cl_intel_subgroups_char cl_intel_subgroups_long cl_khr_il_program cl_intel_mem_force_host_memory cl_khr_subgroup_extended_types cl_khr_subgroup_non_uniform_vote cl_khr_subgroup_ballot cl_khr_subgroup_non_uniform_arithmetic cl_khr_subgroup_shuffle cl_khr_subgroup_shuffle_relative cl_khr_subgroup_clustered_reduce cl_intel_device_attribute_query cl_khr_suggested_local_work_size cl_intel_split_work_group_barrier cl_ext_float_atomics cl_khr_external_memory cl_intel_planar_yuv cl_intel_packed_yuv cl_khr_image2d_from_buffer cl_khr_depth_images cl_khr_3d_image_writes cl_intel_media_block_io cl_intel_subgroup_local_block_io cl_khr_gl_sharing cl_khr_gl_depth_images cl_khr_gl_event cl_khr_gl_msaa_sharing cl_intel_va_api_media_sharing cl_intel_sharing_format_query cl_khr_pci_bus_info
  Platform Extensions with Version                cl_khr_byte_addressable_store                                    0x400000 (1.0.0)
                                                  cl_khr_device_uuid                                              0x400000 (1.0.0)
                                                  cl_khr_fp16                                                      0x400000 (1.0.0)
                                                  cl_khr_global_int32_base_atomics                                0x400000 (1.0.0)
                                                  cl_khr_global_int32_extended_atomics                            0x400000 (1.0.0)
                                                  cl_khr_icd                                                      0x400000 (1.0.0)
                                                  cl_khr_local_int32_base_atomics                                  0x400000 (1.0.0)
                                                  cl_khr_local_int32_extended_atomics                              0x400000 (1.0.0)
                                                  cl_intel_command_queue_families                                  0x400000 (1.0.0)
                                                  cl_intel_subgroups                                              0x400000 (1.0.0)
                                                  cl_intel_required_subgroup_size                                  0x400000 (1.0.0)
                                                  cl_intel_subgroups_short                                        0x400000 (1.0.0)
                                                  cl_khr_spir                                                      0x400000 (1.0.0)
                                                  cl_intel_accelerator                                            0x400000 (1.0.0)
                                                  cl_intel_driver_diagnostics                                      0x400000 (1.0.0)
                                                  cl_khr_priority_hints                                            0x400000 (1.0.0)
                                                  cl_khr_throttle_hints                                            0x400000 (1.0.0)
                                                  cl_khr_create_command_queue                                      0x400000 (1.0.0)
                                                  cl_intel_subgroups_char                                          0x400000 (1.0.0)
                                                  cl_intel_subgroups_long                                          0x400000 (1.0.0)
                                                  cl_khr_il_program                                                0x400000 (1.0.0)
                                                  cl_intel_mem_force_host_memory                                  0x400000 (1.0.0)
                                                  cl_khr_subgroup_extended_types                                  0x400000 (1.0.0)
                                                  cl_khr_subgroup_non_uniform_vote                                0x400000 (1.0.0)
                                                  cl_khr_subgroup_ballot                                          0x400000 (1.0.0)
                                                  cl_khr_subgroup_non_uniform_arithmetic                          0x400000 (1.0.0)
                                                  cl_khr_subgroup_shuffle                                          0x400000 (1.0.0)
                                                  cl_khr_subgroup_shuffle_relative                                0x400000 (1.0.0)
                                                  cl_khr_subgroup_clustered_reduce                                0x400000 (1.0.0)
                                                  cl_intel_device_attribute_query                                  0x400000 (1.0.0)
                                                  cl_khr_suggested_local_work_size                                0x400000 (1.0.0)
                                                  cl_intel_split_work_group_barrier                                0x400000 (1.0.0)
                                                  cl_ext_float_atomics                                            0x400000 (1.0.0)
                                                  cl_khr_external_memory                                            0x9001 (0.9.1)
                                                  cl_intel_planar_yuv                                              0x400000 (1.0.0)
                                                  cl_intel_packed_yuv                                              0x400000 (1.0.0)
                                                  cl_khr_image2d_from_buffer                                      0x400000 (1.0.0)
                                                  cl_khr_depth_images                                              0x400000 (1.0.0)
                                                  cl_khr_3d_image_writes                                          0x400000 (1.0.0)
                                                  cl_intel_media_block_io                                          0x400000 (1.0.0)
                                                  cl_intel_subgroup_local_block_io                                0x400000 (1.0.0)
                                                  cl_khr_gl_sharing                                                0x400000 (1.0.0)
                                                  cl_khr_gl_depth_images                                          0x400000 (1.0.0)
                                                  cl_khr_gl_event                                                  0x400000 (1.0.0)
                                                  cl_khr_gl_msaa_sharing                                          0x400000 (1.0.0)
                                                  cl_intel_va_api_media_sharing                                    0x400000 (1.0.0)
                                                  cl_intel_sharing_format_query                                    0x400000 (1.0.0)
                                                  cl_khr_pci_bus_info                                              0x400000 (1.0.0)
  Platform Numeric Version                        0xc00000 (3.0.0)
  Platform Extensions function suffix            INTEL
  Platform Host timer resolution                  1ns
  Platform External memory handle types          DMA buffer

  Platform Name                                  Intel(R) OpenCL
  Platform Vendor                                Intel(R) Corporation
  Platform Version                                OpenCL 1.2 LINUX
  Platform Profile                                FULL_PROFILE
  Platform Extensions                            cl_khr_icd cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cl_khr_depth_images cl_khr_3d_image_writes cl_intel_exec_by_local_thread cl_khr_spir cl_khr_fp64
  Platform Extensions function suffix            INTEL

  Platform Name                                  Intel(R) OpenCL Graphics
Number of devices                                1
  Device Name                                    Intel(R) UHD Graphics
  Device Vendor                                  Intel(R) Corporation
  Device Vendor ID                                0x8086
  Device Version                                  OpenCL 3.0 NEO
  Device UUID                                    8680614e-0100-0000-0100-000000000000
  Driver UUID                                    32342e30-352e-3032-3834-353400000000
  Valid Device LUID                              No
  Device LUID                                    b076-5276ff7f0000
  Device Node Mask                                0
  Device Numeric Version                          0xc00000 (3.0.0)
  Driver Version                                  24.05.028454
  Device OpenCL C Version                        OpenCL C 1.2
  Device OpenCL C all versions                    OpenCL C                                                        0x400000 (1.0.0)
                                                  OpenCL C                                                        0x401000 (1.1.0)
                                                  OpenCL C                                                        0x402000 (1.2.0)
                                                  OpenCL C                                                        0xc00000 (3.0.0)
  Device OpenCL C features                        __opencl_c_int64                                                0xc00000 (3.0.0)
                                                  __opencl_c_3d_image_writes                                      0xc00000 (3.0.0)
                                                  __opencl_c_images                                                0xc00000 (3.0.0)
                                                  __opencl_c_read_write_images                                    0xc00000 (3.0.0)
  Latest conformance test passed                  v2023-05-16-00
  Device Type                                    GPU
  Device PCI bus info (KHR)                      PCI-E, 0000:01:00.0
  Device Profile                                  FULL_PROFILE
  Device Available                                Yes
  Compiler Available                              Yes
  Linker Available                                Yes
  Max compute units                              24
  Max clock frequency                            800MHz
  Device IP (Intel)                              0x2c08000 (11.8.0)
  Device ID (Intel)                              20065
  Slices (Intel)                                  1
  Sub-slices per slice (Intel)                    4
  EUs per sub-slice (Intel)                      8
  Threads per EU (Intel)                          7
  Feature capabilities (Intel)                    (n/a)
  Device Partition                                (core)
    Max number of sub-devices                    0
    Supported partition types                    None
    Supported affinity domains                    (n/a)
  Max work item dimensions                        3
  Max work item sizes                            256x256x256
  Max work group size                            256
  Preferred work group size multiple (device)    32
  Preferred work group size multiple (kernel)    32
  Max sub-groups per work group                  0
  Sub-group sizes (Intel)                        8, 16, 32
  Preferred / native vector sizes
    char                                                16 / 16
    short                                                8 / 8
    int                                                  4 / 4
    long                                                1 / 1
    half                                                8 / 8        (cl_khr_fp16)
    float                                                1 / 1
    double                                              0 / 0        (n/a)
  Half-precision Floating-point support          (cl_khr_fp16)
    Denormals                                    Yes
    Infinity and NANs                            Yes
    Round to nearest                              Yes
    Round to zero                                Yes
    Round to infinity                            Yes
    IEEE754-2008 fused multiply-add              Yes
    Support is emulated in software              No
  Single-precision Floating-point support        (core)
    Denormals                                    Yes
    Infinity and NANs                            Yes
    Round to nearest                              Yes
    Round to zero                                Yes
    Round to infinity                            Yes
    IEEE754-2008 fused multiply-add              Yes
    Support is emulated in software              No
    Correctly-rounded divide and sqrt operations  No
  Double-precision Floating-point support        (n/a)
  Address bits                                    32, Little-Endian
  External memory handle types                    DMA buffer
  Global memory size                              4037267456 (3.76GiB)
  Error Correction support                        No
  Max memory allocation                          2018633728 (1.88GiB)
  Unified memory for Host and Device              Yes
  Shared Virtual Memory (SVM) capabilities        (core)
    Coarse-grained buffer sharing                No
    Fine-grained buffer sharing                  No
    Fine-grained system sharing                  No
    Atomics                                      No
  Minimum alignment for any data type            128 bytes
  Alignment of base address                      1024 bits (128 bytes)
  Preferred alignment for atomics
    SVM                                          64 bytes
    Global                                        64 bytes
    Local                                        64 bytes
  Atomic memory capabilities                      relaxed, work-group scope
  Atomic fence capabilities                      relaxed, acquire/release, work-group scope
  Max size for global variable                    0
  Preferred total size of global vars            0
  Global Memory cache type                        Read/Write
  Global Memory cache size                        1310720 (1.25MiB)
  Global Memory cache line size                  64 bytes
  Image support                                  Yes
    Max number of samplers per kernel            16
    Max size for 1D images from buffer            126164608 pixels
    Max 1D or 2D image array size                2048 images
    Base address alignment for 2D image buffers  4 bytes
    Pitch alignment for 2D image buffers          4 pixels
    Max 2D image size                            16384x16384 pixels
    Max planar YUV image size                    16384x16352 pixels
    Max 3D image size                            16384x16384x2048 pixels
    Max number of read image args                128
    Max number of write image args                128
    Max number of read/write image args          128
  Pipe support                                    No
  Max number of pipe args                        0
  Max active pipe reservations                    0
  Max pipe packet size                            0
  Local memory type                              Local
  Local memory size                              65536 (64KiB)
  Max number of constant args                    8
  Max constant buffer size                        2018633728 (1.88GiB)
  Generic address space support                  No
  Max size of kernel argument                    2048 (2KiB)
  Queue properties (on host)
    Out-of-order execution                        Yes
    Profiling                                    Yes
  Device enqueue capabilities                    (n/a)
  Queue properties (on device)
    Out-of-order execution                        No
    Profiling                                    No
    Preferred size                                0
    Max size                                      0
  Max queues on device                            0
  Max events on device                            0
  Device queue families                          rcs                                                              (1)
                                                                                                Queue properties  Out-of-order execution, Profiling 
                                                                                                    Capabilities  create single-queue events, create cross-queue events
  Prefer user sync for interop                    Yes
  Profiling timer resolution                      52ns
  Execution capabilities
    Run OpenCL kernels                            Yes
    Run native kernels                            No
    Non-uniform work-groups                      Yes
    Work-group collective functions              No
    Sub-group independent forward progress        No
    IL version                                    SPIR-V_1.2
    ILs with version                              SPIR-V                                                          0x402000 (1.2.0)
    SPIR versions                                1.2
  printf() buffer size                            4194304 (4MiB)
  Built-in kernels                                (n/a)
  Built-in kernels with version                  (n/a)
  Device Extensions                              cl_khr_byte_addressable_store cl_khr_device_uuid cl_khr_fp16 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_icd cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_intel_command_queue_families cl_intel_subgroups cl_intel_required_subgroup_size cl_intel_subgroups_short cl_khr_spir cl_intel_accelerator cl_intel_driver_diagnostics cl_khr_priority_hints cl_khr_throttle_hints cl_khr_create_command_queue cl_intel_subgroups_char cl_intel_subgroups_long cl_khr_il_program cl_intel_mem_force_host_memory cl_khr_subgroup_extended_types cl_khr_subgroup_non_uniform_vote cl_khr_subgroup_ballot cl_khr_subgroup_non_uniform_arithmetic cl_khr_subgroup_shuffle cl_khr_subgroup_shuffle_relative cl_khr_subgroup_clustered_reduce cl_intel_device_attribute_query cl_khr_suggested_local_work_size cl_intel_split_work_group_barrier cl_ext_float_atomics cl_khr_external_memory cl_intel_planar_yuv cl_intel_packed_yuv cl_khr_image2d_from_buffer cl_khr_depth_images cl_khr_3d_image_writes cl_intel_media_block_io cl_intel_subgroup_local_block_io cl_khr_gl_sharing cl_khr_gl_depth_images cl_khr_gl_event cl_khr_gl_msaa_sharing cl_intel_va_api_media_sharing cl_intel_sharing_format_query cl_khr_pci_bus_info
  Device Extensions with Version                  cl_khr_byte_addressable_store                                    0x400000 (1.0.0)
                                                  cl_khr_device_uuid                                              0x400000 (1.0.0)
                                                  cl_khr_fp16                                                      0x400000 (1.0.0)
                                                  cl_khr_global_int32_base_atomics                                0x400000 (1.0.0)
                                                  cl_khr_global_int32_extended_atomics                            0x400000 (1.0.0)
                                                  cl_khr_icd                                                      0x400000 (1.0.0)
                                                  cl_khr_local_int32_base_atomics                                  0x400000 (1.0.0)
                                                  cl_khr_local_int32_extended_atomics                              0x400000 (1.0.0)
                                                  cl_intel_command_queue_families                                  0x400000 (1.0.0)
                                                  cl_intel_subgroups                                              0x400000 (1.0.0)
                                                  cl_intel_required_subgroup_size                                  0x400000 (1.0.0)
                                                  cl_intel_subgroups_short                                        0x400000 (1.0.0)
                                                  cl_khr_spir                                                      0x400000 (1.0.0)
                                                  cl_intel_accelerator                                            0x400000 (1.0.0)
                                                  cl_intel_driver_diagnostics                                      0x400000 (1.0.0)
                                                  cl_khr_priority_hints                                            0x400000 (1.0.0)
                                                  cl_khr_throttle_hints                                            0x400000 (1.0.0)
                                                  cl_khr_create_command_queue                                      0x400000 (1.0.0)
                                                  cl_intel_subgroups_char                                          0x400000 (1.0.0)
                                                  cl_intel_subgroups_long                                          0x400000 (1.0.0)
                                                  cl_khr_il_program                                                0x400000 (1.0.0)
                                                  cl_intel_mem_force_host_memory                                  0x400000 (1.0.0)
                                                  cl_khr_subgroup_extended_types                                  0x400000 (1.0.0)
                                                  cl_khr_subgroup_non_uniform_vote                                0x400000 (1.0.0)
                                                  cl_khr_subgroup_ballot                                          0x400000 (1.0.0)
                                                  cl_khr_subgroup_non_uniform_arithmetic                          0x400000 (1.0.0)
                                                  cl_khr_subgroup_shuffle                                          0x400000 (1.0.0)
                                                  cl_khr_subgroup_shuffle_relative                                0x400000 (1.0.0)
                                                  cl_khr_subgroup_clustered_reduce                                0x400000 (1.0.0)
                                                  cl_intel_device_attribute_query                                  0x400000 (1.0.0)
                                                  cl_khr_suggested_local_work_size                                0x400000 (1.0.0)
                                                  cl_intel_split_work_group_barrier                                0x400000 (1.0.0)
                                                  cl_ext_float_atomics                                            0x400000 (1.0.0)
                                                  cl_khr_external_memory                                            0x9001 (0.9.1)
                                                  cl_intel_planar_yuv                                              0x400000 (1.0.0)
                                                  cl_intel_packed_yuv                                              0x400000 (1.0.0)
                                                  cl_khr_image2d_from_buffer                                      0x400000 (1.0.0)
                                                  cl_khr_depth_images                                              0x400000 (1.0.0)
                                                  cl_khr_3d_image_writes                                          0x400000 (1.0.0)
                                                  cl_intel_media_block_io                                          0x400000 (1.0.0)
                                                  cl_intel_subgroup_local_block_io                                0x400000 (1.0.0)
                                                  cl_khr_gl_sharing                                                0x400000 (1.0.0)
                                                  cl_khr_gl_depth_images                                          0x400000 (1.0.0)
                                                  cl_khr_gl_event                                                  0x400000 (1.0.0)
                                                  cl_khr_gl_msaa_sharing                                          0x400000 (1.0.0)
                                                  cl_intel_va_api_media_sharing                                    0x400000 (1.0.0)
                                                  cl_intel_sharing_format_query                                    0x400000 (1.0.0)
                                                  cl_khr_pci_bus_info                                              0x400000 (1.0.0)

  Platform Name                                  Intel(R) OpenCL
Number of devices                                1
  Device Name                                    Intel(R) Celeron(R) N5105 @ 2.00GHz
  Device Vendor                                  Intel(R) Corporation
  Device Vendor ID                                0x8086
  Device Version                                  OpenCL 1.2 (Build 475)
  Driver Version                                  1.2.0.475
  Device OpenCL C Version                        OpenCL C 1.2
  Device Type                                    CPU
  Device Profile                                  FULL_PROFILE
  Device Available                                Yes
  Compiler Available                              Yes
  Linker Available                                Yes
  Max compute units                              4
  Max clock frequency                            2000MHz
  Device Partition                                (core)
    Max number of sub-devices                    4
    Supported partition types                    by counts, equally, by names (Intel)
    Supported affinity domains                    (n/a)
  Max work item dimensions                        3
  Max work item sizes                            8192x8192x8192
  Max work group size                            8192
  Preferred work group size multiple (kernel)    128
  Preferred / native vector sizes
    char                                                1 / 16
    short                                                1 / 8
    int                                                  1 / 4
    long                                                1 / 2
    half                                                0 / 0        (n/a)
    float                                                1 / 4
    double                                              1 / 2        (cl_khr_fp64)
  Half-precision Floating-point support          (n/a)
  Single-precision Floating-point support        (core)
    Denormals                                    Yes
    Infinity and NANs                            Yes
    Round to nearest                              Yes
    Round to zero                                No
    Round to infinity                            No
    IEEE754-2008 fused multiply-add              No
    Support is emulated in software              No
    Correctly-rounded divide and sqrt operations  No
  Double-precision Floating-point support        (cl_khr_fp64)
    Denormals                                    Yes
    Infinity and NANs                            Yes
    Round to nearest                              Yes
    Round to zero                                Yes
    Round to infinity                            Yes
    IEEE754-2008 fused multiply-add              Yes
    Support is emulated in software              No
  Address bits                                    64, Little-Endian
  Global memory size                              12512882688 (11.65GiB)
  Error Correction support                        No
  Max memory allocation                          3128220672 (2.913GiB)
  Unified memory for Host and Device              Yes
  Minimum alignment for any data type            128 bytes
  Alignment of base address                      1024 bits (128 bytes)
  Global Memory cache type                        Read/Write
  Global Memory cache size                        524288 (512KiB)
  Global Memory cache line size                  64 bytes
  Image support                                  Yes
    Max number of samplers per kernel            480
    Max size for 1D images from buffer            195513792 pixels
    Max 1D or 2D image array size                2048 images
    Max 2D image size                            16384x16384 pixels
    Max 3D image size                            2048x2048x2048 pixels
    Max number of read image args                480
    Max number of write image args                480
  Local memory type                              Global
  Local memory size                              32768 (32KiB)
  Max number of constant args                    480
  Max constant buffer size                        131072 (128KiB)
  Max size of kernel argument                    3840 (3.75KiB)
  Queue properties
    Out-of-order execution                        Yes
    Profiling                                    Yes
    Local thread execution (Intel)                Yes
  Prefer user sync for interop                    No
  Profiling timer resolution                      1ns
  Execution capabilities
    Run OpenCL kernels                            Yes
    Run native kernels                            Yes
    SPIR versions                                1.2
  printf() buffer size                            1048576 (1024KiB)
  Built-in kernels                                (n/a)
  Device Extensions                              cl_khr_icd cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cl_khr_depth_images cl_khr_3d_image_writes cl_intel_exec_by_local_thread cl_khr_spir cl_khr_fp64


NULL platform behavior
  clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...)  Intel(R) OpenCL Graphics
  clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...)  Success [INTEL]
  clCreateContext(NULL, ...) [default]            Success [INTEL]
  clCreateContext(NULL, ...) [other]              Success [INTEL]
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_DEFAULT)  Success (1)
    Platform Name                                Intel(R) OpenCL Graphics
    Device Name                                  Intel(R) UHD Graphics
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU)  Success (1)
    Platform Name                                Intel(R) OpenCL Graphics
    Device Name                                  Intel(R) UHD Graphics
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL)  Success (1)
    Platform Name                                Intel(R) OpenCL Graphics
    Device Name                                  Intel(R) UHD Graphics

ICD loader properties
  ICD loader Name                                OpenCL ICD Loader
  ICD loader Vendor                              OCL Icd free software
  ICD loader Version                              2.3.2
  ICD loader Profile                              OpenCL 3.0



RE: Jellyfin Docker Container on intel GPU - openCL devices not found - Timo Verbrugghe - 2024-03-25

Finally, resolved (or at least, I know where the issue lies).
Apparently there is an issue with intel-compute-runtime (which provides opencl libraries for intel GPU) on the latest 6.8 linux kernel: NEO driver not detect GPU when using kernel 6.8.x. · Issue #710 · intel/compute-runtime (github.com)

I was running that kernel and that’s why the GPU did not show up under clinfo and opencl didn’t work in the jellyfin container.

Temporarily downgrading to the 6.7 kernel fixed the issue.


RE: Jellyfin Docker Container on intel GPU - openCL devices not found - sergiuser1 - 2024-04-10

You can use kernels over 6.7.5 if you use the follow Environment variables:


export NEOReadDebugKeys=1
export OverrideGpuAddressSpace=48

https://github.com/intel/compute-runtime/releases/tag/24.09.28717.12