- Průchod GPU (vDGA/VMDirectPath I/O) ve VMware mapuje plně fyzickou GPU na virtuální počítač, aby se dosáhlo téměř nativního výkonu.
- Jeho použití vyžaduje přísné požadavky technické vybavení (VT‑d/AMD‑V, IOMMU, MMIO 64bitový) a firmware EFI/UEFI na virtuálním počítači.
- Povolení vDGA má za následek ztrátu klíčových funkcí vSphere, jako jsou vMotion, DRS a snapshoty na virtuálním počítači používajícím GPU v režimu průchodu.
- Ve srovnání s vGPU a dalšími řešeními upřednostňuje vDGA vyhrazený výkon před flexibilitou a možností sdílení GPU mezi více virtuálními počítači.
Připojení fyzické grafické karty přímo k virtuálnímu počítači ve VMware Je to jedna z těch změn, které znamenají zásadní rozdíl při práci s velkým grafickým zatížením. IA nebo 3D renderování. Přechod z emulované grafické karty na přímý přístup přes passthrough (vDGA / VMDirectPath I/O) může přiblížit výkon virtuálního počítače fyzickému počítači, ale na oplátku to přináší řadu požadavků a omezení, které by měly být před zahájením zcela jasné.
V současném ekosystému navíc existuje několik způsobů využití GPU ve virtualizovaných prostředích: Vyhrazený průchod, sdílená vGPU a technologie jako BitFusion nebo dělení na oddíly GPUPochopení toho, co každý z nich dělá, v jakých případech se hodí a jak je konfigurován ve vSphere/ESXi (a jak se vztahuje k podobným technologiím, jako je Hyper-V DDA), je klíčem k tomu, abyste se nedostali do slepé uličky s hardwarem nebo zvolenou verzí hypervizoru.
Co je GPU passthrough (vDGA / VMDirectPath I/O) ve VMware
Průchod GPU ve VMware, známý také jako vDGA nebo VMDirectPath I/OJedná se o provozní režim, ve kterém je fyzická grafická karta nainstalovaná v hostiteli ESXi přímo přiřazena virtuálnímu počítači. Místo použití grafického adaptéru emulovaného hypervizorem vidí hostovaný operační systém GPU téměř jako by byl připojen k fyzické základní desce.
Tato zkratka umožňuje virtuálnímu počítači využít veškerý výkon grafického čipu, jeho videopaměti a pokročilých funkcí jako například CUDA, OpenCL, Direct3D a OpenGL nativně, s velmi malou přidanou režií od hypervizoru. V laboratorních testech VMware je obvykle hlášena ztráta výkonu kolem 4-5 % ve srovnání se spuštěním stejné GPU v holém systému.
V praxi použití GPU passthrough znamená, že Tato karta je kompletně vyhrazena pro jeden virtuální stroj.Neexistuje žádná detailní alokace zdrojů mezi více virtuálními počítači, ani není na ESXi načtena vrstva softwaru třetí strany pro sdílení grafické karty, na rozdíl od řešení vGPU, jako je například NVIDIA MŘÍŽKA.
Je důležité odlišit tento přístup od jiných způsobů využití GPU ve virtualizaci, jako například NVIDIA vGPU (sdílená vGPU), RemoteFX/dělení na oddíly na řešeních typu Hyper-V nebo BitFusion, které se snaží distribuovat GPU nebo skupinu GPU mezi více počítačů s různými technikami virtualizace nebo vzdáleného přesměrování.
Když ve světě VMware mluvíme o vDGA, v podstatě popisujeme toto přímé přiřazení PCIe zařízení GPU k virtuálnímu počítači používání VMDirectPath I/O se všemi výhodami (výkon) i nevýhodami (omezení mobility a vysoké dostupnosti), které to s sebou nese.

Výhody použití GPU passthrough ve vSphere
Hlavním důvodem pro přechod na vDGA je to, že Grafický a výpočetní výkon se velmi blíží výkonu fyzického počítače.Vynecháním velké části virtualizační vrstvy pro dané PCIe zařízení mizí typická úzká hrdla emulované GPU a virtuální stroj může mnohem plynuleji pracovat s hrami, 3D aplikacemi nebo AI enginy.
To je obzvláště patrné v situacích, kdy integrované grafické karty nebo výchozí emulovaná virtuální grafická karta výrazně zaostávají: Pokročilý grafický design, CAD, 3D modelování a renderování, střih videa, animace a vývoj herJe také zásadní při trénování modelů strojového učení a úloh umělé inteligence, které se silně spoléhají na CUDA nebo ekvivalenty.
Další jasnou výhodou je flexibilnější využití hardwaru na úrovni datového centra. Místo toho, abyste měli fyzická pracovní stanice na uživatele nebo na projektJe možné vyhradit dostatečně velký hostitel ESXi několika virtuálním strojům, každý s vlastní GPU v režimu passthrough, a hrát si s harmonogramy nebo špičkovou zátěží.
V určitých prostředích, zejména pokud jsou již k dispozici servery s volnými sloty PCIe, náklady na uživatele nebo na projekt Může to být méně než údržba flotily výkonných fyzických pracovních stanic, zvláště pokud grafická karta není potřeba 24 hodin denně a lze ji překonfigurovat podle období intenzivní práce.
Konečně existuje i nepřímá výhoda z hlediska bezpečnosti a provozu: zachováním grafických úloh v rámci izolovaných virtuálních strojůPokud se něco pokazí (exploit, problematický ovladač, špatná konfigurace), je snazší omezit dopad, vrátit se k předchozímu snímku nebo obnovit ze zálohy, pokud jsou respektována omezení průchodu dat, která uvidíme později.
Průchodnost GPU versus vGPU a další alternativy
V ekosystému VMware existuje několik způsobů využití grafické karty a ne všechny zahrnují její výhradní vyhrazení pro jeden virtuální počítač. Mezi nejznámější patří: vDGA / VMDirectPath I/O, vGPU (NVIDIA GRID nebo jiná) a řešení pro vzdálený přístup/výpočetní techniku, jako je BitFusion.
V režimu přímého průchodu (vDGA) je GPU alokován výhradně na virtuální strojVýpočetní jádra a VRAM nejsou sdíleny mezi více virtuálními počítači a role hypervizoru je prakticky nulová kromě směrování zařízení PCIe k hostovi. Je to nejjednodušší možnost na pochopení a ta, která se nejvíce podobá fyzickému serveru s dedikovanou grafickou kartou.
V přístupu vGPU specializovaný software (například NVIDIA GRID vGPU na VMware vSphereZvládá virtualizaci GPU na úrovni řadiče a zpřístupňuje virtuální instance GPU, které lze přiřadit více virtuálním počítačům současně. Každý hostovaný počítač vidí „výřez“ GPU s garantovanými nebo sdílenými zdroji.
vGPU umožňují více virtuálním desktopům nebo serverům sdílet jednu grafickou kartu, což je velmi užitečné v VDI, lehká akcelerovaná kancelářská prostředí, grafické pracovní stanice v první linii v maloobchodě nebo pohostinstvínebo scénáře, kde je maximální využití grafiky mezi uživateli nerovnoměrné. V důsledku toho dochází k určité režijní zátěži a není dosaženo stejného špičkového výkonu jako u celé fyzické grafické karty vyhrazené pro jeden virtuální počítač.
Existují také řešení, jako např. BitFusion Flexdirect a podobné technologiekteré umožňují spotřebu GPU přes síť z různých virtuálních počítačů, což je ideální pro úlohy s umělou inteligencí a HPC, kde GPU funguje spíše jako vzdálený výpočetní zdroj než jako grafická karta pro grafické rozhraní uživatele.
Vyberte si mezi vDGA, vGPU nebo modelem vzdálené GPU Záleží na tom, zda potřebujete plně využít GPU pro jeden stroj (passthrough), zda chcete distribuovat drahou kartu mezi mnoho uživatelů se středním zatížením (vGPU), nebo zda je klíčem orchestrovat pool GPU pro distribuované výpočty (BitFusion a podobné).
Hardwarové požadavky pro použití vDGA na ESXi
Před plánováním nasazení GPU passthrough ve VMware se musíte ujistit, že Hardwarová platforma splňuje řadu podmínek které jdou nad rámec „pouhého připojení grafické karty k serveru“.
Za prvé, procesor a čipová sada základní desky hostitele ESXi musí podporovat virtualizace s IOMMU, v Intel Toho je dosaženo pomocí Intel VT-x plus VT-dy a u AMD prostřednictvím AMD-V s IOMMU. BIOS/UEFI serveru má pro toto obvykle specifické možnosti. aktivovat rozšíření virtualizace I/O.
Za druhé, musíte zkontrolovat, zda je nosná deska Mapování paměti MMIO nad 4 GB (někdy označováno jako „Dekódování nad 4G“, „mapované I/O nad 4G“ a podobně). To je obzvláště důležité u špičkových GPU, jako je Tesla, P100, V100 a ekvivalenty, které deklarují velmi velké paměťové oblasti ve svých BAR (Base Address Registers).
Některé z těchto špičkových karet dokáží mapovat více než 16 GB prostoru MMIOProto kromě hraní BIOSPak bude nutné upravit určité parametry v pokročilém nastavení virtuálního počítače ve vSphere, aby se mohl spustit s danou grafickou kartou bez chyb způsobených nedostatkem zdrojů.
Samozřejmě, samotná GPU musí být kompatibilní se serverovou platformou a být podporován výrobcem hostitelského systému (Dell, HPE, Lenovoatd.) při použití v režimu průchodu. V praxi funguje většina moderních grafických karet PCIe, ale je vhodné zkontrolovat seznamy kompatibility, zejména u karet GRID nebo zcela nových modelů.
Softwarové požadavky a kompatibilita verzí
Na úrovni softwaru je důležité si ujasnit, že VMware podporuje vDGA ve verzi vSphere 6.x a novějších.Někteří uživatelé však hlásili specifické problémy s určitými hardwarovými kombinacemi (například grafické karty NVIDIA GRID v serverech Dell R720 s ESXi 6.x).
V těchto případech se běžné objevují chyby jako „zařízení se již používá“ nebo příznaky, které naznačují, že Průchod dat přestal fungovat po upgradu z ESXi 5.5 na 6.x.ve skutečnosti se jedná spíše o konkrétní chyby, změny ve správě zařízení PCI nebo ovladačů než o oficiální ukončení podpory.
Hostující operační systém, který bude používat GPU v režimu průchodu, musí mít oficiální ovladače výrobce nainstalované ve virtuálním počítači (NVIDIA, AMD, Intel), protože ESXi při použití VMDirectPath I/O nenačítá žádný specifický ovladač pro danou kartu; hypervizor jednoduše zpřístupní zařízení hostovi.
Kromě toho musí být virtuální počítač nakonfigurován pro spouštění v Režim EFI nebo UEFI při použití GPU, které deklarují velké paměťové oblasti MMIO. Tento detail je zásadní: nesprávný firmware virtuálního počítače může vést k selhání. bota nebo že se GPU z hostovaného operačního systému neinicializuje správně.
Na straně klienta, pokud přístup k virtuálnímu počítači probíhá prostřednictvím Vzdálená plocha (RDP nebo jiné protokoly)Bude nutné aktivovat příslušné zásady, aby hostovaný systém používal hardwarovou grafickou kartu ve vzdálených relacích a nebyl omezen na generický ovladač bez akcelerace.

Konfigurace hostitele ESXi pro použití GPU v režimu průchodu
Prvním praktickým krokem je příprava Server vSphere/ESXi pro zobrazení GPU jako I/O zařízení DirectPathTo zahrnuje přístup k BIOSu, kontrolu inventáře PCI na hostiteli a označení karty, aby ji bylo možné přiřadit k virtuálním počítačům.
Pokud grafická karta vyžaduje velké paměťové oblasti MMIO (16 GB nebo více), je třeba se podívat do BIOSu/UEFI serveru, kde najdete možnosti, jako například „Dekódování nad 4G“ nebo „Zpracování 64bitových zdrojů PCI nad 4G“ a aktivovat je. Konkrétní název se liší v závislosti na výrobci, ale obvykle jej lze nalézt v nastavení PCI nebo v části pokročilých zdrojů.
Jakmile je ESXi spuštěn s tímto nastavením, můžete v klientovi vSphere přejít na odpovídající hostitel a přistupovat k „Konfigurovat → Hardware → Zařízení PCI → Upravit“ Chcete-li zobrazit seznam detekovaných zařízení PCI, uvidíte karty NVIDIA, AMD nebo podobné karty spolu se zbytkem hardwaru PCI serveru.
Pokud grafická karta ještě nemá povolený DirectPath I/O, jednoduše zaškrtněte políčko. průchozí schránka u vašeho vchodu v tomto seznamu. Při ukládání změn vás vSphere vyzve k restartování hostitele, aby se konfigurace aplikovala, protože hypervizor potřebuje rezervovat a připravit zařízení k opětovnému přiřazení k virtuálním počítačům.
Po restartu, po návratu do sekce „Konfigurace → Hardware → Zařízení PCI“ Zobrazí se okno s názvem něco jako „DirectPath I/O PCI Devices Available to VMs“ (Zařízení DirectPath I/O PCI dostupná pro virtuální počítače) se seznamem všech zařízení, která jsou k dispozici pro použití ve virtuálních počítačích, včetně grafických karet (GPU) a v mnoha případech i pokročilých síťových adaptérů, jako je Mellanox.
Příprava a konfigurace virtuálního počítače
Jakmile je hostitel připraven, dalším krokem je vytvoření nebo úprava virtuálního počítače, který bude používat GPU. První věcí je ujistit se, že virtuální počítač Byl vytvořen s vhodným firmwarem EFI/UEFI., zejména ve scénářích s špičkovými GPU a vysokým MMIO.
V klientovi vSphere jednoduše vyberte virtuální počítač a přejděte na „Upravit nastavení → Možnosti virtuálního počítače → Možnosti spouštění“ a ověřte, zda je v poli „Firmware“ vybrána možnost „EFI“ nebo „UEFI“. Pokud ne, bude nutné ji změnit (a v některých případech bude nutné znovu vytvořit virtuální počítač nebo operační systém, pokud tuto funkci hot-swapping nepodporuje).
Při použití průchodu s kartami, které mapují více než 16 GB prostoru MMIO, je vhodné upravit některé pokročilé parametry v konfiguraci virtuálního počítače, které jsou přístupné z „Upravit nastavení → Možnosti virtuálního počítače → Upřesnit → Parametry konfigurace → Upravit konfiguraci“Zde můžete přidat klíče související s pciPassthru pro řízení rezervace adresního prostoru.
Konkrétně je obvykle povoleno použití 64bitového MMIO a pro danou oblast je definována velikost, vypočítaná z Kolik špičkových GPU bude přiděleno virtuálnímu počítači?Pravidlem obvykle je vynásobit 16 počtem GPU a výsledek zaokrouhlit nahoru na nejbližší mocninu dvou (například dvě takové GPU by nakonec měly 64 GB 64bitového MMIO).
Po úpravě těchto parametrů se provede instalace nebo se ověří, že Hostující operační systém podporuje EFI/UEFI a je schopen zpracovat danou velikost paměti a grafickou kartu.V tomto okamžiku grafická karta ještě nebyla připojena k virtuálnímu počítači; prostředí se pouze připravuje, aby se v takovém případě vše spustilo bez chyb způsobených nedostatkem zdrojů nebo nekompatibilním firmwarem.
Přiřaďte GPU k virtuálnímu počítači pomocí VMDirectPath I/O
Jakmile hostitel označí GPU jako dostupnou pro DirectPath I/O a virtuální počítač je správně nakonfigurován, je čas fyzicky propojit kartu s daným virtuálním strojemTento krok musí být proveden s virtuálním počítačem zcela vypnutým.
V klientovi vSphere vyberte virtuální počítač a zadejte „Upravit nastavení“ pro kontrolu virtuálního hardwaruV seznamu zařízení můžete kliknout na „Přidat nové zařízení“ a zvolit „Zařízení PCI“, pokud grafická karta ještě není uvedena. Poté vyberte zařízení PCI odpovídající grafické kartě (například kartu NVIDIA nebo AMD detekovanou na hostiteli).
Po uložení konfigurace se na hardwaru virtuálního počítače zobrazí něco podobného. „PCI Device 0“ přidružené ke konkrétní grafické kartěOd tohoto okamžiku se při spuštění hostovaného operačního systému zobrazí další PCIe adaptér odpovídající fyzické grafické kartě.
Je nezbytné, aby virtuální stroj měl rezervovala veškerou paměť, která jí byla přidělenaVe vSphere se toto konfiguruje v části „Upravit nastavení → Virtuální hardware → Paměť“, kde se hodnota „Rezervace“ nastaví na množství RAM nakonfigurované pro virtuální počítač. Bez této úplné rezervace může průchod PCI selhat nebo docházet k občasným problémům.
Po zapnutí virtuálního počítače v systému Linux Přítomnost GPU lze ověřit pomocí příkazy typ lspci | grep nvidia, zatímco ve Windows se zobrazí v části „Grafické adaptéry“ v Správce zařízeníJe normální vidět jak grafický adaptér emulovaný VMware, tak i dedikovanou fyzickou grafickou kartu.
Posledním krokem je instalace následujícího na hostované zařízení: ovladače Zástupci výrobce grafických karetstažené z webových stránek NVIDIA, AMD nebo Intel, bez spoléhání se na generické ovladače nebo ovladače dodané Windows Updatekteré nemusí být optimalizovány pro scénáře průchodu.
Omezení vSphere a funkce, které nefungují s vDGA
Nevýhodou GPU passthrough ve VMware je, že Několik pokročilých funkcí platformy je ztraceno vyhrazením fyzického zařízení přímo virtuálnímu počítači. To je cena, kterou je třeba zaplatit za téměř nativní výkon.
První velká oběť je vMotion a DRSVirtuální počítač s grafickou kartou v režimu průchodu nelze migrovat za provozu na jiného hostitele, protože karta je fyzicky uzamčena k původnímu serveru. Nelze použít ani automatizované zásady vyvažování zátěže, které zahrnují přesun virtuálního počítače mezi hostiteli v clusteru.
Funkce jako například Tradiční snímky nebo určité mechanismy vysoké dostupnosti pro daný konkrétní virtuální počítač. Protože se spoléhá na velmi specifický fyzický hardware, je ohrožena schopnost zmrazit a obnovit složité stavy.
Dalším aspektem, který je třeba zvážit, je, že v tomto režimu GPU není sdíleno mezi více virtuálními počítačiPokud je na stejném počítači potřeba více stolních počítačů nebo serverů s grafickou akcelerací, bude vyžadována jedna karta na virtuální počítač, nebo lze alternativně použít model vGPU, kde je karta virtualizována napříč více instancemi.
Na straně podpory mohou existovat specifické případy, kdy Některé kombinace hardwaru a ovladačů mohou způsobovat problémyJak někteří uživatelé poznamenali při upgradu na ESXi 6.x s kartami NVIDIA GRID na konkrétních serverech (např. Dell R720), je v těchto scénářích vhodné prostudovat dokumentaci výrobce VMware a GPU a v případě potřeby otevřít žádost o podporu.
Konečně je třeba poznamenat, že určité technologie nebo služby, které interagují s grafikou, jako například vzdálené plochy, subsystémy Linuxu ve Windows nebo pokročilé funkce operačního systémuMohou rušit nebo způsobovat chyby „Kód 43“ v ovladačích NVIDIA, pokud zjistí, že pracujete uvnitř virtuálního počítače s průchodem GPU.
Průchodnost GPU v jiných hypervizorech: paralelně s Hyper-V
Přestože se zde zaměřujeme na VMware, stojí za to pochopit, jak další hypervizory (například virtualizace s KVM a virt-managerem) řeší stejnou potřebu alokace fyzického GPU virtuálnímu počítačiprotože terminologie a nástroje se mění, ale základní myšlenka je podobná.
V Hyper-V je ekvivalentem VMware VMDirectPath I/O přímé přiřazení zařízení pomocí DDA (Discrete Device Assignment)Tato technika umožňuje mapování konkrétního zařízení PCIe, jako je GPU nebo NVMe, přímo v rámci virtuálního počítače s Windows, s úrovní kontroly a výkonu podobnou passthrough v ESXi.
Starší verze Windows Serveru používaly tuto technologii RemoteFX nabídnout virtualizaci GPU a sdílet grafickou kartu mezi více virtuálními počítači. S časKvůli bezpečnostním problémům a omezením výkonu (například omezení 1 GB VRAM na virtuální počítač a 30 FPS) společnost Microsoft ukončila technologii RemoteFX a ponechala DDA jako primární cestu pro scénáře s dedikovanou GPU.
Ve Windows 10 a Windows 11Zejména u některých kompilací se objevuje podpora pro Dělení na GPU a znovu použité mechanismy z WSL2 a Windows SandboxJeho konfigurace však obvykle zahrnuje složité skripty a kopírování ovladačů z hostitele na hosta, což není tak přímočaré jako přiřazení zařízení ve vSphere.
Znalost těchto alternativ nám umožňuje vidět, že Filozofie nabízení téměř nativního přístupu k GPU prostřednictvím přímého kanálu PCIe Je společný pro několik hypervizorů, ačkoli každý z nich má své vlastní nuance, příkazy a omezení kompatibility.
Celý tento ekosystém passthrough, vGPU a DDA ukazuje, že při správné konfiguraci a se správným hardwarem... Je naprosto proveditelné používat výkonné grafické karty v rámci virtuální stroje pro produkční prostředí Pro úlohy od náročných grafických desktopů až po umělou inteligenci a HPC vždy předpokládejte, že se budete muset vzdát určitých výhod tradiční virtualizace a věnovat velkou pozornost ovladačům, verzím hypervisoru a podpoře výrobců GPU.
Vášnivý spisovatel o světě bytů a technologií obecně. Rád sdílím své znalosti prostřednictvím psaní, a to je to, co budu dělat v tomto blogu, ukážu vám všechny nejzajímavější věci o gadgetech, softwaru, hardwaru, technologických trendech a dalších. Mým cílem je pomoci vám orientovat se v digitálním světě jednoduchým a zábavným způsobem.
