¿Qué es el passthrough de GPU en Hyper-V en Windows 10 y Windows 11?
GPU passthrough significa dar a una máquina virtual acceso directo o casi directo a un adaptador gráfico físico instalado en el PC anfitrión. En lugar de depender únicamente del adaptador de pantalla virtual básico de Hyper-V, el sistema operativo invitado puede usar aceleración por hardware para renderizado 3D, codificación de vídeo, cargas CUDA o DirectX, sesiones de escritorio remoto, juegos ligeros, herramientas de IA y aplicaciones con alta demanda gráfica.
En Hyper-V, la expresión “GPU passthrough” suele utilizarse para dos tecnologías distintas: Discrete Device Assignment (DDA), que asigna una GPU PCIe completa a una VM, y GPU Partitioning (GPU-P), que expone una partición de la GPU del anfitrión al sistema invitado. En sistemas cliente Windows 10 y Windows 11, el método práctico que suelen probar la mayoría de usuarios domésticos y de estaciones de trabajo es GPU-P, no un DDA real de estilo servidor.
Motivos habituales para conectar una GPU a una VM de Hyper-V
- Ejecutar software que se niega a iniciarse con el adaptador de pantalla básico de Hyper-V.
- Activar DirectX, OpenGL, Vulkan, CUDA o decodificación de vídeo por hardware dentro de una VM.
- Probar controladores gráficos, lanzadores de juegos, herramientas de renderizado o editores de vídeo de forma aislada.
- Usar aceleración GPU mediante sesión mejorada, RDP, Parsec, Sunshine/Moonlight u otra pila de visualización remota.
- Crear una VM desechable para experimentos sin instalar herramientas pesadas en el sistema anfitrión.
Soporte de passthrough de GPU en Hyper-V: DDA vs GPU-P en Windows 10/11
Antes de cambiar cualquier ajuste de la VM, conviene entender los límites de soporte. Microsoft documenta Discrete Device Assignment como una tecnología de Windows Server para asignar dispositivos PCIe compatibles, incluidos adaptadores gráficos y dispositivos NVMe, directamente a una VM. En guías recientes de solución de problemas de Microsoft, DDA y GPU-P se presentan explícitamente como escenarios de clase servidor; el hardware de escritorio y los sistemas operativos cliente Windows 10/11 no son el destino admitido para esos flujos de asignación de GPU empresariales.
| Tecnología | Cómo funciona | Mejor caso de uso | Realidad en clientes Windows 10/11 |
|---|---|---|---|
| DDA | Pasa una GPU PCIe completa a una VM. El anfitrión pierde el uso normal de esa GPU mientras está asignada. | Anfitriones Windows Server, VM de confianza, hardware dedicado, cargas empresariales. | No es un escenario cliente habitual y admitido. Requiere hardware compatible, firmware, ACS/IOMMU y decisiones de seguridad cuidadosas. |
| GPU-P | Crea una partición de GPU y la adjunta a una VM de Generación 2 mediante PowerShell. | Compartir parte de la GPU del anfitrión con una VM para aceleración. | Suele usarse de forma experimental en Windows 10/11 Pro o Enterprise, pero los cambios de controladores y actualizaciones pueden romper la configuración. |
| RemoteFX vGPU | Tecnología de GPU virtual antigua. | Solo entornos heredados de Windows Server/Hyper-V. | No la uses. RemoteFX vGPU se eliminó por problemas de seguridad. |
Requisitos del sistema para particionar una GPU en Hyper-V en Windows 10 y 11
La partición de GPU es sensible al hardware, a los controladores y a la configuración exacta de la VM. Antes de ejecutar comandos de PowerShell, revisa todos los requisitos siguientes.
Requisitos del PC anfitrión
- Edición de Windows: Windows 10 Pro, Enterprise o Education; Windows 11 Pro, Enterprise o Education. Hyper-V no se incluye de forma predeterminada en las ediciones Home.
- Hyper-V activado: la plataforma Hyper-V y las herramientas de administración deben estar instaladas.
- Virtualización por hardware: Intel VT-x/VT-d o AMD-V/AMD-Vi deben estar activados en BIOS/UEFI.
- Controlador GPU moderno: instala el controlador estable más reciente para gráficos NVIDIA, AMD o Intel en el anfitrión antes de configurar la VM.
- Recursos suficientes: se recomiendan al menos 16 GB de RAM si el anfitrión y el invitado van a ejecutar cargas gráficas exigentes.
Requisitos de la máquina virtual
- VM de Generación 2: usa una máquina virtual de Hyper-V basada en UEFI.
- Sistema operativo invitado: Windows 10 o Windows 11 es el objetivo más sencillo. Los escenarios GPU-P con Linux son más limitados y dependen más de los controladores.
- Memoria dinámica desactivada: usa asignación de memoria fija para mayor estabilidad.
- Punto de control creado: crea un punto de control antes de añadir el adaptador GPU.
- PowerShell como administrador: todos los comandos del lado del anfitrión deben ejecutarse desde una consola de PowerShell elevada.
Activar Hyper-V si no está instalado
Abre PowerShell como administrador y ejecuta:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Reinicia Windows cuando se solicite. Después del reinicio, abre Administrador de Hyper-V desde el menú Inicio.
Preparar la VM de Hyper-V antes de añadir la GPU
La VM debe estar apagada y configurada de forma coherente antes de adjuntar un adaptador de partición de GPU. No ejecutes estos comandos mientras la VM esté en estado guardado.
Paso 1: definir la variable con el nombre de la VM
Sustituye Win11-GPU por el nombre exacto de tu máquina virtual:
$vm = "Win11-GPU"
Paso 2: apagar la VM
Stop-VM -Name $vm -TurnOff
Paso 3: desactivar puntos de control automáticos y memoria dinámica
Set-VM -Name $vm -AutomaticCheckpointsEnabled $false
Set-VMMemory -VMName $vm -DynamicMemoryEnabled $false -StartupBytes 8GB
Paso 4: configurar caché y ajustes MMIO
Estos ajustes se usan con frecuencia al adjuntar recursos GPU a máquinas virtuales de Hyper-V. Ayudan al sistema invitado a mapear correctamente la memoria del dispositivo.
Set-VM -GuestControlledCacheTypes $true -VMName $vm
Set-VM -LowMemoryMappedIoSpace 1GB -VMName $vm
Set-VM -HighMemoryMappedIoSpace 32GB -VMName $vm
Cómo activar la partición de GPU en Hyper-V con PowerShell
El comando principal de GPU-P es Add-VMGpuPartitionAdapter. Añade un adaptador virtual de partición de GPU a la VM seleccionada. En muchos sistemas, Hyper-V selecciona automáticamente la GPU particionable disponible. Si el comando falla, es posible que tu hardware, controlador, compilación de Windows o conjunto de características de Hyper-V no exponga correctamente GPU-P.
Paso 1: comprobar si hay una GPU particionable
Get-VMHostPartitionableGpu
Si el comando devuelve información de la GPU, el anfitrión expone al menos una GPU que Hyper-V puede ver como particionable. Si no devuelve nada, actualiza el controlador GPU, instala todas las actualizaciones de Windows, reinicia y comprueba los ajustes de virtualización en BIOS.
Paso 2: añadir el adaptador de partición de GPU
Add-VMGpuPartitionAdapter -VMName $vm
Paso 3: establecer límites de recursos GPU de forma opcional
Algunas configuraciones permiten definir valores mínimos, máximos y óptimos para recursos de VRAM, codificación, decodificación y cómputo. El comportamiento exacto depende de la GPU y del controlador.
Set-VMGpuPartitionAdapter -VMName $vm `
-MinPartitionVRAM 80000000 `
-MaxPartitionVRAM 1000000000 `
-OptimalPartitionVRAM 1000000000 `
-MinPartitionEncode 80000000 `
-MaxPartitionEncode 1000000000 `
-OptimalPartitionEncode 1000000000 `
-MinPartitionDecode 80000000 `
-MaxPartitionDecode 1000000000 `
-OptimalPartitionDecode 1000000000 `
-MinPartitionCompute 80000000 `
-MaxPartitionCompute 1000000000 `
-OptimalPartitionCompute 1000000000
Paso 4: iniciar la VM
Start-VM -Name $vm
En este punto, Windows dentro de la VM puede detectar un dispositivo relacionado con la GPU, pero la aceleración por hardware normalmente no funcionará correctamente hasta que el sistema invitado tenga acceso a los archivos de controlador correspondientes.
Copiar los archivos del controlador GPU del anfitrión al invitado de Hyper-V
GPU-P depende en gran medida de que el invitado vea componentes de controlador que coincidan con el controlador del anfitrión. El enfoque manual habitual consiste en copiar la carpeta de controlador necesaria desde el anfitrión a la VM y, si hace falta, instalar dentro del invitado el paquete normal del controlador GPU.
Buscar la carpeta del controlador en el anfitrión
En el anfitrión, abre el Explorador de archivos y revisa:
C:\Windows\System32\DriverStore\FileRepository
Busca carpetas relacionadas con el fabricante de tu GPU, por ejemplo:
nv_dispi.inf_amd64_...o similar para controladores NVIDIA.u*.inf_amd64_...,amdwddmg.inf_amd64_...o similar para controladores AMD.iigd_dch.inf_amd64_...o similar para controladores gráficos Intel.
Copiar los archivos del controlador dentro de la VM
Hay varias formas de transferir la carpeta:
- Usar copiar y pegar en el Modo de sesión mejorada.
- Adjuntar un VHDX temporal a la VM y copiar los archivos a través de él.
- Usar un recurso compartido de red si la red está activada y es de confianza.
- Montar el disco de la VM sin conexión desde el anfitrión, copiar los archivos y desmontarlo de forma segura.
Una ubicación de destino habitual en el invitado es:
C:\Windows\System32\HostDriverStore\FileRepository
Cómo comprobar la aceleración GPU dentro de la VM de Hyper-V
Después de iniciar la VM, inicia sesión en el invitado y comprueba si Windows detecta la ruta de aceleración GPU.
Comprobar el Administrador de dispositivos
- Dentro de la VM, pulsa Win + X y abre Administrador de dispositivos.
- Expande Adaptadores de pantalla.
- Busca tu GPU o un dispositivo de partición de GPU, y no solo Microsoft Basic Display Adapter.
- Si aparece un icono de advertencia, abre las propiedades del dispositivo y revisa el código de error.
Comprobar la herramienta de diagnóstico de DirectX
- Pulsa Win + R, escribe
dxdiagy pulsa Intro. - Abre la pestaña Pantalla.
- Comprueba si la aceleración Direct3D está activada y si el nombre de la GPU aparece correctamente.
Comprobar el Administrador de tareas
Abre el Administrador de tareas dentro de la VM, ve a Rendimiento y busca actividad de GPU. Después, inicia una aplicación compatible con GPU, como un navegador con aceleración por hardware, un codificador de vídeo, un benchmark 3D o una herramienta de renderizado.
dxdiag
Get-PnpDevice -Class Display
Passthrough completo de GPU con Discrete Device Assignment: qué requiere
Discrete Device Assignment es el equivalente más cercano en Hyper-V al passthrough PCIe tradicional. Elimina el dispositivo del anfitrión y lo monta dentro de una VM. Para GPU, puede ofrecer un aislamiento más fuerte y un acceso más completo al dispositivo que GPU-P, pero también tiene requisitos más estrictos y más riesgos.
Requisitos prácticos de DDA
- Anfitrión Windows Server Hyper-V, no un host de escritorio típico con Windows 10/11.
- Placa base y firmware de clase servidor con comportamiento PCIe ACS/IOMMU correcto.
- Una GPU admitida por el fabricante para DDA o escenarios de virtualización empresarial.
- Una segunda GPU o una vía de administración remota para el anfitrión, porque la GPU asignada no estará disponible para él.
- VM invitada de confianza, porque DDA expone todo el dispositivo al invitado.
- Sin memoria dinámica, sin guardar/restaurar la VM y sin migración en vivo ordinaria mientras el dispositivo esté adjunto.
Flujo típico de comandos DDA
Los siguientes comandos muestran el flujo conceptual. No se recomiendan para hardware de escritorio aleatorio salvo que hayas confirmado la compatibilidad y tengas un plan de recuperación.
$vm = "Server-GPU-VM"
$locationPath = "PCIROOT(...)#PCI(...)#PCI(...)"
Stop-VM -Name $vm -TurnOff
Set-VM -Name $vm -AutomaticStopAction TurnOff
Set-VM -GuestControlledCacheTypes $true -VMName $vm
Set-VM -LowMemoryMappedIoSpace 3GB -VMName $vm
Set-VM -HighMemoryMappedIoSpace 33280MB -VMName $vm
Disable-PnpDevice -InstanceId "PCI\VEN_..." -Confirm:$false
Dismount-VMHostAssignableDevice -LocationPath $locationPath -Force
Add-VMAssignableDevice -LocationPath $locationPath -VMName $vm
Start-VM -Name $vm
El passthrough de GPU en Hyper-V no funciona: problemas comunes y soluciones
Get-VMHostPartitionableGpu no devuelve nada
- Instala el controlador GPU estable más reciente en el anfitrión.
- Instala todas las actualizaciones de Windows y reinicia.
- Revisa los ajustes de BIOS/UEFI para virtualización, VT-d, IOMMU y SR-IOV si están disponibles.
- Asegúrate de que Hyper-V esté activado, no solo Plataforma de máquina virtual.
- Prueba otra rama del controlador GPU si una actualización reciente rompió la detección.
La VM arranca pero muestra Microsoft Basic Display Adapter
- Vuelve a copiar los archivos de controlador coincidentes desde el anfitrión al invitado.
- Instala el controlador GPU del fabricante dentro del invitado si el instalador lo permite.
- Reinicia el invitado y luego el anfitrión si el dispositivo sigue sin inicializarse.
- Elimina y vuelve a añadir el adaptador de partición de GPU.
El Administrador de dispositivos muestra el código 43
El código 43 suele significar que el controlador no pudo inicializar la GPU en el entorno virtualizado. Usa archivos de controlador coincidentes entre anfitrión e invitado, evita controladores muy antiguos y prueba con una VM de Generación 2 recién creada. Algunas combinaciones de GPU de consumo y controladores simplemente no funcionan de forma fiable con GPU-P.
La VM se congela o muestra una pantalla negra
- Apaga la VM desde el Administrador de Hyper-V y elimina el adaptador GPU.
- Aumenta la RAM asignada y los valores MMIO.
- Desactiva la memoria dinámica.
- Conéctate primero con otro método de visualización, como VMConnect básico, y después usa RDP o Parsec cuando los controladores hayan cargado.
Eliminar el adaptador de partición de GPU
Si la VM se vuelve inestable, elimina el adaptador desde una ventana de PowerShell elevada en el anfitrión:
Stop-VM -Name $vm -TurnOff
Remove-VMGpuPartitionAdapter -VMName $vm
Start-VM -Name $vm
Ventajas, limitaciones y alternativas al passthrough de GPU en Hyper-V
✓ Ventajas
- Permite que una VM use aceleración GPU real en lugar de solo un adaptador de pantalla virtual básico.
- Es útil para probar aplicaciones gráficas, navegadores, herramientas de vídeo y software sensible a controladores.
- GPU-P puede permitir que el anfitrión y la VM compartan la misma GPU física.
- No hace falta instalar un segundo hipervisor si Hyper-V ya forma parte de tu flujo de trabajo.
- Funciona bien para experimentación cuando el hardware y los controladores son compatibles.
✗ Limitaciones
- No es una función de consumo totalmente admitida en anfitriones cliente Windows 10/11.
- Las actualizaciones de controladores pueden romper la configuración.
- El rendimiento no siempre equivale al acceso directo a la GPU en hardware físico.
- Los sistemas anti-cheat, DRM y algunos juegos pueden rechazar entornos virtualizados.
- DDA requiere hardware de clase servidor y puede retirar la GPU del control del anfitrión.
Alternativas al passthrough de GPU en Hyper-V
| Alternativa | Ideal para | Notas |
|---|---|---|
| Ejecutar la carga en el anfitrión | Juegos, editores de vídeo, aplicaciones 3D | La opción más fiable y con mayor rendimiento. |
| Windows Sandbox con vGPU | Pruebas de software desechables | Fácil, pero no adecuado para cargas GPU persistentes y pesadas. |
| Aceleración GPU en WSL 2 | IA, ML, CUDA y desarrollo en Linux | A menudo tiene mejor soporte que una VM completa con interfaz gráfica para cargas de desarrollo. |
| Aceleración 3D de VMware / VirtualBox | Aceleración 3D básica de escritorio | No equivale al passthrough directo de GPU, pero es más sencilla para necesidades gráficas simples. |
| DDA en Windows Server | Cargas GPU empresariales dedicadas | Usa hardware compatible y la documentación del fabricante. |
Preguntas frecuentes sobre el passthrough de GPU en Hyper-V
Q ¿Puedo pasar mi NVIDIA GeForce o AMD Radeon a Hyper-V en Windows 11 Pro? ▼
Q ¿GPU-P es lo mismo que un passthrough completo de GPU? ▼
Q ¿Necesito una segunda GPU? ▼
Q ¿Esto mejorará el rendimiento en juegos dentro de una VM de Hyper-V? ▼
Q ¿Por qué dejó de funcionar el passthrough de GPU después de actualizar el controlador? ▼
Q ¿Puedo usar RemoteFX vGPU en su lugar? ▼
🧩 Resumen: la mejor forma de usar una GPU en Hyper-V en Windows 10/11
En anfitriones cliente Windows 10 y Windows 11, el enfoque más práctico es GPU Partitioning con Add-VMGpuPartitionAdapter. Puede dar a una VM de Windows de Generación 2 acceso a aceleración GPU, pero debe tratarse como una configuración avanzada y sensible a controladores, no como una función de consumo garantizada.
Para passthrough completo de GPU de nivel productivo, usa Windows Server Hyper-V con Discrete Device Assignment, hardware de clase servidor, GPU admitidas por el fabricante y un modelo de VM de confianza. Para usuarios cotidianos, empieza siempre con una VM de prueba, crea un punto de control, documenta la versión del controlador que funciona y mantén lista una ruta de recuperación antes de cambiar ajustes de GPU o Hyper-V.