Ja, flera mediecontainrar kan dela på en GPU när värddatorns drivrutin och runtime har stöd för samtidig åtkomst och varje container får rätt enhet korrekt.
Containrar äger normalt inte en GPU exklusivt på samma sätt som en virtuell maskin med full passthrough gör. Intel Quick Sync och AMD VA-API exponerar vanligtvis delade renderingsenheter, medan NVIDIA-containrar kan dela på samma drivrutinsstack och GPU, beroende på begränsningar i hårdvara, drivrutin, codec, minne och antal sessioner. Konflikter uppstår när orkestreringen tilldelar enheten exklusivt, behörigheterna skiljer sig åt, containrarna innehåller inkompatibla bibliotek eller samtidiga transkodningar överskrider GPU:ns praktiska kapacitet.
Bekräfta att värddatorn stöder samtidiga GPU-arbetsbelastningar
Installera och verifiera värddatorns drivrutin först och kör sedan en hårdvaruaccelererad transkodning utanför eller inuti en känd fungerande container. Dokumentera GPU-modell, drivrutin, codec för kodning och avkodning som stöds, minne och uppmätt användning.
En diskussion i TrueNAS-communityn rapporterar att flera appar kan dela samma GPU när den exponeras för användning i stället för att tilldelas som en exklusiv programresurs. Skillnaden ligger mellan delad enhetsåtkomst och exklusiv passthrough.
Om en container inte kan använda GPU:n tillförlitligt ska du inte lägga till en till. Åtgärda värddatorns drivrutin, kärnenhet, firmware eller runtime innan du testar samtidig användning.
Exponera rätt enhet för varje container
För Intel och AMD ska du jämföra /dev/dri-kortet och renderingsnoderna som skickas till varje container. För NVIDIA ska du jämföra runtime eller enhetsbegäran, variabler för synliga enheter och drivrutinsfunktioner.
Ett Jellyfin-fall i NixOS beskriver hur samma GPU på värddatorn fungerar olika i olika containrar eftersom operativsystemets och enhetens miljö ändrades. Det visar varför matchande enhetsexponering och bibliotek är viktigare än att kopiera en Compose-rad.
Använd minsta möjliga uppsättning enheter som varje app behöver och undvik privilegierat läge som genväg. Bekräfta att den förväntade renderingsnoden eller NVIDIA-enheten visas inuti varje container efter en ombyggnad.
Matcha behörigheter och användargrupper mellan containrar
Dokumentera den numeriska ägaren och gruppen för renderingsenheten på värddatorn och bekräfta sedan att varje containerprocess har motsvarande kompletterande grupp eller behörighet. Användarnamn som är specifika för avbildningen kan mappas till olika numeriska ID:n.
En container som listar GPU:n men inte kan öppna den kan falla tillbaka till mjukvarutranskodning eller rapportera nekad åtkomst. Felet kan se ut som en enhetskonflikt när den andra mediecontainern fortsätter att fungera.
Testa varje container separat med samma fil och codec. Gör behörighetsändringar tydliga i Compose så att uppgraderingar och återskapningar av avbildningen inte tar bort dem.
Kontrollera kompatibilitet mellan codec, drivrutin och runtime
Jämför vilka codecs och filter varje app ber GPU:n att köra, inklusive H.264, HEVC, AV1, tonmappning, undertexter, skalning samt OpenCL- eller CUDA-filter. En arbetsbelastning kan kräva funktioner som en annan aldrig använder.
En aktuell guide om GPU-passthrough för Jellyfin betonar att containerkonfigurationen måste matcha Intel QSV, NVIDIA NVENC eller AMD VA-API, i stället för att behandla alla vägar för hårdvaruacceleration som utbytbara. runtimen måste matcha GPU-familjen.
Se till att värddatorns drivrutin är kompatibel med runtime-biblioteken i containern och undvik att paketera motstridiga drivrutiner i enskilda mediecontainrar. Testa avkodning, kodning och tonmappning separat.
Mät samtidiga sessioner samt minnes- och temperaturgränser
Starta en hårdvarutranskodning i varje container och övervaka GPU-processer, användning, belastning på kodare och avkodare, minne, temperatur, fel och strömmarnas stabilitet. Öka samtidigheten gradvis med representativa medier.
En Proxmox-konfiguration i communityn beskriver flera Jellyfin-instanser som transkodar samtidigt och hur aktiviteten verifieras från värddatorn. Den visar också att samtidiga sessioner har praktiska gränser som bestäms av hårdvara och programvara.
En delad GPU fungerar när båda apparna fortsätter att vara accelererade och responsiva. Bildstörningar, misslyckad initiering av kodaren, slut på minne, termiska återställningar eller att en app tvingar den andra att använda programvara visar att arbetsbelastningen överskrider den aktuella marginalen.
Håll konfiguration och transkodningssökvägar separata när GPU:n delas
Ge varje mediecontainer en egen konfigurationsdatabas, cache, transkodningskatalog, portar och identitet. Dela endast det skrivskyddade mediebiblioteket och GPU-enheten, om inte apparna uttryckligen stöder en gemensam tillståndskatalog.
ZimaSpace-guiden om isolering av containerberoenden hjälper dig att skilja en GPU-konflikt från fel i databas, cache, nätverk eller montering.
Designen är validerad först när båda containrarna överlever ombyggnader, använder hårdvaruacceleration samtidigt, respekterar sina egna behörigheter och tillstånd samt håller sig inom gränserna för sessioner, minne och temperatur. Använd separata GPU:er eller mjukvarufallback när samtidiga arbetsbelastningar inte på ett tillförlitligt sätt kan uppfylla den kvalitet som krävs.
Support och tips
Mer att läsa

Guide till lagring av live-tv-inspelningar för kapacitet, lagringstid och rensning
Mät verkliga inspelningar, reservera marginal, kombinera gränser för ålder och kapacitet och bevisa att det äldsta berättigade programmet tas bort innan lagringen blir full.

Arbetsflöde för återställning av metadata för hemmamedia efter en databasåterställning
Skydda det återställda tillståndet, verifiera medieidentitet och sökvägar och reparera sedan saknade omslagsbilder eller matchningar i ett pilotbibliotek innan omfattande metadataändringar görs.

Kompatibilitetschecklista för Jellyfin-klienter för ljud, video och undertexter
Testa representativa filer med en variabel i taget och notera Direct Play, remuxning, ljudkonvertering, videotranskodning eller fel för varje klient.

