Unable to get 12700 iGPU / QSV to activate in any docker container


Go to solution Solved by LumpyCustard,

Recommended Posts

CPU: i7 12700 (non K)

Mobo: Gigabyte Z690 Gaming X DDR4

GPU: Nvidia 2080 Super

Unraid: 6.11.5

Bios: Latest, set to iGPU as main/boot GPU. PiKVM connected to motherboard HDMI port.

 

I've got NVENC working in Plex, TDARR, Unmanic, and Handbrake but I can't seem to get my iGPU to function in any docker container.

 

I've installed Intel GPU TOP.

 

modprobe i915 returns nothing, so no errors there.

 

intel_gpu_top shows the iGPU is detected. Navigating to /dev/dri shows card0 and card1.

 

image.png.f0d9d0f27d2f07707dd66145959866cf.png

 

I have tried starting containers with extra parameter "--device=/dev/dri", and i have also tried adding a device to the container (though this seems outdated and no longer necessary?)

 

image.png.be5fd85c6ab97118284f6018e7a7f67c.png

image.png.ed72edeb7598b6ff1468388e90926887.png

 

Every single container, Plex, TDARR, Unmanic, and Handbrake fail to utilise the iGPU. Plex ignores it and falls back to CPU transcode. TDARR and Unmanic fly through transcodes at 30,000FPS and fail -- intel_gpu_top shows 0% utilisation. Handbrake fails to initialise QSV.

 

image.png.cc416bd540bf52c9df6cfc89d44d521a.png

 

What am I doing wrong here? Is my PiKVM causing issues? Are you meant to boot headlessly in order for iGPU to work properly in Unraid?

 

I have not seen anyone make reference to "card1" when reading through other threads across reddit and unraid, mostly every screenshot and tutorial i've seen only shows card0.

 

Any help would be appreciated.

 

Thanks.

Edited by LumpyCustard
  • Like 1
Link to comment
  • 4 weeks later...
  • Solution

SOLUTION, found on arch linux forums.

 

You will first need to open terminal and run intel_gpu_top to confirm what your iGPU's identifier is (card0 or card1). In the below screenshot my iGPU is card1/renderD129, which means my Nvidia GPU (by process of elimination) is card0/renderD128.

 

image.png.b6af44a5b3dc6d37eecb8761e27f35db.png

 

Next edit your docker container and enable advanced view. Under "Extra Parameters" enter the following command.

In my case i am directing card1 to card0 and renderD129 to renderD128 in order to stop docker from targeting my Nvidia GPU when trying to run QSV operations.

--device=/dev/dri/card1:/dev/dri/card0 --device=/dev/dri/renderD129:/dev/dri/renderD128

image.thumb.png.095b66700b485c2b196abcbaa13b0177.png

 

Once you've saved, run a test and you should see activity on your iGPU.

 

image.thumb.png.925418a3a962282d330b33cd5471a0e3.png

Edited by LumpyCustard
  • Like 1
  • Upvote 1
Link to comment
  • 3 weeks later...

Works like a charm! i changed your command a little bit because it wasnt a 100% fix. but running 3 gpu's and now 1 igpu thanks to you!

--device=/dev/dri/card3:/dev/dri/card0 --device=/dev/dri/renderD131:/dev/dri/renderD128

 

worked for me.

 

Cheers!

  • Like 1
Link to comment
  • 11 months later...

Hello! I a  having the same issue but I am not able to fix it. Currently I only have the iGPU on my system 

but it is impossible to make it work with unmanic.

 

The CPU consumption goes up to 100% but the GPU does nothing.

It is transcoding with the QSV plugin but it does not make the iGPU work.

 

My extra paremeters are set as --device=/dev/dri

 

Any idea how I can solve it?

 

Captura-de-pantalla-2024-03-24-181629.pnCaptura-de-pantalla-2024-03-24-181717.pn

 

EDIT: Tdarr works fine, This issue is only on unmanic

Edited by XETOH
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.