Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

iGPU is not detected on Ubuntu 22.04, Gemini Lake #797

Open
rgov opened this issue Jan 23, 2025 · 5 comments
Open

iGPU is not detected on Ubuntu 22.04, Gemini Lake #797

rgov opened this issue Jan 23, 2025 · 5 comments

Comments

@rgov
Copy link

rgov commented Jan 23, 2025

I'm attempting to run an OpenCL workload on Ubuntu 22.04 on a Intel Celeron J4125 (Gemini Lake) CPU with integrated UHD Graphics 600 GPU.

When I run sycl-ls or clinfo, only the CPU is discovered:

# sycl-ls
[opencl:cpu][opencl:0] Intel(R) OpenCL, Intel(R) Celeron(R) J4125 CPU @ 2.00GHz OpenCL 3.0 (Build 0) [2024.18.7.0.11_160000]

This is possibly a regression introduced since version 23.13.26032.26-627~22.04 of the intel-opencl-icd package.

@rgov rgov changed the title iGPU is not detected iGPU is not detected on Ubuntu 22.04, Gemini Lake Jan 23, 2025
@rgov
Copy link
Author

rgov commented Jan 23, 2025

I can get it to work in a new Ubuntu 22.04 container using the Jammy repo's intel-opencl-icd package:

$ sudo docker run --rm -it --device=/dev/dri ubuntu:22.04 bash
# apt-get update && apt-get install -y clinfo intel-opencl-icd
Setting up libigdgmm12:amd64 (22.1.2+ds1-1) ...
Setting up libmd0:amd64 (1.0.4-1build1) ...
Setting up ocl-icd-libopencl1:amd64 (2.2.14-3) ...
Setting up libbsd0:amd64 (0.11.5-1) ...
Setting up libicu70:amd64 (70.1-2) ...
Setting up libedit2:amd64 (3.1-20210910-1build1) ...
Setting up clinfo (3.0.21.02.21-1) ...
Setting up libxml2:amd64 (2.9.13+dfsg-1ubuntu0.4) ...
Setting up libllvm12:amd64 (1:12.0.1-19ubuntu3) ...
Setting up libllvmspirvlib12:amd64 (12.0.0-3) ...
Setting up libclang-cpp12 (1:12.0.1-19ubuntu3) ...
Setting up libopencl-clang12:amd64 (12.0.0-3) ...
Setting up libigc1:amd64 (1.0.10840-1) ...
Setting up libigdfcl1:amd64 (1.0.10840-1) ...
Setting up intel-opencl-icd (22.14.22890-1) ...

# clinfo
...
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU)  Success (1)
    Platform Name                                 Intel(R) OpenCL HD Graphics
    Device Name                                   Intel(R) UHD Graphics 600 [0x3185]

The container where it doesn't work, intelanalytics/ipex-llm-inference-cpp-xpu, includes a much newer version, 24.39.31294.12:

# apt-cache policy intel-opencl-icd
intel-opencl-icd:
  Installed: 24.39.31294.12
  Candidate: 24.39.31294.12
  Version table:
 *** 24.39.31294.12 100
        100 /var/lib/dpkg/status
     23.17.26241.33-647~22.04 500
        500 https://repositories.intel.com/graphics/ubuntu jammy/arc amd64 Packages
     23.17.26241.21-647~22.04 500
        500 https://repositories.intel.com/graphics/ubuntu jammy/arc amd64 Packages
     23.13.26032.26-627~22.04 500
        500 https://repositories.intel.com/graphics/ubuntu jammy/arc amd64 Packages
     23.05.25593.18-601~22.04 500
        500 https://repositories.intel.com/graphics/ubuntu jammy/arc amd64 Packages
     22.49.25018.23+i554~22.04 500
        500 https://repositories.intel.com/graphics/ubuntu jammy/arc amd64 Packages
     22.49.25018.21+i550~22.04 500
        500 https://repositories.intel.com/graphics/ubuntu jammy/arc amd64 Packages
     22.43.24595.35+i538~22.04 500
        500 https://repositories.intel.com/graphics/ubuntu jammy/arc amd64 Packages
     22.32.23937+i449~u22.04 500
        500 https://repositories.intel.com/graphics/ubuntu jammy/arc amd64 Packages
     22.14.22890-1 500
        500 http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages

@rgov
Copy link
Author

rgov commented Jan 23, 2025

If I roll back to intel-opencl-icd=23.13.26032.26-627~22.04, then I can get clinfo to identify the GPU platform:

# clinfo
  Platform Name                                   Intel(R) OpenCL HD Graphics
Number of devices                                 1
  Device Name                                     Intel(R) UHD Graphics 600
  Device Vendor                                   Intel(R) Corporation
  Device Vendor ID                                0x8086
  Device Version                                  OpenCL 3.0 NEO 
...

# sycl-ls
[opencl:cpu][opencl:0] Intel(R) OpenCL, Intel(R) Celeron(R) J4125 CPU @ 2.00GHz OpenCL 3.0 (Build 0) [2024.18.7.0.11_160000]
[opencl:gpu][opencl:1] Intel(R) OpenCL HD Graphics, Intel(R) UHD Graphics 600 OpenCL 3.0 NEO  [23.13.26032.26]

I observe that /usr/local/lib/libigc.so.1 is installed by intel-igc-core=1.0.17791.9 which shadows the library installed by the libigc1 package, so to test a downgrade I have to force it to load the correct library:

# apt-get install --allow-downgrades -y intel-opencl-icd=23.13.26032.26-627~22.04
# LD_PRELOAD=/lib/x86_64-linux-gnu/libigc.so.1 clinfo

@JablonskiMateusz
Copy link
Contributor

Hi @rgov
How do you install the 24.39.31294.12 package?
Isn't that related to the this?

@JablonskiMateusz
Copy link
Contributor

Also, packages from release 24.39 has known issue described here: #770

@rgov
Copy link
Author

rgov commented Feb 4, 2025

I was just pulling intelanalytics/ipex-llm-inference-cpp-xpu which has the 24.39.31294.12 version installed.

The LEGACY_PLATFORMS.md file indeed suggests that my system is not supported -- but how would a user reasonably find this? Even I, who was motivated enough to spend at least several hours digging around these repositories, fiddling with different package combinations, searching the web, etc., did not come across this file. It is very unlikely anyone else would.

The newer packages should detect an unsupported legacy iGPU and write something to dmesg or wherever so that the incompatibility can be diagnosed.

Also the README should make a reference to this information under the Supported Platforms heading. It's not supported if it's ... not supported.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants