GPU partitioning permite que el host y una máquina virtual de Hyper-V compartan la misma tarjeta gráfica al mismo tiempo, eliminando la lentitud de los adaptadores emulados y acelerando por hardware las aplicaciones dentro de la VM.
Windows ejecuta las máquinas virtuales con un adaptador de pantalla emulado que utiliza la CPU para renderizar los gráficos. El resultado es una experiencia lenta: animaciones entrecortadas, arrastre de ventanas con retardo y desplazamiento poco fluido. La solución pasa por dar acceso a la VM a una GPU real. El problema es que, por diseño, una GPU solo puede estar controlada por un sistema operativo y un driver. Si se entrega la tarjeta completa a la VM, el host pierde el acceso y todo deja de funcionar. GPU partitioning resuelve esa contradicción.
¿Qué es GPU partitioning y por qué mejora el rendimiento de las máquinas virtuales?
GPU partitioning, o GPU-P, es una función de Hyper-V que permite dividir una tarjeta gráfica entre el host y una o más máquinas virtuales. El driver del host mantiene la GPU vinculada al sistema principal, pero autoriza a la VM a tomar prestada memoria de la tarjeta para acelerar sus aplicaciones.
Cuando una aplicación dentro de la VM necesita procesamiento gráfico, los comandos viajan por el VMBus de Hyper-V hasta el host. Allí, el driver del kernel los recoge y los envía al hardware. El programador de GPU de Windows asigna turnos de ejecución a cada partición y garantiza que la memoria de vídeo se distribuya correctamente.
El resultado práctico es que la VM deja de depender de la CPU para dibujar la interfaz y pasa a utilizar la GPU. Las animaciones se mueven con fluidez, las aplicaciones con aceleración gráfica funcionan y la experiencia se acerca a la de un equipo físico.
¿Cómo funciona técnicamente?
Hyper-V expone la GPU al sistema invitado mediante un adaptador de partición. El host conserva el control del hardware, pero cede a la VM un porcentaje de los recursos de la tarjeta. Ese porcentaje se define al crear la partición y puede ajustarse según las necesidades.
La comunicación entre la VM y el host se realiza a través de VMBus, el canal de alto rendimiento que Hyper-V utiliza para el resto de dispositivos virtuales. El driver del host recibe las solicitudes, las procesa en la GPU física y devuelve los resultados a la VM. Todo ocurre con una latencia baja, suficiente para tareas de oficina, navegación, reproducción de vídeo y aplicaciones de diseño ligero.
Requisitos para usar GPU partitioning en Hyper-V
Antes de empezar, conviene comprobar que el equipo cumple estas condiciones:
- Sistema operativo: Windows 10 20H1 o posterior, o Windows 11 Pro, Enterprise o Education. Windows 11 Home puede habilitar Hyper-V con algunos ajustes, por lo que también es viable.
- Misma versión de Windows en host y VM. Si el host ejecuta Windows 11 26H2, la VM debe usar la misma versión. Una discrepancia puede provocar pantallazos azules.
- Virtualización habilitada en la BIOS/UEFI. Se puede comprobar en el Administrador de tareas, en la pestaña Rendimiento, sección CPU. Si aparece como deshabilitada, hay que activarla en la BIOS.
- Hyper-V habilitado. Se activa con el comando
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -Allen PowerShell como administrador. - Drivers gráficos actualizados. Descargados directamente del fabricante (Nvidia, Intel o AMD), no desde el Administrador de dispositivos ni desde Windows Update.
- Imagen ISO de Windows 11. Descargada desde la página oficial de Microsoft. No se debe usar la herramienta Media Creation Tool, porque el script falla con las ISO generadas por ella.
- Scripts de PowerShell permitidos. En PowerShell como administrador, ejecutar
Set-ExecutionPolicy Unrestricted. Se puede revertir aRemoteSignedal terminar.
Easy-GPU-PV, la herramienta que automatiza el proceso, tiene una limitación importante: no funciona con GPU Nvidia en portátiles. Para esos casos, el mismo creador ofrece App Sandbox, que no requiere máquina virtual y funciona en Windows 11 Home. En equipos de escritorio, Easy-GPU-PV es compatible con GPU dedicadas Nvidia y AMD, y con GPU integradas Intel en portátiles.
Configuración paso a paso con Easy-GPU-PV
Preparar el entorno
Descargar Easy-GPU-PV desde su repositorio de GitHub y extraer los archivos en una carpeta. Dentro de esa carpeta, abrir una terminal, hacer clic derecho y seleccionar “Abrir en Terminal”. Ejecutar el siguiente comando para desbloquear los archivos:
Get-ChildItem -Recurse | Unblock-File
Abrir PowerShell ISE como administrador. En ISE, abrir el archivo PreChecks.ps1 y pulsar el botón verde de reproducción. El script mostrará la GPU detectada. Si no la muestra, indicará qué problema hay que corregir. Copiar el nombre exacto de la GPU tal como aparece.
Ejecutar las comprobaciones previas
El script PreChecks.ps1 verifica que el hardware y el sistema cumplen los requisitos. Es el primer filtro antes de crear la máquina virtual.
Configurar y crear la máquina virtual
Crear la carpeta para el disco virtual si no existe. Por defecto, se guarda en C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks.
Abrir CopyFilesToVM.ps1 en ISE y editar el bloque de parámetros al inicio:
- VMName: nombre de la VM, por ejemplo “GPUP”.
- SourcePath: ruta completa a la ISO de Windows.
- Edition: dejar 6 (Pro).
- SizeBytes: tamaño del disco; mínimo 20 GB, recomendado 40 GB o más.
- MemoryAmount: memoria RAM para la VM, por ejemplo 8 GB, dejando suficiente para el host.
- CPUCores: número de núcleos, por ejemplo 4.
- NetworkSwitch: dejar “Default Switch”.
- VHDPath: la carpeta creada anteriormente; debe existir.
- GPUName: “AUTO”, o en Windows 11 el nombre exacto obtenido en la comprobación previa. En Windows 10 debe usarse “AUTO”.
- GPUResourceAllocationPercentage: porcentaje de la GPU para la VM, por ejemplo 50.
- Username: sin caracteres especiales y distinto del nombre de la VM.
- Password: no puede estar vacío.
- Autologon: “true” para iniciar sesión automáticamente.
Guardar y ejecutar CopyFilesToVM.ps1. El script crea la máquina virtual, instala Windows de forma desatendida, particiona la GPU y copia los archivos del driver. El proceso tarda entre 5 y 10 minutos.
¿Cómo hacer que la GPU sea utilizable en la VM?
Una vez creada la VM, instalar dentro de ella una aplicación de streaming con aceleración gráfica, como Parsec, o usar Sunshine en la VM con Moonlight en el host. Conectarse a la VM a través de esa aplicación.
Si se necesitan resoluciones y frecuencias de refresco superiores a las predeterminadas, instalar un driver de pantalla virtual dentro de la VM. El repositorio del proyecto incluye recomendaciones en la pestaña Issues.
Mantener deshabilitado el adaptador Hyper-V Video en la VM y no usar RDP ni el modo de sesión mejorada. Ambos provocan pantallas negras en la aplicación de streaming y limitan la frecuencia a 30 FPS. Una aplicación de streaming con pantalla virtual permite hasta 4K a 60 FPS.
Para verificar que funciona, abrir el Administrador de dispositivos de la VM. La GPU debe aparecer sin ningún signo de advertencia amarillo. En el host, la GPU puede mostrar un driver de Microsoft en lugar del de Nvidia, AMD o Intel. Es normal, siempre que no haya un triángulo amarillo.
¿Qué hacer después de actualizar los drivers de la GPU en el host?
Cuando se actualiza el driver de la GPU en el host, hay que reiniciar el equipo, abrir PowerShell como administrador, navegar a la carpeta de Easy-GPU-PV y ejecutar:
.\Update-VMGpuPartitionDriver.ps1 -VMName "GPUP" -GPUName "Nombre de tu GPU"
En Windows 10, usar -GPUName "AUTO". Si se omite este paso, la GPU de la VM dejará de funcionar.
Limitaciones y alternativas
GPU partitioning tiene varias restricciones. Solo funciona con máquinas virtuales de generación 2, con memoria dinámica y puntos de control deshabilitados. Además, hay que copiar los drivers cada vez que el host recibe una actualización de GPU. Si esto supone un obstáculo, existen otras vías para compartir la GPU con una VM, aunque ninguna es tan sencilla.
- Passthrough PCIe completo: ofrece el mejor rendimiento, pero no permite compartir. La VM recibe la tarjeta completa y el host pierde el acceso. Solo es viable si se dispone de varias GPU.
- Aceleración 3D de VMware Workstation y VirtualBox: traduce las llamadas gráficas del invitado a la GPU del host. Funciona para aceleración básica y cargas ligeras, pero tiene soporte limitado de DirectX y un rendimiento casi nulo en juegos.
Consejos prácticos
Si se trabaja con una GPU dedicada y otra integrada, asignar el 100% de la GPU integrada a la VM puede dar mejores resultados que dividirla al 50%. En pruebas, un reparto 50/50 en una GPU integrada hacía que la VM resultara lenta, mientras que entregar la integrada completa y usar la dedicada en el host ofrecía una experiencia notablemente más fluida.
También conviene habilitar Guest Services en la configuración de Hyper-V de la VM. No afecta al rendimiento de la GPU, pero permite compartir el portapapeles y archivos entre el host y la VM, lo que facilita el trabajo cuando se salta de uno a otro.
Descubre más desde CIBERED
Suscríbete y recibe las últimas entradas en tu correo electrónico.
