Two GPU and their assigment to /dev/dri/renderD...

reah

Member
Dec 31, 2023
3
1
8
Hello,

I am running a Proxmox host (9.1.7) with two GPUs (AMD iGPU and NVIDIA dGPU (well actually three when counting the BMC's VGA)). I'm using them in different LXC which works flawless. The iGPU I use for Jellyfin transcoding, assignment is done so:
dev0: /dev/dri/card2,gid=44
dev1: /dev/dri/renderD129,gid=106

Now the issue: The DRM device nodes under /dev/dri/ (e.g. card0, card1, renderD128, renderD129) are assigned dynamically at boot, so the mapping between device nodes and physical GPUs changes from boot to boot and I then have to find out which is which, reconfigure the config and start up Jellyfin manually.

So what I need is a robust way to:
  1. Pass a specific GPU into my Jellyfin LXC container,
  2. Ensure the mapping remains stable across reboots,
  3. Have correct permissions (e.g. root:video) inside the container,
What would be the recommended approach to achieve stable, selective GPU passthrough for DRM devices in LXC/Proxmox environments?

Regards,
Reah
 
Set up udev rules on the host to map the devices to persistently named device nodes.
Then pass these consistently named device nodes to the containers.
 
an alternative would be to use '/dev/dri/by-path' which encodes the pciid and that should be more stable? (i hope at least)