Immich - No GPU device found in OpenVINO. Falling back to CPU #1925

Closed
opened 2026-02-05 02:50:26 +03:00 by OVERLORD · 6 comments
Owner

Originally created by @gabe-canva on GitHub (Nov 4, 2025).

Originally assigned to: @vhsdream on GitHub.

Have you read and understood the above guidelines?

yes

📜 What is the name of the script you are using?

Immich

📂 What was the exact command used to execute the script?

bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/immich.sh)"

⚙️ What settings are you using?

  • Default Settings
  • Advanced Settings

🖥️ Which Linux distribution are you using?

Debian 13

📈 Which Proxmox version are you on?

pve-manager/9.0.10/deb1ca707ec72a89 (running kernel: 6.14.11-3-pve)

📝 Provide a clear and concise description of the issue.

Intel GPU(Intel Tigerlake (Gen12)) not being recognised by Immich.
No GPU device found in OpenVINO. Falling back to CPU

However, when running this inside the Immich LXC I have a lot of GPU activity and it's working as expected
ffmpeg -init_hw_device vaapi=hw:/dev/dri/renderD128 -filter_hw_device hw -f lavfi -i testsrc=duration=60:size=1920x1080:rate=30 -vf 'format=nv12,hwupload' -c:v h264_vaapi -f null -

🔄 Steps to reproduce the issue.

  1. Install Immich from the community script
  2. Install VAAPI when asked
  3. Run any ML job
  4. Check /ml.log .
  5. Observe it fails
    root@immich-new:~# tail -f /var/log/immich/ml.log [11/03/25 23:24:11] INFO Application shutdown complete. [11/03/25 23:24:11] INFO Finished server process [81478] [11/03/25 23:24:11] ERROR Worker (pid:81478) was sent SIGINT! [11/03/25 23:24:11] INFO Booting worker with pid: 81734 [11/03/25 23:24:13] INFO Started server process [81734] [11/03/25 23:24:13] INFO Waiting for application startup. [11/03/25 23:24:13] INFO Created in-memory cache with unloading after 300s of inactivity. [11/03/25 23:24:13] INFO Initialized request thread pool with 8 threads. [11/03/25 23:24:13] INFO Application startup complete. [11/03/25 23:26:43] INFO Loading textual model 'ViT-B-32__openai' to memory [11/03/25 23:26:43] WARNING No GPU device found in OpenVINO. Falling back to CPU. [11/03/25 23:26:43] INFO Setting execution providers to ['CPUExecutionProvider'], in descending order of preference

Execute ffmpeg -init_hw_device vaapi=hw:/dev/dri/renderD128 -filter_hw_device hw -f lavfi -i testsrc=duration=60:size=1920x1080:rate=30 -vf 'format=nv12,hwupload' -c:v h264_vaapi -f null - to check HW and monitor intel_gpu_top on PVE host. Observe you get a lot of expected activity

Paste the full error output (if available).

root@immich-new:~# tail -f /var/log/immich/ml.log
[11/03/25 23:24:11] INFO Application shutdown complete.
[11/03/25 23:24:11] INFO Finished server process [81478]
[11/03/25 23:24:11] ERROR Worker (pid:81478) was sent SIGINT!
[11/03/25 23:24:11] INFO Booting worker with pid: 81734
[11/03/25 23:24:13] INFO Started server process [81734]
[11/03/25 23:24:13] INFO Waiting for application startup.
[11/03/25 23:24:13] INFO Created in-memory cache with unloading after 300s
of inactivity.
[11/03/25 23:24:13] INFO Initialized request thread pool with 8 threads.
[11/03/25 23:24:13] INFO Application startup complete.
[11/03/25 23:26:43] INFO Loading textual model 'ViT-B-32__openai' to memory
[11/03/25 23:26:43] WARNING No GPU device found in OpenVINO. Falling back to
CPU.
[11/03/25 23:26:43] INFO Setting execution providers to
['CPUExecutionProvider'], in descending order of
preference

🖼️ Additional context (optional).

No response

Originally created by @gabe-canva on GitHub (Nov 4, 2025). Originally assigned to: @vhsdream on GitHub. ### ✅ Have you read and understood the above guidelines? yes ### 📜 What is the name of the script you are using? Immich ### 📂 What was the exact command used to execute the script? bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/immich.sh)" ### ⚙️ What settings are you using? - [x] Default Settings - [x] Advanced Settings ### 🖥️ Which Linux distribution are you using? Debian 13 ### 📈 Which Proxmox version are you on? pve-manager/9.0.10/deb1ca707ec72a89 (running kernel: 6.14.11-3-pve) ### 📝 Provide a clear and concise description of the issue. Intel GPU(Intel Tigerlake (Gen12)) not being recognised by Immich. No GPU device found in OpenVINO. Falling back to CPU However, when running this inside the Immich LXC I have a lot of GPU activity and it's working as expected `ffmpeg -init_hw_device vaapi=hw:/dev/dri/renderD128 -filter_hw_device hw -f lavfi -i testsrc=duration=60:size=1920x1080:rate=30 -vf 'format=nv12,hwupload' -c:v h264_vaapi -f null -` ### 🔄 Steps to reproduce the issue. 1. Install Immich from the community script 2. Install VAAPI when asked 3. Run any ML job 4. Check /ml.log . 5. Observe it fails `root@immich-new:~# tail -f /var/log/immich/ml.log [11/03/25 23:24:11] INFO Application shutdown complete. [11/03/25 23:24:11] INFO Finished server process [81478] [11/03/25 23:24:11] ERROR Worker (pid:81478) was sent SIGINT! [11/03/25 23:24:11] INFO Booting worker with pid: 81734 [11/03/25 23:24:13] INFO Started server process [81734] [11/03/25 23:24:13] INFO Waiting for application startup. [11/03/25 23:24:13] INFO Created in-memory cache with unloading after 300s of inactivity. [11/03/25 23:24:13] INFO Initialized request thread pool with 8 threads. [11/03/25 23:24:13] INFO Application startup complete. [11/03/25 23:26:43] INFO Loading textual model 'ViT-B-32__openai' to memory [11/03/25 23:26:43] WARNING No GPU device found in OpenVINO. Falling back to CPU. [11/03/25 23:26:43] INFO Setting execution providers to ['CPUExecutionProvider'], in descending order of preference ` Execute `ffmpeg -init_hw_device vaapi=hw:/dev/dri/renderD128 -filter_hw_device hw -f lavfi -i testsrc=duration=60:size=1920x1080:rate=30 -vf 'format=nv12,hwupload' -c:v h264_vaapi -f null -` to check HW and monitor intel_gpu_top on PVE host. Observe you get a lot of expected activity ### ❌ Paste the full error output (if available). root@immich-new:~# tail -f /var/log/immich/ml.log [11/03/25 23:24:11] INFO Application shutdown complete. [11/03/25 23:24:11] INFO Finished server process [81478] [11/03/25 23:24:11] ERROR Worker (pid:81478) was sent SIGINT! [11/03/25 23:24:11] INFO Booting worker with pid: 81734 [11/03/25 23:24:13] INFO Started server process [81734] [11/03/25 23:24:13] INFO Waiting for application startup. [11/03/25 23:24:13] INFO Created in-memory cache with unloading after 300s of inactivity. [11/03/25 23:24:13] INFO Initialized request thread pool with 8 threads. [11/03/25 23:24:13] INFO Application startup complete. [11/03/25 23:26:43] INFO Loading textual model 'ViT-B-32__openai' to memory [11/03/25 23:26:43] WARNING No GPU device found in OpenVINO. Falling back to CPU. [11/03/25 23:26:43] INFO Setting execution providers to ['CPUExecutionProvider'], in descending order of preference ### 🖼️ Additional context (optional). _No response_
OVERLORD added the not a script issuebug labels 2026-02-05 02:50:26 +03:00
Author
Owner

@vhsdream commented on GitHub (Nov 4, 2025):

Thank you for providing good info. Can you check the 'Resources' tab in the Proxmox UI for your Immich LXC? Specifically the GID mappings for dev0 and dev1.

The GID mappings there need to match with the GIDs from the below command:

getent group | grep -E "video|render"

The immich user needs to be in both the video and render groups, and the devices need to be mounted with the correct GIDs. The output of ls -l /dev/dri should be:

total 0
drwxr-xr-x 2 root root         80 Nov  2 09:58 .
drwxr-xr-x 7 root root        600 Nov  2 09:58 ..
crw-rw---- 1 root video  226,   0 Nov  2 09:58 card0
crw-rw---- 1 root render 226, 128 Nov  2 09:58 renderD128
@vhsdream commented on GitHub (Nov 4, 2025): Thank you for providing good info. Can you check the 'Resources' tab in the Proxmox UI for your Immich LXC? Specifically the GID mappings for dev0 and dev1. The GID mappings there need to match with the GIDs from the below command: ``` getent group | grep -E "video|render" ``` The `immich` user needs to be in both the `video` and `render` groups, and the devices need to be mounted with the correct GIDs. The output of `ls -l /dev/dri` should be: ``` total 0 drwxr-xr-x 2 root root 80 Nov 2 09:58 . drwxr-xr-x 7 root root 600 Nov 2 09:58 .. crw-rw---- 1 root video 226, 0 Nov 2 09:58 card0 crw-rw---- 1 root render 226, 128 Nov 2 09:58 renderD128 ```
Author
Owner

@allesklardy commented on GitHub (Nov 4, 2025):

I do have the same problem and I get these outputs

root@immich:/var/log/immich# ls -l /dev/dri
total 0
drwxr-xr-x 2 root root        80 Oct 29 20:49 by-path
crw-rw---- 1 root video 226,   0 Oct 29 20:49 card0
crw-rw---- 1 root   993 226, 128 Oct 29 20:49 renderD128
root@immich:/var/log/immich# getent group | grep -E "video|render"
video:x:44:root,immich
render:x:104:root,immich
@allesklardy commented on GitHub (Nov 4, 2025): I do have the same problem and I get these outputs ``` root@immich:/var/log/immich# ls -l /dev/dri total 0 drwxr-xr-x 2 root root 80 Oct 29 20:49 by-path crw-rw---- 1 root video 226, 0 Oct 29 20:49 card0 crw-rw---- 1 root 993 226, 128 Oct 29 20:49 renderD128 root@immich:/var/log/immich# getent group | grep -E "video|render" video:x:44:root,immich render:x:104:root,immich ```
Author
Owner

@gabe-canva commented on GitHub (Nov 4, 2025):

root@immich:~# getent group | grep -E "video|render"
video:x:44:immich
render:x:992:immich
root@immich:~# ls -l /dev/dri
total 0
crw-rw---- 1 root video    226,   1 Nov  4 07:17 card1
crw-rw---- 1 root postdrop 226, 128 Nov  4 07:17 renderD128
root@immich:~# ```
@gabe-canva commented on GitHub (Nov 4, 2025): ``` root@immich:~# getent group | grep -E "video|render" video:x:44:immich render:x:992:immich root@immich:~# ls -l /dev/dri total 0 crw-rw---- 1 root video 226, 1 Nov 4 07:17 card1 crw-rw---- 1 root postdrop 226, 128 Nov 4 07:17 renderD128 root@immich:~# ```
Author
Owner

@vhsdream commented on GitHub (Nov 4, 2025):

OK, this isn't an issue with the Immich script, but a problem with build.func in that it uses the wrong GID when adding the dev1 mount to the LXC.

You can fix it manually by editing the device in the 'Resources' tab for the Immich LXC in the Proxmox UI:

Image Image

Make sure 'Advanced' is checked, then for GID use the correct number. @allesklardy use 104, and @gabe-canva use 992. Then restart the LXC.

@vhsdream commented on GitHub (Nov 4, 2025): OK, this isn't an issue with the Immich script, but a problem with `build.func` in that it uses the wrong GID when adding the `dev1` mount to the LXC. You can fix it manually by editing the device in the 'Resources' tab for the Immich LXC in the Proxmox UI: <img width="840" height="381" alt="Image" src="https://github.com/user-attachments/assets/76a89d35-829a-4b4a-bd97-669edf2c79ed" /> <img width="475" height="219" alt="Image" src="https://github.com/user-attachments/assets/1fcfe0e9-9d15-4806-aa4c-d0feeeb42ced" /> Make sure 'Advanced' is checked, then for GID use the correct number. @allesklardy use 104, and @gabe-canva use 992. Then restart the LXC.
Author
Owner

@vhsdream commented on GitHub (Nov 5, 2025):

Hey @allesklardy @gabe-canva - any updates on this after I provided the potential solution?

@vhsdream commented on GitHub (Nov 5, 2025): Hey @allesklardy @gabe-canva - any updates on this after I provided the potential solution?
Author
Owner

@gabe-canva commented on GitHub (Nov 14, 2025):

I'm sorry I was off sick and didn't get a chance to check it. That works great now. Thanks :)

@gabe-canva commented on GitHub (Nov 14, 2025): I'm sorry I was off sick and didn't get a chance to check it. That works great now. Thanks :)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/ProxmoxVE#1925