Guía para conectar una tarjeta de video física a una máquina virtual en un host Hyper-V

Guía para conectar una tarjeta de video física a una máquina virtual en un host Hyper-V

Es posible que necesite una tarjeta de video (GPU) en una máquina virtual para tareas como OpenGL, Direct3D y CUDA. En ese caso, generalmente usamos una tarjeta de video emulada, que no tiene un rendimiento tan bueno como una GPU dedicada. Por lo tanto, en esta publicación, aprenderemos cómo conectar una tarjeta de video física a una máquina virtual en un host.

¿Cómo paso mi GPU a través de Hyper-V?

Para conectar una tarjeta de video física a una VM en un host Hyper-V, usaremos GPU Passthrough.

El paso a través de la GPU es una función avanzada que permite asignar una GPU física a una máquina virtual. Esta función es particularmente útil para aplicaciones como juegos o renderizado 3D, donde se requieren gráficos de alto rendimiento. En esta configuración, la máquina virtual obtiene acceso directo al adaptador de gráficos físico sin la sobrecarga de la emulación, lo que puede mejorar significativamente el rendimiento de los gráficos. De forma predeterminada, las máquinas virtuales en Hyper-V utilizan una tarjeta gráfica emulada, que puede no ser suficiente para tareas gráficas exigentes. Con el paso a través de la GPU, la máquina virtual puede aprovechar toda la potencia de la GPU física, lo que le permite manejar cargas de trabajo de gráficos más intensivas de manera eficiente.

¿Cuáles son los requisitos del sistema para GPU Passthrough?

Antes de continuar y configurar GPU Passthrough, asegurémonos de cumplir los siguientes requisitos previos.

Requisitos de hardware

  • Debe asegurarse de que su procesador admita la virtualización Intel-VT o AMD-V.
  • Para PCI Passthrough, su procesador debe ser compatible con una unidad de administración de memoria de entrada y salida (IOMMU).
  • Su GPU debe ser compatible con tecnologías de virtualización de GPU como NVIDIA GRID o AMD MxGPU. Estas tecnologías son específicas de cada proveedor. Las tasas de éxito se pueden mejorar utilizando hardware de clase servidor. Los dispositivos más antiguos que dependen de interrupciones PCI (INTx) no son compatibles.
  • Por último, su sistema debe admitir la virtualización de entrada/salida de raíz única.

Requisitos de software:

  • Sistema operativo: Windows Server 2016 (o posterior) o Windows 11/10.
  • Características: Hyper-V debe estar habilitado.
  • Generación de VM: La máquina virtual debe ser de Generación 2.
  • Controladores: todos los controladores de la GPU deben actualizarse a la última versión.

Limitaciones del paso a través de GPU:

Si desea utilizar GPU Passthrough, debe evitar la siguiente configuración.

  • Su máquina virtual no debería utilizar memoria dinámica.
  • GPU Passthrough solo está disponible en las ediciones más altas de Windows, como Windows Server 2019 Datacenter.
  • Si el Subsistema de Windows para Linux se implementa en el host Hyper-V, puede ocurrir un error de VM con el código 43.
  • No se admiten funciones de agrupamiento como alta disponibilidad y migración de máquinas virtuales en vivo.
  • No se admite guardar ni restaurar con puntos de control de VM.

Después de cumplir con los requisitos mencionados anteriormente, podemos aprovechar GPU Passthrough.

Conecte una tarjeta de video física a una máquina virtual en un host Hyper-V

Para conectar una tarjeta de video física a una VM en un host Hyper-V usando GPU Passthrough, siga los pasos a continuación.

  1. Habilitar la virtualización Intel-VT o AMD-V
  2. Configurar su computadora para GPU Passthrough
  3. Configurar GPU Passthrough para Windows 11/10
  4. Configurar GPU Passthrough para Windows Server

Hablemos de ellos en detalle.

1] Habilitar la virtualización Intel-VT o AMD-V

Habilitar o deshabilitar la virtualización de hardware

Como se mencionó en los requisitos previos, nuestro primer paso debe ser habilitar la virtualización de hardware. Por lo tanto, si está utilizando una CPU Intel, debe habilitar Intel-VT y, los usuarios de AMD, deben habilitar la virtualización AMD-V.

Para ello, inicie el BIOS, vaya a Configuración > Tecnología de virtualización y luego configúrelo en Habilitado, ya que estos pasos son exclusivos de HP, puede ir a la publicación vinculada para ver cómo habilitar la función para su computadora.

2] Configure su computadora para GPU Passthrough

A continuación, debemos configurar la computadora host para GPU Passthrough. Comenzamos por habilitar la virtualización de hardware, como se mencionó anteriormente. A continuación, debemos asegurarnos de que IOMMU esté habilitado y que los puntos de control automáticos estén deshabilitados.

Por lo tanto, puede consultar la guía vinculada sobre cómo habilitar la virtualización de hardware para habilitar IOMMU , pero generalmente está habilitada de forma predeterminada. Podemos abrir PowerShell y ejecutar la siguiente consulta para verificar si está habilitada.

(Get-VMHost).IovSupport; (Get-VMHost).IovSupportReasons

Si dice Verdadero, la función está habilitada, puede pasar a la siguiente configuración, pero si dice Falso, debe habilitar esta función.

Ahora, sigue adelante y elimina todos los puntos de control de tu VM y luego usa los siguientes comandos para deshabilitarla.

Get-VM Set-VM -Name NameOfVM -AutomaticStopAction TurnOff

Nota: Reemplace la variable NameOfVM con el nombre real de la máquina virtual que puede obtener ejecutando el comando anterior.

3] Configurar GPU Passthrough para Windows 11/10

Conecte una tarjeta de video física a una máquina virtual en un host Hyper-V

Primero, aprendamos cómo habilitar GPU Passthrough en los sistemas operativos cliente Windows.

Debe ejecutar el siguiente comando para verificar si su tarjeta de video admite GPU Passthrough.

Windows 11

Get-VMHostPartitionableGpu

Ventanas 10

Get-VMPartitionableGpu

A continuación, debemos copiar el controlador de gráficos del cliente host a la máquina virtual. Para simplificar el proceso, recomendamos descargar el archivo ZIP desde github.com y extraerlo en algún lugar.

Para ejecutar este script, primero debemos permitir la ejecución del script utilizando los siguientes dos comandos.

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force

Establecer política de ejecución – Política de ejecución Firmado remotamente – Ámbito Usuario actual

Después de ejecutar el comando, debe ejecutar el script con el siguiente comando. Puede ejecutarlo antes o después de agregar su máquina virtual a GPU Passthrough

.\Update-VMGpuPartitionDriver.ps1 -VMName <VMNAME> -GPUName "AUTO"

Ahora, ejecute el siguiente comando para agregar su VM a GPU Passthrough.

Set-VM -VMName VMName -GuestControlledCacheTypes $true -LowMemoryMappedIoSpace 1Gb -HighMemoryMappedIoSpace 32Gb Add-VMGpuPartitionAdapter -VMName <VMNAME>

Para eliminar la partición de la GPU, ejecute – Remove-VMGpuPartitionAdapter -VMName <VMNAME>.

4] Configurar GPU Passthrough para Windows Server

Si está utilizando Windows Server, debe ejecutar el siguiente comando en el modo elevado de PowerShell para establecer el caché y los límites para el espacio MIMO de 32 bits (3 GB para sistemas operativos de 32 bits).

Set-VM -Name VMNAME -GuestControlledCacheTypes $True -LowMemoryMappedIoSpace 3Gb -HighMemoryMappedIoSpace 33280Mb

Estos límites definen la memoria que permite que la máquina virtual acceda al dispositivo. Use un script de perfil de máquina de learn.microsoft.com para establecer límites MIMO precisos. Ajuste los valores si la máquina virtual muestra escasez de recursos; se necesitan 33280 MB para un espacio MIMO mayor a 32 bits.

A continuación, debemos comprobar la ubicación del dispositivo PCI Express. Para ello, ejecute las siguientes consultas.

Get-PnpDevice | Where-Object {$_.Present -eq $true} | Where-Object {$_.Class -eq "Display"}|select Name,InstanceId

Y

Get-PnpDevice -Class Display | ForEach-Object { Write-Output "$($_.FriendlyName) has a device id of $($_.DeviceId) and is located at $($_ | Get-PnpDeviceProperty DEVPKEY_Device_LocationPaths | Select-Object -ExpandProperty Data | Where-Object { $_ -like "PCIROOT*"})"; }

Necesitas ver dónde está ubicada tu GPU, debería ser algo como PCIROOT(0)#PCI(0200) .

Por último, siga los pasos que se mencionan a continuación.

  • Abra el Administrador de dispositivos, expanda Adaptadores de pantalla, haga clic derecho en los controladores de pantalla y haga clic en Deshabilitar dispositivo.
  • Ejecute el siguiente comando para desmontar el controlador de la GPU después de cambiar la dirección PCI.

Dismount-VmHostAssignableDevice -LocationPath "PCIROOT(0)#PCI(0200)"-Force

  • Después de cambiar la dirección PCI y el nombre de la VM, ejecute el siguiente comando para asignar un dispositivo GPU a la VM.

Add-VMAssignableDevice -VMName VMNAME -LocationPath "PCIROOT(0)#PCI(0200)"

  • Encienda la VM y busque una tarjeta de video física en el Administrador de dispositivos.
  • Instale los controladores de la tarjeta de video desde el sitio web de NVIDIA o AMD.

Si desea volver a la máquina host, apague la VM y ejecute la siguiente consulta en el dispositivo host.

Remove-VMAssignableDevice -VMName VMNAME -LocationPath $locationPath

Luego, ejecute el siguiente comando para volver a conectar la tarjeta de video al host Hyper-V.

Mount-VMHostAssignableDevice -LocationPath $locationPath

¡Eso es todo!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *