Passthrough de GPU (vDGA) a VMware: guia completa

Darrera actualització: 14/01/2026
Autor: Isaac
  • El passthrough de GPU (vDGA/VMDirectPath I/O) a VMware assigna una GPU física completa a una VM per aconseguir un rendiment gairebé nadiu.
  • El seu ús exigeix ​​requisits estrictes de maquinari (VT‑d/AMD‑V, IOMMU, MMIO 64‑bit) i microprogramari EFI/UEFI a la màquina virtual.
  • En activar vDGA es perden funcions clau de vSphere com vMotion, DRS i snapshots sobre la VM que utilitza la GPU en passthrough.
  • Davant de vGPU i altres solucions, vDGA prioritza rendiment dedicat sobre flexibilitat i capacitat de compartir la GPU entre diverses VMs.

Passthrough de GPU vDGA a VMware

Connectar directament una GPU física a una màquina virtual a VMware és un d'aquests canvis que marquen la diferència quan treballes amb càrregues gràfiques pesades, IA o renderitzat 3D. Passar d'una gràfica emulada a un accés directe mitjançant passthrough (vDGA / VMDirectPath I/O) pot apropar el rendiment de la VM al d'un equip físic, però a canvi afegeix força requisits i limitacions que cal tenir molt clars abans de llançar-se.

A més, a l'ecosistema actual conviuen diverses maneres d'usar la GPU en entorns virtualitzats: passthrough dedicat, vGPU compartida i tecnologies tipus BitFusion o GPU partitioning. Entendre què fa cadascuna, en quins casos encaixa i com es configura a vSphere/ESXi (i com es relaciona amb tecnologies similars com Hyper-V DDA) és clau per no ficar-se en un atzucac amb el maquinari o la versió d'hipervisor escollida.

Què és el passthrough de GPU (vDGA / VMDirectPath I/O) a VMware

El passthrough de GPU a VMware, també conegut com a vDGA o VMDirectPath I/O, és un mode de funcionament en què una targeta gràfica física instal·lada al host ESXi s'assigna directament a una màquina virtual. En lloc de fer servir un adaptador gràfic emulat per l'hipervisor, el sistema operatiu convidat veu la GPU gairebé com si estigués punxada en una placa base física.

Aquest accés directe fa que la VM pugui aprofitar tota la potència del xip gràfic, la seva memòria de vídeo i funcions avançades com CUDA, OpenCL, Direct3D o OpenGL de forma nativa, amb molt poca sobrecàrrega afegida per l'hipervisor. En proves de laboratori de VMware se sol parlar d'una pèrdua de rendiment d'un 4-5 % respecte a executar la mateixa GPU en bar metall.

A la pràctica, utilitzar passthrough de GPU significa que aquesta targeta queda completament dedicada a una única màquina virtual. No hi ha repartiment fi de recursos entre diverses VMs ni capa de programari de tercers carregada a ESXi per compartir la targeta, a diferència del que passa amb solucions de vGPU com NVIDIA REIXA.

Convé distingir aquest enfocament d'altres modalitats d'ús de GPU en virtualització, com ara NVIDIA vGPU (vGPU compartida), RemoteFX/partitioning a Hyper‑V o solucions tipus BitFusion, que busquen repartir una GPU o un pool de GPU entre múltiples màquines amb diferents tècniques de virtualització o redirecció remota.

Quan es parla de vDGA al món VMware, en essència s'està descrivint aquesta assignació directa del dispositiu PCIe de la GPU a la VM usant VMDirectPath I/O, amb tot el bo (rendiment) i el dolent (restriccions de mobilitat i alta disponibilitat) que això implica.

Arquitectura VMDirectPath GPU VMware

Avantatges d'usar passthrough de GPU a vSphere

La raó principal per fer el salt a vDGA és que el rendiment gràfic i de còmput s'apropa molt al d'un equip físic. En ometre bona part de la capa de virtualització per a aquest dispositiu PCIe, els colls dampolla típics de la GPU emulada desapareixen i la VM pot treballar amb jocs, aplicacions 3D o motors dIA de forma molt més fluida.

Això es nota especialment a escenaris on les GPU integrades o la targeta virtual emulada per defecte es queden molt curtes: disseny gràfic avançat, CAD, modelatge i render 3D, edició de vídeo, animació i game development. També és crític en entrenaments de models de machine learning i càrregues d'IA que tiren molt de CUDA o equivalents.

Un altre avantatge clar és lús més flexible del maquinari a nivell de centre de dades. En lloc de tenir un workstation físic per usuari o per projecte, és possible dedicar un host ESXi ben dimensionat a diverses VMs, cadascuna amb la seva pròpia GPU a passthrough, i jugar amb horaris o pics de demanda.

En determinats entorns, sobretot si ja es compta amb servidors amb ranures PCIe lliures, el cost per usuari o per projecte pot ser menor que mantenir un parc d'estacions físiques potents, sobretot si el gràfic no es necessita les 24 hores i es pot reconfigurar segons èpoques de treball intens.

Finalment, també hi ha un benefici indirecte en matèria de seguretat i operativa: en mantenir les càrregues de treball gràfiques dins de màquines virtuals aïllades, si alguna cosa surt malament (un exploit, un controlador problemàtic, una mala configuració) és més fàcil contenir l'impacte, revertir un snapshot previ o restaurar des de còpia de seguretat, sempre que es respectin les limitacions pròpies del passthrough que veurem més endavant.

Passthrough de GPU davant de vGPU i altres alternatives

Dins de l'ecosistema VMware hi ha diverses maneres d'aprofitar una targeta gràfica i no totes passen per dedicar-la sencera a una sola VM. Les més conegudes són vDGA / VMDirectPath I/O, vGPU (NVIDIA GRID o altres) i solucions d'accés remot/computació com BitFusion.

  Com desactivar l'autocompletar a navegadors web pas a pas

En el mode de passthrough directe (vDGA), la GPU s'assigna en exclusiva a una màquina virtual. No es comparteixen els nuclis de còmput ni la VRAM entre diverses VMs, i l'hipervisor pràcticament no intervé més enllà d'encaminar el dispositiu PCIe cap al convidat. És l'opció més senzilla d'entendre i la que s'assembla més a un servidor físic amb una gràfica dedicada.

A l'enfocament de vGPU, un programari especialitzat (per exemple NVIDIA GRID vGPU sobre VMware vSphere) s'encarrega de virtualitzar la GPU a nivell de controlador i exposar instàncies virtuals de la mateixa que es poden assignar a diverses VMs alhora. Cada màquina convidada veu un “tros” de GPU amb recursos garantits o compartits.

Les vGPU permeten que múltiples escriptoris virtuals o servidors comparteixin una sola targeta, cosa molt útil a VDI, entorns d'ofimàtica amb acceleració lleugera, llocs gràfics de front-line en retail o hostaleria, o escenaris on el pic dús gràfic és disparat entre usuaris. A canvi, hi ha certa sobrecàrrega i no s'aconsegueix el mateix rendiment pic que amb una GPU física sencera dedicant-se a una sola VM.

També hi ha solucions com BitFusion Flexdirect i tecnologies similars, que permeten consumir GPUs a través de la xarxa des de diferents VMs, ideal per a càrregues d'IA i HPC on la GPU actua més com un recurs de còmput remot que com una targeta de vídeo per a la interfície gràfica de l'usuari.

Escollir entre vDGA, vGPU o un model de GPU remota depèn de si necessites esprémer a fons una GPU per a una sola màquina (passthrough), si vols repartir una targeta cara entre molts usuaris amb càrregues mitjanes (vGPU) o si el que és clau és orquestrar un pool de GPU per a còmput distribuït (BitFusion i similars).

Requisits de maquinari per utilitzar vDGA a ESXi

Abans de planejar un desplegament de passthrough de GPU a VMware, cal assegurar-se que la plataforma de maquinari compleix una sèrie de condicions que van més enllà de “tenir una gràfica punxada al servidor”.

En primer lloc, el processador i el chipset de la placa base del host ESXi han de suportar virtualització amb IOMMU. En la Intel això passa per Intel VT‑x més VT‑di a AMD per AMD‑V amb IOMMU. A la BIOS/UEFI del servidor sol haver-hi opcions concretes per activar les extensions de virtualització d'E/S.

En segon lloc, cal revisar que la placa suporti mapeig de memòria MMIO per sobre de 4 GB (de vegades etiquetatge com “Above 4G decoding”, “memory mapped I/O above 4G” o similar). Això és especialment important amb GPU de gamma alta com Tesla, P100, V100 i equivalents, que declaren regions de memòria molt grans als seus BAR (Base Address Registers).

Algunes d'aquestes targetes de gamma alta poden mapejar més de 16 GB d'espai MMIO, de manera que, a més de tocar la BIOS, després caldrà ajustar certs paràmetres a la configuració avançada de la VM a vSphere perquè pugui arrencar amb aquesta GPU sense errors de recursos insuficients.

Per descomptat, la GPU en si ha de ser compatible amb la plataforma de servidor i estar suportada pel fabricant del host (Dell, HPE, Lenovo, etc.) quan s'usa en mode passthrough. A la pràctica, la majoria de GPUs PCIe modernes funcionen, però convé revisar llistes de compatibilitat, especialment si es tracta de targetes GRID o models molt nous.

Requisits de programari i compatibilitat de versions

A nivell de programari, és important tenir clar que VMware sí suporta vDGA a vSphere 6.xi versions posteriors, encara que alguns usuaris han reportat problemes concrets amb determinades combinacions de maquinari (per exemple, GPUs NVIDIA GRID a servidors Dell R720 amb ESXi 6.x).

En aquests casos, és habitual veure errors del tipus “device is already in use” o símptomes que fan pensar que el passthrough ha deixat de funcionar en actualitzar d'ESXi 5.5 a 6.x, quan en realitat es tracta de bugs específics, canvis en la gestió de dispositius PCI o en els controladors, més que no pas d'una retirada oficial del suport.

El sistema operatiu convidat que hagi de fer servir la GPU a passthrough ha de comptar amb controladors oficials del fabricant instal·lats dins de la VM (NVIDIA, AMD, Intel), ja que ESXi no carrega cap driver específic per a aquesta targeta en utilitzar VMDirectPath I/O; l'hipervisor es limita a exposar el dispositiu al convidat.

A més, la VM ha d'estar configurada per arrencar a mode EFI o UEFI quan s'utilitzen GPU que declaren grans regions de memòria MMIO. Aquest detall és crític: un firmware de VM incorrecte pot donar lloc a errors de arrencada o que la GPU no s'inicialitzi correctament des del sistema operatiu convidat.

Al costat del client, si l'accés a la VM es produeix mitjançant escriptori remot (RDP o altres protocols), caldrà activar les polítiques adequades perquè el sistema convidat utilitzi l'adaptador gràfic de maquinari a les sessions remotes i no es quedi ancorat a un driver genèric sense acceleració.

  No funciona Windows Update Al Windows 7. Què puc fer?

Configuració de GPU passthrough a VMware

Configuració del host ESXi per utilitzar GPU en mode passthrough

El primer pas pràctic és preparar el servidor vSphere/ESXi per exposar la GPU com a dispositiu de DirectPath I/O. Això implica tocar la BIOS, revisar l'inventari de PCI a l'amfitrió i marcar la targeta perquè pugui assignar-se a VMs.

Si la GPU necessita grans regions de memòria MMIO (16 GB o més), cal buscar a la BIOS/UEFI del servidor opcions del tipus “Above 4G decoding” o “PCI 64-bit resource handling above 4G” i activar-les. El nom concret varia segons el fabricant, però se sol trobar a l'apartat de configuració de PCI o de recursos avançats.

Un cop arrencat ESXi amb aquests paràmetres, al client de vSphere es pot anar al host corresponent i accedir a “Configureu → Maquinari → PCI Devices → Edit” per veure la llista de dispositius PCI detectats. Aquí apareixeran les targetes NVIDIA, AMD o similars al costat de la resta de maquinari PCI del servidor.

Si la GPU encara no està habilitada per a DirectPath I/O, només cal marcar la casella de passthrough a la seva entrada dins aquesta llista. En desar els canvis, vSphere sol·licitarà reiniciar l'amfitrió per aplicar la configuració, ja que l'hipervisor ha de reservar i preparar el dispositiu per ser reassignat a VMs.

Després del reinici, en tornar a la secció “Configureu → Maquinari → PCI Devices” es mostrarà una finestra titulada una mica semblant a “DirectPath I/O PCI Devices Available to VMs”, on es llisten tots els dispositius que han quedat disponibles per al seu ús en màquines virtuals, incloent les GPUs i, en molts casos, adaptadors de xarxa avançats tipus Mellanox.

Preparació i configuració de la màquina virtual

Amb l'amfitrió preparat, el següent pas és crear o adaptar la màquina virtual que utilitzarà la GPU. El primer és assegurar-se que la VM s'ha creat amb un microprogramari EFI/UEFI adequat, sobretot en escenaris amb GPUs de gamma alta i MMIO elevat.

En el client de vSphere, només cal seleccionar la VM, anar a “Edit Settings → VM Options → Boot Options” i verificar que al camp “Firmware” està escollit “EFI” o “UEFI”. Si no ho està, caldrà canviar-ho (i en alguns casos recrear la VM o el sistema operatiu si no suporta aquest canvi en calent).

Quan es fa servir passthrough amb targetes que mapegen més de 16 GB d'espai MMIO, convé ajustar uns paràmetres avançats en la configuració de la VM, accessibles des de “Edit Settings → VM Options → Advanced → Configuration Parameters → Edit Configuration”. Aquí podeu afegir claus relacionades amb pciPassthru per controlar com es reserva l'espai d'adreces.

Concretament, se sol activar l'ús de MMIO de 64 bits i es defineix una mida per a aquesta regió, calculada a partir de quantes GPUs de gamma alta s'assignaran a la VM. La regla de la casa sol ser multiplicar 16 pel nombre de GPUs i arrodonir el resultat a la potència següent de dos (per exemple, dos GPUs d'aquest tipus acabarien en 64 GB de MMIO de 64 bits).

Després d'ajustar aquests paràmetres, s'instal·la o es comprova que el sistema operatiu convidat suporta EFI/UEFI i és capaç de manejar la mida de memòria i la GPU en qüestió. A hores d'ara encara no s'ha connectat la gràfica a la VM, simplement s'està preparant l'entorn perquè, quan es faci, tot arrenqui sense errors per manca de recursos o microprogramari incompatible.

Assignar la GPU a la VM mitjançant VMDirectPath I/O

Quan el host té marcada la GPU com a disponible per a DirectPath I/O i que la VM està configurada correctament, arriba el moment de associar físicament la targeta a aquesta màquina virtual. Aquest pas s'ha de fer amb la VM completament apagada.

Des del client de vSphere se selecciona la VM i s'entra a “Edit Settings” per revisar el maquinari virtual. A la llista de dispositius es pot prémer “Add New Device” i triar “PCI Device” si la GPU encara no apareix. A continuació, se selecciona el dispositiu PCI corresponent a la gràfica (per exemple, la NVIDIA o l'AMD detectada al host).

Quan es desa la configuració, la VM mostrarà al maquinari alguna cosa com “PCI Device 0” associat a la GPU concreta. Des d'aquest moment, en arrencar el sistema operatiu convidat, veureu un adaptador PCIe addicional corresponent a la targeta gràfica física.

És fonamental que la màquina virtual tingui reservada tota la memòria que se li ha assignat. A vSphere, això es configura a “Edit Settings → Virtual Hardware → Memory”, establint a l'apartat de “Reservation” un valor igual a la RAM configurada per a la VM. Sense aquesta reserva completa, el passthrough de PCI pot fallar o donar problemes intermitents.

  Temps d'espera del Semàfor ha expirat | Solucions

Després d'encendre la VM, en un sistema Linux es pot comprovar la presència de la GPU amb ordres tipus lspci | grep nvidia, mentre que a Windows apareixerà sota “Adaptadors de pantalla” al Administrador de dispositius. El més normal és veure tant l'adaptador gràfic emulat de VMware com la GPU física dedicada.

L'últim pas és instal·lar dins del convidat els conductors oficials del fabricant de la GPU, descarregats des de les webs de NVIDIA, AMD o Intel, evitant confiar en drivers genèrics o en els que subministra Windows Update, que poden no estar optimitzats per a escenaris de passthrough.

Limitacions i funcionalitats de vSphere que no funcionen amb vDGA

La cara B del passthrough de GPU a VMware és que es perden diverses funcionalitats avançades de la plataforma en dedicar un dispositiu físic directament a una VM. És el preu a pagar per aquest rendiment gairebé nadiu.

La primera gran renúncia és vMotion i DRS. Una màquina virtual amb una GPU al passthrough no es pot migrar en calent a un altre host, perquè la targeta està físicament ancorada al servidor original. Tampoc no es poden utilitzar polítiques automàtiques de distribució de càrrega que impliquin moure la VM entre hosts del clúster.

Tampoc estan disponibles característiques com Snapshots tradicionals o certs mecanismes d'alta disponibilitat per a aquesta VM concreta. En dependre dun maquinari físic molt particular, la capacitat de congelar i restaurar estats complexos es veu compromesa.

Un altre aspecte que cal tenir en compte és que, en aquesta manera, la GPU no es comparteix entre diverses VMs. Si es necessiten diversos escriptoris o servidors amb acceleració gràfica sobre la mateixa màquina, caldrà una targeta per VM o, alternativament, passar a un model de vGPU on la targeta es virtualitza a diverses instàncies.

Al costat del suport, hi pot haver casos específics en què determinades combinacions de maquinari i drivers donin problemes, com alguns usuaris han observat en actualitzar a ESXi 6.x amb targetes NVIDIA GRID en servidors concrets (per exemple, Dell R720). En aquests escenaris és recomanable revisar documentació de VMware i del fabricant de la GPU, així com obrir casos de suport si cal.

Finalment, cal tenir present que certes tecnologies o serveis que interactuen amb gràfics, com ara escriptoris remots, subsistemes de Linux a Windows o funcions avançades del sistema operatiu, poden interferir o provocar errors de tipus “Code 43” a drivers NVIDIA si detecten que s'està treballant dins d'una VM amb GPU a passthrough.

Passthrough de GPU en altres hipervisors: paral·lel amb Hyper‑V

Encara que el focus aquí és a VMware, val la pena entendre com altres hipervisors (per exemple virtualització amb KVM i virt‑manager) aborden la mateixa necessitat d'assignar una GPU física a una VM, ja que la terminologia i les eines canvien, però la idea de fons és semblant.

A Hyper‑V, l'equivalent de VMware VMDirectPath I/O és la assignació directa de dispositius mitjançant DDA (Discrete Device Assignment). Aquesta tècnica permet mapejar un dispositiu PCIe concret, com ara una GPU o un NVMe, directament dins una màquina virtual Windows, amb un nivell de control i rendiment similar al del passthrough a ESXi.

En versions antigues de Windows Server s'usava la tecnologia RemoteFX per oferir virtualització de GPU i compartir una targeta entre diverses VMs. Amb el temps, a causa de problemes de seguretat i limitacions de rendiment (com el topall d'1 GB de VRAM per VM i 30 FPS), Microsoft va retirar RemoteFX i va deixar com a camí principal DDA per a escenaris de GPU dedicada.

Al Windows 10 i Windows 11, especialment a partir de certes compilacions, ha anat apareixent suport per GPU partitioning i mecanismes reutilitzats des de WSL2 i Windows Sandbox, encara que la seva configuració sol implicar scripts complexos i copiar drivers des del host al convidat, cosa que no és tan directa com assignar un dispositiu a vSphere.

Conèixer aquestes alternatives permet veure que la filosofia d'oferir un accés gairebé nadiu a la GPU mitjançant un canal PCIe directe és comú a diversos hipervisors, encara que cadascú tingui els seus propis matisos, ordres i restriccions de compatibilitat.

Tot aquest ecosistema de passthrough, vGPU i DDA demostra que, ben configurat i amb el maquinari correcte, és perfectament viable utilitzar GPUs potents dins de màquines virtuals per a producció per a càrregues que van des d'escriptoris gràfics exigents fins a IA i HPC, sempre assumint que caldrà renunciar a certes comoditats de la virtualització tradicional i estar molt atent a drivers, versions d'hipervisor i suport del fabricant de la GPU.

virtualització maquinari
Article relacionat:
Com activar la virtualització des de la BIOS o UEFI pas a pas