Med den senaste Game Ready-drivrutinen har NVIDIA aktiverat GPU Passthrough beta-stöd för virtuella Windows-maskiner på GeForce GPU:er. Före drivrutinen 465.89 var det bara Quadro NVIDIA-kort som stödde GPU-passthrough. För Linux-användare kommer den här tekniken att tillåta att spela Windows-spel i din virtuella dator; eller, om du är en utvecklare, kan du enklare testa både Windows- och Linux-kod från en enda maskin, vilket påskyndar utvecklingen.
GPU-passthrough har använts under lång tid, och det fanns sätt att aktivera det på GeForce-grafikkort; dock fick det aldrig officiellt stöd. Tekniskt sett har tekniken alltid varit tillgänglig i kiselchippet för GeForce, men den var inte aktiverad i drivrutinerna, vilket orsakade det populära "felet 43" på virtuella Windows-maskiner. Att använda ett mjukvaruhack har varit möjligt under lång tid för att möjliggöra GPU-passthrough på konsumenternas GeForce-kort och vGPU-funktioner. Mer om vGPU i den här artikeln.
NVIDIA Game Ready-drivrutin 465.89
Den 30 mars i år släppte NVIDIA en ny Game Ready Driver, 465.89. Den här drivrutinen stöder helt nya videospel och erbjuder en lösning för att öppna problem som presenteras i många andra spel och appar. Något särskilt spännande med denna nya release finns dock under Gaming Technology. Här har tre importfunktioner tillkännagivits: Ändra storlek BAR GeForce RTX 30-serien, stöd för OpenCL 3.0 och betastöd för virtualisering på GeForce GPU:er.
Ändringsbar BAR
Ändra storleksbar BAR tillåter processorn att komma åt hela en PCIe-enhets minne på en gång, snarare än den tidigare begränsningen på 256 MB per cykel. Smart Access Memory, SAM (AMD:s term för tekniken) tillkännagavs förra året av företaget och har redan implementerats.
OpenCL 3.0
Lade till stöd för OpenCL 3.0, den senaste större versionen av OpenCL som bibehåller bakåtkompatibilitet med OpenCL 1.2. NVIDIA OpenCL 3.0 fortsätter att stödja befintlig OpenCL 1.2-funktionalitet och Khronos och leverantörstillägg som redan stöds med NVIDIA OpenCL 1.2-drivrutiner.
Beta Stöd för virtualisering på GeForce GPU:er.
Från och med den här drivrutinen har NVIDIA också aktiverat GPU-passthrough (inte vGPU, aka SR-IOV för GPU-delning) på alla GeForce-grafikkort baserade på Kepler-arkitektur och nyare för virtuella Windows-maskiner. Detta är tekniken vi fokuserar på i den här artikeln. Även om Resizable BAR var en av de mest förväntade funktionerna för den nya RTX-generationen och spelare, var virtualisering på GeForce GPU:er det mest förväntade tillägget för "HomeLabers"- och Linux-användare.
Windows Virtual Machine Beta Stöd för GeForce
Om du i första hand är en Linux-användare kan du nu aktivera GeForce GPU-passthrough på en virtuell Windows-maskin (VM). NVIDIA GPU-genomföring var endast reserverad för GPU:er i företags- eller arbetsstationsklass. Företaget tillät inte GeForce-kunder att använda den här tekniken i en Windows VM som kördes i deras datorer av konsumentklass. Men många kunder använde faktiskt GeForce-kort som arbetsstations-GPU:er.
På konsumentkort var kisel aldrig problemet med GPU-genomföring; det var programvaran (drivrutinen) som låste användare. Tidigare, för att använda GPU-passthrough, skulle användarna behöva spendera en betydande summa pengar för ett NVIDIA Tesla- eller Quadro-kort. GPU passthrough beta-stöd för GeForce är en meningsfull seger för de som vill köra Windows-spel från en virtuell maskin samtidigt som de behåller sin Linux-värd (fysisk) och använder ett GeForce-grafikkort.
Huvudmålet för den här tekniken är Linux-användare som vill utföra multi-task GPU-krävande applikationer. Det finns några GeForce-användningsfall där denna funktionalitet är fördelaktig, till exempel:
- GeForce-kunder som vill köra en Linux-värd och kunna starta en virtuell Windows-maskin (VM) för att spela spel
- Spelutvecklare som vill testa kod i både Windows och Linux på en maskin
GeForce-virtualisering (beta) stöds på R465 eller högre drivrutiner. Det är aktiverat på alla GeForce/TITAN GPU:er som stöds av den här drivrutinen (Kepler och senare för stationära datorer; Maxwell och senare för bärbara datorer) på Windows. Windows 10 är det enda gästoperativsystemet som stöds för denna GeForce-virtualiseringsinställning.
Med GeForce GPU Passthrough kan du inte utnyttja samma GPU som används av värdoperativsystemet för virtualisering. En GPU krävs för Linux-värdoperativsystemet och en GPU krävs för den virtuella Windows-maskinen. Det är också viktigt att komma ihåg att GPU-passthrough endast stöder en virtuell maskin. vGPU (SR-IOV) eller en delad GPU-passthrough för flera virtuella datorer stöds inte på GeForce. Anta att du vill göra det möjligt för olika virtuella datorer att ha direktåtkomst till en enda GPU eller att GPU:n ska tilldela virtuella funktioner till flera virtuella maskiner. I så fall måste du använda en arbetsstation eller GPU:er för företag.
GPU-genomgångsfel: Kod 43
Om du någonsin försökte köra en Windows VM från en Linux-maskin, innan den Game Ready Driver 465.89, skulle drivrutinerna i gästoperativsystemet returnera den populära "Code 43". Det här felet dök bara upp i Windows (Gäst) OS när GeForce-drivrutinen upptäckte att operativsystemet faktiskt kördes på en virtuell dator. Stödet för virtualisering på GeForce GPU:er gör att du inte längre behöver dölja din virtuella dator; drivrutinerna kan installeras och den här felkoden bör vara borta.
Det är också helt okej att nämna att NVIDIA medvetet konstruerade den här felkoden för GeForce-grafikkorten. Det manifesteras inte på Tesla och Quadro GPU:er, företagets företagsklassade kort. Anledningen är att NVIDIA verkligen behöver separera konsumenterna från företagssegmentet. Vissa företagsfunktioner är inte särskilt meningsfulla för konsumentkort (sämre prestanda), men att aktivera några av dem skulle resultera i en betydande försäljningsförlust för NVIDIAs (dyra) företagskort.
GPU-genomföring kontra vGPU
Många användare är fortfarande förvirrade över GPU Passthrough och de tekniska möjligheter som erbjuds av NVIDIA. Det är viktigt att se över vad virtualiseringen på GeForce GPU är och vad som inte är det. Termen GPU Passthrough kan låta ganska självförklarande för många GPU-entusiaster; Ändå förväxlas det vanligtvis med NVIDIA virtuell GPU (vGPU).
Både GPU Passthrough och vGPU är tekniker som länge använts för företagsvirtualiseringslösningar som VMware ESXi och Citrix XenServer. Och för Tesla och Quadro GPU:er. I VMware ESXi kallas GPU Passthrough virtuell dedikerad grafikacceleration (vDGA) och vGPU kallas Virtual shared graphics acceleration (vSGA). vGPU tillåter företagsklassiga GPU:er att delas över flera virtuella skrivbord.
VMware erbjuder ett tredje alternativ som kallas Virtual Shared Passthrough Graphics Acceleration. Denna teknik gör att en GPU kan delas med flera användare istället för att fokusera på endast en användare. Skillnaden mot vGPU (vSGA i VMware) är att den proprietära VMware 3D-drivrutinen inte används, och de flesta av grafikkortets funktioner stöds. Kom ihåg att med GPU Passthrough på GeForce-kort kan du inte göra det möjligt för flera virtuella datorer att ha direktåtkomst till en enda GPU, och GPU:n kan inte heller tilldela virtuella funktioner till flera virtuella maskiner.
Virtual Desktop Infrastructure (VDI) är det bästa exemplet och scenariot för att använda dessa GPU-tekniker. VDI-lösningar drar fördel av virtualisering genom att snabbt skapa hundratals VM-kloner som körs på en enda kraftfull server eller kluster. För det mesta är vGPU det bästa valet för användare som kräver GPU:s fulla potential under korta perioder. Däremot kan vGPU skapa flaskhalsar, beroende på vilka applikationer som används och de resurser som dessa applikationer behöver från GPU:n. vGPU används vanligtvis för kunskapsarbetare och ibland för avancerade användare. Nuförtiden betraktas det som en oaktsam handling att planera VDI-lösningar utan att erkänna vGPU.
Nvidia vGPU hackad för GeForce-kort
Även med GPU Passthrough aktiverat i de senaste NVIDIA-drivrutinerna, har GeForce-användare fortfarande inte (officiellt) möjligheten att dela GPU:er över flera virtuella skrivbord. För vGPU måste du använda NVIDIA Tesla, Quadro eller RTX Enterprise GPU. Så du kan inte lura NVIDIA på den här, eller kan du?
För ett par månader sedan avslöjades det en upplåsning av vGPU-funktionaliteten för konsumentklassade GPU:er. Det här verktyget möjliggör användning av GeForce och Quadro GPU:er med NVIDIA vGPU-programvaran. NVIDIA vGPU stöder normalt bara ett fåtal Tesla GPU:er, men eftersom vissa GeForce och Quadro GPU:er delar samma fysiska chip som Tesla, är detta bara en mjukvarubegränsning för dessa GPU:er. Detta verktyg syftar till att ta bort denna begränsning.
Verktyget och instruktionerna finns på https://github.com/DualCoder/vgpu_unlock.
Avslutande tankar
NVIDIA har äntligen beslutat att ta bort blocket som de hade godtyckligt på GeForce-kort. Innan NVIDIA släppte drivrutinen 465.89, när gästoperativsystemet upptäckte en virtuell maskin, inaktiverades drivrutinen i Windows och Linux. Med virtualisering aktiverad kan GeForce-kunder på en Linux-värddator nu aktivera GeForce GPU-passthrough på ett virtuellt Windows gäst-OS.
Tekniskt sett är stödet för virtualisering på GeForce GPU inte en betaversion; men mer som att NVIDIA bara kryssar i en ruta för att låsa upp en funktion som har funnits länge. GPU Passthrough är dock fortfarande begränsad till en enda GPU-instans, vilket innebär att endast en virtuell maskin kommer att ha tillgång till grafikkortet exklusivt.
När det gäller vGPU, tyvärr, om du inte går full Enterprise, stöder NVIDIA fortfarande inte att dela en GPU med flera virtuella maskiner, på samma sätt som en CPU-tillverkare gör. Om användaren behöver fler virtuella maskiner för att komma åt samma GPU kommer Tesla eller Quadro grafikkort att krävas. Men detta kan komma att ändras som GPU-genomföring. För närvarande är ett mjukvaruhack tillgängligt för att prova vGPU-funktioner, men naturligtvis är dess stöd inte officiellt.




Amazon