Några dagar sedan, NVIDIA meddelade, genom Kernel-e-postlistor, släpper en uppsättning av patchar som implementerar sin vGPU-teknik. Dessa patchar tillåter användning av virtuella NVIDIA GPU:er i virtualiseringssystem, levererar kraftfull GPU-prestanda för olika arbetsbelastningar, allt från grafikintensiva virtuella arbetsstationer till datavetenskap och artificiell intelligens.
vGPU:n delar upp NVIDIAs fysiska GPU-resurser i hårdvara, tilldela varje vGPU sin egen virtuella PCI Express-funktion (VF). Detta innebär att gästsystem kan köras som utför olika uppgifter, vilket gör det bästa av tillgängliga resurser.
Det nämns det Varje NVIDIA vGPU fungerar på samma sätt som en konventionell GPU, eftersom den har en fast mängd rambuffert och en eller flera virtuella skärmutgångar, även känd som "huvuden". vGPU-rambufferten allokeras från den fysiska GPU-rambufferten vid tidpunkten för dess skapelse, och vGPU:n behåller exklusiv användning av den bufferten tills den förstörs.
Det gör det möjligt för IT att dra fördel av hanterings- och säkerhetsfördelarna med virtualisering, såväl som prestandan hos NVIDIA GPU:er som behövs för moderna arbetsbelastningar. NVIDIA vGPU-programvaran installeras på en fysisk GPU i en moln- eller företagsdatacenterserver och skapar virtuella GPU:er som kan delas mellan flera virtuella maskiner.
Styrenheten är kompatibel med grafikkort NVIDIA baserat på Ada Lovelace mikroarkitektur, och antalet vGPU:er du kan skapa beror på grafikkortets modell.
På värdsystemet, den modifierade Nouveau-drivrutinen är ansvarig för att skapa och para vGPU:er med gästsystem. Under tiden, i gästsystemet, används standard proprietära NVIDIA-drivrutiner. Detta säkerställer att vGPU:s funktioner liknar en vanlig GPU, vilket gör att en del av minnet kan allokeras från den fysiska GPU-rambufferten till vGPU:n, vilket säkerställer att den endast används av vGPU:n.
Det finns flera typer av vGPU, var och en designad för olika ändamål, med olika videominneskapacitet, antal virtuella skärmar och maximala upplösningar.
Genomförandet täcker den grundläggande nvkm-föraren, som är byggd ovanpå den öppna Nouveau-drivrutinen, samt vGPU-hanteraren, kallad vgpu_mgr, som fungerar som en VFIO (Virtual Function I/O)-modul. Den här hanteraren tar hand om nyckelfunktioner som att skapa och ta bort vGPU:er, välja deras typ och tillhandahålla ett API för kontroll från användarutrymmet.
NVIDIA vGPU VFIO-modul tillsammans med VFIO finns i VFs, ger utökade funktioner och hantering, till exempel val av vGPU-typer, stöd för Live migrering och het uppdatering av drivrutinen.
Liksom andra VFIO-kompatibla enheter tillhandahåller VFIO
Standard användarutrymme API för hantering av enhetens livscykel och Stöd för avancerade funktioner.NVIDIA vGPU Manager ger det nödvändiga stödet till NVIDIA vGPU VFIO-variant drivrutin för att skapa/förstöra vGPU:er, se tillgängliga vGPU-typer, välj typen av vGPU osv.
Administratören av vGPU interagerar med den underliggande GPU-drivrutinen, som direkt kommer åt hårdvaran. Ladda dessutom in GSP-firmware, NVIDIA vGPU Manager utför följande funktioner:
- Hanterar delade/partitionerade hårdvaruresurser. Till exempel reservera FB-minne,
kanaler för vGPU-hanteraren för att skapa vGPU:er. - Undantagshantering. Till exempel att leverera GSP-händelser till vGPU-hanteraren.
- Skickar värdevenemang. Till exempel, avbryta/återuppta.
- Hårdvarukonfigurationsuppräkningar.
Slutligen, om du är det intresserad av att veta mer om det, Du kan kontrollera detaljerna i följande länk, liksom du kan också se koden i aktion i nästa video. Kodtesterna utfördes på Ubuntu 24.04 som gästoperativsystem.