Ja, meerdere mediacontainers kunnen één GPU delen wanneer het hoststuurprogramma en de runtime gelijktijdige toegang ondersteunen en elke container het apparaat correct ontvangt.
Containers hebben normaal gesproken niet exclusief zeggenschap over een GPU, zoals een volledig doorgelichte virtuele machine dat wel heeft. Intel Quick Sync en AMD VA-API stellen doorgaans gedeelde renderapparaten beschikbaar, terwijl NVIDIA-containers één stuurprogrammastack en GPU kunnen delen, binnen de beperkingen van hardware, stuurprogramma, codec, geheugen en sessies. Conflicten ontstaan wanneer orkestratie het apparaat exclusief toewijst, machtigingen verschillen, containers incompatibele bibliotheken bevatten of gelijktijdige transcoderingen de praktische capaciteit van de GPU overschrijden.
Controleer of de host gelijktijdige GPU-workloads ondersteunt
Installeer en verifieer eerst het hoststuurprogramma en voer vervolgens een hardwareversnelde transcodering uit buiten of binnen één bekende, goed werkende container. Noteer het GPU-model, het stuurprogramma, de ondersteunde encodeer- en decodeercodecs, het geheugen en het waargenomen gebruik.
Een discussie in de TrueNAS-community meldt dat meerdere apps dezelfde GPU kunnen delen wanneer deze beschikbaar wordt gesteld voor gebruik in plaats van als exclusieve applicatiebron te worden toegewezen. Het verschil zit tussen gedeelde apparaattoegang en exclusieve passthrough.
Als één container de GPU niet betrouwbaar kan gebruiken, voeg dan geen andere toe. Los eerst problemen met het hoststuurprogramma, het kernelapparaat, de firmware of de runtime op voordat je gelijktijdigheid test.
Stel het juiste apparaat beschikbaar voor elke container
Vergelijk voor Intel en AMD de /dev/dri-card- en rendernodes die aan elke container worden doorgegeven. Vergelijk voor NVIDIA de runtime- of apparaatverzoekinstellingen, variabelen voor zichtbare apparaten en stuurprogrammacapaciteiten.
Een Jellyfin-geval op NixOS beschrijft hoe dezelfde host-GPU zich in verschillende containers anders gedraagt doordat de besturingssysteem- en apparaatomgeving veranderde. Het laat zien waarom overeenkomende apparaatbeschikbaarheid en bibliotheken belangrijker zijn dan het kopiëren van één Compose-regel.
Gebruik de minimale set apparaten die elke app nodig heeft en vermijd de bevoorrechte modus als snelle oplossing. Controleer na een nieuwe build of de verwachte rendernode of het NVIDIA-apparaat in elke container aanwezig is.
Stem machtigingen en gebruikersgroepen tussen containers af
Noteer de numerieke eigenaar en groep van het renderapparaat op de host en controleer vervolgens of elk containerproces de bijbehorende aanvullende groep of machtiging heeft. Gebruikersnamen die specifiek zijn voor een image kunnen aan verschillende numerieke ID's zijn gekoppeld.
Een container die de GPU toont maar deze niet kan openen, kan terugvallen op softwarematige transcodering of een foutmelding over geweigerde toegang geven. Die fout kan eruitzien als een apparaatconflict terwijl de andere mediacontainer blijft werken.
Test elke container afzonderlijk met hetzelfde bestand en dezelfde codec. Leg oplossingen voor machtigingen expliciet vast in Compose, zodat image-updates en het opnieuw aanmaken van containers deze niet verwijderen.
Controleer de compatibiliteit van codecs, stuurprogramma's en runtime
Vergelijk de codecs en filters die elke app de GPU laat uitvoeren, waaronder H.264, HEVC, AV1, tonemapping, ondertitels, schaling en OpenCL- of CUDA-filters. Eén workload kan capaciteiten vereisen die een andere nooit gebruikt.
Een actuele handleiding voor GPU-passthrough met Jellyfin benadrukt dat de containerconfiguratie moet aansluiten op Intel QSV, NVIDIA NVENC of AMD VA-API, in plaats van alle hardwareversnelde paden als uitwisselbaar te behandelen. De runtime moet overeenkomen met de GPU-familie.
Houd het hoststuurprogramma compatibel met de runtimebibliotheken van de container en voorkom dat je conflicterende stuurprogramma's in afzonderlijke mediacontainers bundelt. Test decodering, encoding en tonemapping afzonderlijk.
Meet gelijktijdige sessies, geheugen- en thermische limieten
Start in elke container één hardwaretranscodering en controleer GPU-processen, gebruik, encoder- en decoderbelasting, geheugen, temperatuur, fouten en streamstabiliteit. Verhoog de gelijktijdigheid geleidelijk met representatieve media.
Een Proxmox-communityconfiguratie beschrijft meerdere Jellyfin-instanties die gelijktijdig transcoderen en waarbij de activiteit vanaf de host wordt gecontroleerd. Het laat ook zien dat gelijktijdige sessies praktische limieten hebben die door hardware en software worden bepaald.
Een gedeelde GPU werkt goed wanneer beide apps versneld en responsief blijven. Haperingen, mislukte encoderinitialisatie, fouten wegens onvoldoende geheugen, thermische resets of een app die de andere naar softwarematige verwerking dwingt, wijzen erop dat de workload de huidige marge overschrijdt.
Houd configuratie- en transcodeerpaden gescheiden terwijl je de GPU deelt
Geef elke mediacontainer een eigen configuratiedatabase, cache, transcoderingsmap, poorten en identiteit. Deel alleen de mediabibliotheek met alleen-lezenrechten en het GPU-apparaat, tenzij de applicaties expliciet een gedeelde statusmap ondersteunen.
De ZimaSpace-handleiding voor het isoleren van containerafhankelijkheden helpt een GPU-conflict te onderscheiden van een fout in de database, cache, het netwerk of een mount.
Het ontwerp is pas gevalideerd wanneer beide containers nieuwe builds overleven, gelijktijdig hardwareversnelling gebruiken, hun eigen machtigingen en status respecteren en binnen de sessie-, geheugen- en thermische limieten blijven. Gebruik afzonderlijke GPU's of een softwarematige terugval wanneer gelijktijdige workloads niet betrouwbaar aan de vereiste kwaliteit kunnen voldoen.
Ondersteuning & Tips
Meer om te lezen

Kan Plex een GPU delen met een andere Docker-container?
Plex en een andere container kunnen vaak dezelfde GPU gebruiken, maar je moet de driverondersteuning, apparaattoewijzing, belasting van de video-engine, het geheugengebruik en het...

Hoe je kunt bepalen of een Plex-fout door de client of de server wordt veroorzaakt
Reproduceer hetzelfde item op een andere client, vergelijk het sessiepad en verzamel pas serverbewijs nadat de scope heeft uitgewezen waar de fout daadwerkelijk zit.

Plex-cache en tijdelijke opslag voor transcodering configureren
Bescherm de permanente Plex-status door tijdelijke transcodebestanden op geschikte lokale opslag te plaatsen en controleer vervolgens het opruimen, de beschikbare ruimte en het gedrag...

