immich_machine_learning+openvino is using my intel cpu's igpu instead of my arc a770 dgpu

Fresh install via docker on ubuntu 24.04. using intel_gpu_top shows my 12th gen i5 igpu is being utilized at 100% while my 16gb A770 card is sitting idle. Is there some way to force the device selection? I was not able to find anyone else having this issue...
33 Replies
Immich
Immich•5mo ago
:wave: Hey @Josh at WLTechBlog, Thanks for reaching out to us. Please carefully read this message and follow the recommended actions. This will help us be more effective in our support effort and leave more time for building Immich :immich:. References - Container Logs: docker compose logs docs - Container Status: docker ps -a docs - Reverse Proxy: https://immich.app/docs/administration/reverse-proxy - Code Formatting https://support.discord.com/hc/en-us/articles/210298617-Markdown-Text-101-Chat-Formatting-Bold-Italic-Underline#h_01GY0DAKGXDEHE263BCAYEGFJA Checklist I have... 1. :blue_square: verified I'm on the latest release(note that mobile app releases may take some time). 2. :blue_square: read applicable release notes. 3. :blue_square: reviewed the FAQs for known issues. 4. :blue_square: reviewed Github for known issues. 5. :blue_square: tried accessing Immich via local ip (without a custom reverse proxy). 6. :blue_square: uploaded the relevant information (see below). 7. :blue_square: tried an incognito window, disabled extensions, cleared mobile app cache, logged out and back in, different browsers, etc. as applicable (an item can be marked as "complete" by reacting with the appropriate number) Information In order to be able to effectively help you, we need you to provide clear information to show what the problem is. The exact details needed vary per case, but here is a list of things to consider: - Your docker-compose.yml and .env files. - Logs from all the containers and their status (see above). - All the troubleshooting steps you've tried so far. - Any recent changes you've made to Immich or your system. - Details about your system (both software/OS and hardware). - Details about your storage (filesystems, type of disks, output of commands like fdisk -l and df -h). - The version of the Immich server, mobile app, and other relevant pieces. - Any other information that you think might be relevant. Please paste files and logs with proper code formatting, and especially avoid blurry screenshots. Without the right information we can't work out what the problem is. Help us help you ;) If this ticket can be closed you can use the /close command, and re-open it later if needed.
Mraedis
Mraedis•5mo ago
compose file, env file etc please 🙂 This is all managed through those
Josh at WLTechBlog
Josh at WLTechBlogOP•5mo ago
lspci:
00:00.0 Host bridge: Intel Corporation Device a705 (rev 01)
00:01.0 PCI bridge: Intel Corporation Device a70d (rev 01)
00:02.0 VGA compatible controller: Intel Corporation Raptor Lake-S UHD Graphics (rev 04)
00:14.0 USB controller: Intel Corporation Raptor Lake USB 3.2 Gen 2x2 (20 Gb/s) XHCI Host Controller (rev 11)
00:14.2 RAM memory: Intel Corporation Raptor Lake-S PCH Shared SRAM (rev 11)
00:15.0 Serial bus controller: Intel Corporation Raptor Lake Serial IO I2C Host Controller #0 (rev 11)
00:16.0 Communication controller: Intel Corporation Raptor Lake CSME HECI #1 (rev 11)
00:17.0 SATA controller: Intel Corporation Raptor Lake SATA AHCI Controller (rev 11)
00:1c.0 PCI bridge: Intel Corporation Device 7a3a (rev 11)
00:1c.4 PCI bridge: Intel Corporation Device 7a3c (rev 11)
00:1f.0 ISA bridge: Intel Corporation Raptor Lake LPC/eSPI Controller (rev 11)
00:1f.3 Audio device: Intel Corporation Raptor Lake High Definition Audio Controller (rev 11)
00:1f.4 SMBus: Intel Corporation Raptor Lake-S PCH SMBus Controller (rev 11)
00:1f.5 Serial bus controller: Intel Corporation Raptor Lake SPI (flash) Controller (rev 11)
01:00.0 PCI bridge: Intel Corporation Device 4fa0 (rev 01)
02:01.0 PCI bridge: Intel Corporation Device 4fa4
02:04.0 PCI bridge: Intel Corporation Device 4fa4
03:00.0 VGA compatible controller: Intel Corporation DG2 [Arc A770] (rev 08)
04:00.0 Audio device: Intel Corporation DG2 Audio Controller
05:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller (rev 05)
06:00.0 Non-Volatile memory controller: INNOGRIT Corporation NVMe SSD Controller IG5220 (DRAM-less) (rev 01)
00:00.0 Host bridge: Intel Corporation Device a705 (rev 01)
00:01.0 PCI bridge: Intel Corporation Device a70d (rev 01)
00:02.0 VGA compatible controller: Intel Corporation Raptor Lake-S UHD Graphics (rev 04)
00:14.0 USB controller: Intel Corporation Raptor Lake USB 3.2 Gen 2x2 (20 Gb/s) XHCI Host Controller (rev 11)
00:14.2 RAM memory: Intel Corporation Raptor Lake-S PCH Shared SRAM (rev 11)
00:15.0 Serial bus controller: Intel Corporation Raptor Lake Serial IO I2C Host Controller #0 (rev 11)
00:16.0 Communication controller: Intel Corporation Raptor Lake CSME HECI #1 (rev 11)
00:17.0 SATA controller: Intel Corporation Raptor Lake SATA AHCI Controller (rev 11)
00:1c.0 PCI bridge: Intel Corporation Device 7a3a (rev 11)
00:1c.4 PCI bridge: Intel Corporation Device 7a3c (rev 11)
00:1f.0 ISA bridge: Intel Corporation Raptor Lake LPC/eSPI Controller (rev 11)
00:1f.3 Audio device: Intel Corporation Raptor Lake High Definition Audio Controller (rev 11)
00:1f.4 SMBus: Intel Corporation Raptor Lake-S PCH SMBus Controller (rev 11)
00:1f.5 Serial bus controller: Intel Corporation Raptor Lake SPI (flash) Controller (rev 11)
01:00.0 PCI bridge: Intel Corporation Device 4fa0 (rev 01)
02:01.0 PCI bridge: Intel Corporation Device 4fa4
02:04.0 PCI bridge: Intel Corporation Device 4fa4
03:00.0 VGA compatible controller: Intel Corporation DG2 [Arc A770] (rev 08)
04:00.0 Audio device: Intel Corporation DG2 Audio Controller
05:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller (rev 05)
06:00.0 Non-Volatile memory controller: INNOGRIT Corporation NVMe SSD Controller IG5220 (DRAM-less) (rev 01)
Mraedis
Mraedis•5mo ago
You have drivers for this card installed, yes?
Josh at WLTechBlog
Josh at WLTechBlogOP•5mo ago
yes I use it with locally hosted LLMs and generators
Mraedis
Mraedis•5mo ago
What does docker exec -it immich_server /bin/bash And then ls -la /dev/dri tell you?
Josh at WLTechBlog
Josh at WLTechBlogOP•5mo ago
root@86f4ea3c5677:/usr/src/app# ls -la /dev/dri
total 0
drwxr-xr-x 2 root root 120 Dec 26 14:43 .
drwxr-xr-x 6 root root 360 Dec 26 14:43 ..
crw-rw---- 1 root video 226, 1 Dec 26 14:43 card1
crw-rw---- 1 root video 226, 2 Dec 26 14:43 card2
crw-rw---- 1 root 109 226, 128 Dec 26 14:43 renderD128
crw-rw---- 1 root 109 226, 129 Dec 26 14:43 renderD129
root@86f4ea3c5677:/usr/src/app# ls -la /dev/dri
total 0
drwxr-xr-x 2 root root 120 Dec 26 14:43 .
drwxr-xr-x 6 root root 360 Dec 26 14:43 ..
crw-rw---- 1 root video 226, 1 Dec 26 14:43 card1
crw-rw---- 1 root video 226, 2 Dec 26 14:43 card2
crw-rw---- 1 root 109 226, 128 Dec 26 14:43 renderD128
crw-rw---- 1 root 109 226, 129 Dec 26 14:43 renderD129
Mraedis
Mraedis•5mo ago
mmm two cards does your server have an iGPU?
Josh at WLTechBlog
Josh at WLTechBlogOP•5mo ago
yes I guess the title didn't carry through to the discussion
immich_machine_learning+openvino is using my intel cpu's igpu instead of my arc a770 dgpu
its just a regular i5
model name : 13th Gen Intel(R) Core(TM) i5-13400
Mraedis
Mraedis•5mo ago
ah it did, I just didn't see it 😛
Josh at WLTechBlog
Josh at WLTechBlogOP•5mo ago
no worries I appreciate your help
Mraedis
Mraedis•5mo ago
I think the quickest solution would be mounting only the Arc one
Josh at WLTechBlog
Josh at WLTechBlogOP•5mo ago
would it be via editing
devices:
- /dev/dri:/dev/dri
devices:
- /dev/dri:/dev/dri
to something like
devices:
- /dev/dri/card2:/dev/dri/card2
devices:
- /dev/dri/card2:/dev/dri/card2
Mraedis
Mraedis•5mo ago
Yes exactly, either in the hwaccel/service files or directly in the compose I guess the extra files are easier to manage 😛
Josh at WLTechBlog
Josh at WLTechBlogOP•5mo ago
I figured I'd follow the install guide to reduce any possible issues 🙂
Mraedis
Mraedis•5mo ago
That's perfect yes, usually it's the opposite 😅 Right @Josh at WLTechBlog you'll also need to add the renderD129 It's obvious to me but I forgot not everyone is used to this card1 + renderD128 card2 + renderD129
Josh at WLTechBlog
Josh at WLTechBlogOP•5mo ago
yeah I was just coming back with "no worky" 🙂 let me fix that ok now I see what I want to see in intel_gpu_top 🙂
Mraedis
Mraedis•5mo ago
Excellent
Josh at WLTechBlog
Josh at WLTechBlogOP•5mo ago
No description
Mraedis
Mraedis•5mo ago
don't forget the ML container
Josh at WLTechBlog
Josh at WLTechBlogOP•5mo ago
that's the ml container
Mraedis
Mraedis•5mo ago
Your machine learning jobs will go 🚀 oh 😄
Josh at WLTechBlog
Josh at WLTechBlogOP•5mo ago
i need to do the transcode still
Mraedis
Mraedis•5mo ago
I thought transcodes
Josh at WLTechBlog
Josh at WLTechBlogOP•5mo ago
log indicates transcodes are not being accelerated
immich_server | [Nest] 7 - 12/26/2024, 3:25:27 PM LOG [Microservices:MediaService] Transcoding video c7ff9cd5-d80d-49bc-9ece-575965374bc1 without hardware acceleration
Mraedis
Mraedis•5mo ago
And you've just changed:
quicksync:
devices:
- /dev/dri:/dev/dri
quicksync:
devices:
- /dev/dri:/dev/dri
to
quicksync:
devices:
- /dev/dri/card2:/dev/dri/card2
- /dev/dri/renderD129:/dev/dri/renderD129
quicksync:
devices:
- /dev/dri/card2:/dev/dri/card2
- /dev/dri/renderD129:/dev/dri/renderD129
I take it?
Josh at WLTechBlog
Josh at WLTechBlogOP•5mo ago
services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
extends:
file: hwaccel.transcoding.yml
service: quicksync # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
extends:
file: hwaccel.transcoding.yml
service: quicksync # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
quicksync:
devices:
- /dev/dri/card2:/dev/dri/card2
- /dev/dri/renderD129:/dev/dri/renderD129
quicksync:
devices:
- /dev/dri/card2:/dev/dri/card2
- /dev/dri/renderD129:/dev/dri/renderD129
root 45998 429 0.2 1765768 375220 ? SNl 15:27 1:12 /usr/bin/ffmpeg -i upload/upload/4c20c761-7ac1-498e-9664-e5556d3d95e2/39/a9/39a9df20-a93f-4f27-992a-11138da8250a.mp4 -y -c:v h264 -c:a copy -movflags faststart -fps_mode passthrough -map 0:0 -map 0:1 -v verbose -vf scale=-2:720 -preset ultrafast -crf 23 upload/encoded-video/4c20c761-7ac1-498e-9664-e5556d3d95e2/ed/69/ed69c0af-45d4-419e-afd3-94270dc3a767.mp4
docker exec -it immich_server bash
root@4444facf6174:/usr/src/app# ls -l /dev/dri
total 0
crw-rw---- 1 root video 226, 2 Dec 26 15:21 card2
crw-rw---- 1 root 109 226, 129 Dec 26 15:21 renderD129
docker exec -it immich_server bash
root@4444facf6174:/usr/src/app# ls -l /dev/dri
total 0
crw-rw---- 1 root video 226, 2 Dec 26 15:21 card2
crw-rw---- 1 root 109 226, 129 Dec 26 15:21 renderD129
Mraedis
Mraedis•5mo ago
I'm not super duper well versed in this but maybe try adding the render/video groups to the container getent group render getent group video And then
group_add:
- "122"
- "123"
devices:
- /dev/..
group_add:
- "122"
- "123"
devices:
- /dev/..
replace 122 and 123 with whatever the numbers are (Shouldn't make a difference but you never know)
Josh at WLTechBlog
Josh at WLTechBlogOP•5mo ago
i'm browsig the source a bit to see if I can determine how the ffmpeg cli is being built aha... it isn't enabled by default, you have to set it in the admin ui!
immich_server | [Nest] 7 - 12/26/2024, 3:35:34 PM LOG [Microservices:MediaService] Transcoding video 68c07904-c9f5-4500-bb76-991ef18dfe5a with QSV-accelerated encoding and decoding
very very nice now
Mraedis
Mraedis•5mo ago
ah yeah of course 🙃 If you have any further questions let us know, otherwise you can just /close the thread
Josh at WLTechBlog
Josh at WLTechBlogOP•5mo ago
thank you so much for your assistance
Immich
Immich•5mo ago
This thread has been closed. To re-open, use the button below.

Did you find this page helpful?