Cómo conectar una tarjeta de vídeo física a una máquina virtual en un host Hyper-V

Jhon
Jhon


Es posible que necesite una tarjeta de vídeo (GPU) en una máquina virtual para tareas como OpenGL, Direct3D y CUDA. En este caso, normalmente utilizamos una tarjeta de vídeo emulada, que no es tan buena como un médico de cabecera dedicado. Por tanto, en este post, aprenderemos a hacerlo conecte una tarjeta de vídeo física a una máquina virtual en un host.

¿Cómo puedo pasar mi GPU por Hyper-V?

Para conectar una tarjeta de vídeo física a una máquina virtual en un host Hyper-V, utilizaremos Passthrough de la GPU.

El paso de GPU es una característica avanzada que le permite asignar una GPU física a una máquina virtual. Esta característica resulta especialmente útil para aplicaciones tales como juegos o renderización 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 emulación, lo que puede mejorar significativamente el rendimiento de los gráficos. De forma predeterminada, las máquinas virtuales de Hyper-V utilizan una tarjeta gráfica emulada, que puede que no sea suficiente para tareas gráficas exigentes. Con el paso de la GPU, la máquina virtual puede aprovechar toda la potencia de la GPU física, lo que le permite gestionar cargas de trabajo de gráficos más intensas de forma eficiente.

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

Antes de continuar y configurar la GPU Passthrough, asegúrese de cumplir los siguientes requisitos previos.

Requisitos de hardware

  • Debe asegurarse de que su procesador es compatible Intel-VT o Virtualización AMD-V.
  • Para PCI Passthrough, su procesador debe soportar un Unidad de gestión de memoria de entrada-salida (IOMMU).
  • Su GPU debe soportar tecnologías de virtualización de GPU tales como NVIDIA GRID o AMD MxGPU. Estas tecnologías son específicas para proveedores individuales. Las tasas de éxito se pueden mejorar utilizando hardware de clase servidor. Los dispositivos antiguos basados ​​en interrupciones PCI (INTx) no son compatibles.
  • Por último, su sistema debería ser compatible 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 debería ser la generación 2.
  • Conductores: Todos los controladores de la GPU deben actualizarse a la última versión.

Limitaciones de la GPU Passthrough:

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

  • Su máquina virtual no debería utilizar la memoria dinámica.
  • GPU Passthrough sólo está disponible en las ediciones más altas de Windows, como Windows Server 2019 Datacenter.
  • Si el subsistema de Windows para Linux se despliega en el sistema principal Hyper-V, puede producirse un error de VM con el código 43.
  • No se admiten funciones de clúster como la alta disponibilidad y la migración de VM en directo.
  • Guardar y restaurar con puntos de control de VM no se admiten.

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

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

Para conectar una tarjeta de vídeo física a una máquina virtual de un anfitrión Hyper-V mediante GPU Passthrough, siga los pasos siguientes.

  1. Habilite la virtualización Intel-VT o AMD-V
  2. Configura tu ordenador para la GPU Passthrough
  3. Configure GPU Passthrough para Windows 11/10
  4. Configure GPU Passthrough para Windows Server

Hablemos con detalle.

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

Como se ha mencionado en los requisitos previos, nuestro primer paso debería ser habilitar la virtualización de hardware. Por tanto, si utiliza una CPU Intel, debería habilitar Intel-VT y los usuarios de AMD deberían habilitar la virtualización AMD-V.

Para ello, arranque a la BIOS, vaya a Configuración > Tecnología de virtualización, y, a continuación, configúrelo como Habilidad, ya que estos pasos son exclusivos de HP, puede ir a la publicación enlazada para ver cómo habilitar la función para su ordenador.

Lee: ¿Cómo habilitar o desactivar la virtualización anidada para máquinas virtuales en Hyper-V?

2]Configura tu ordenador para GPU Passthrough

A continuación, debemos configurar el ordenador anfitrión para la GPU Passthrough. Empezamos habilitando la virtualización de hardware, como se ha mencionado anteriormente. A continuación, debemos asegurarnos de que IOMMU esté habilitado y que los puntos de control automáticos estén desactivados.

Por tanto, puede consultar la guía enlazada para habilitar la virtualización de hardware habilite IOMMUpero normalmente está activado por defecto. Podemos abrir PowerShell y ejecute la siguiente consulta para comprobar si está habilitado.

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

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

Ahora, siga adelante y suprima todos los puntos de control de su máquina virtual y, a continuación, utilice los mandatos siguientes para desactivarla.

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

Nota: Sustituya la variable NameOfVM por el nombre real de la máquina virtual que puede obtener ejecutando el mandato anterior.

Lee: ¿Cómo habilitar Hyper-V en Windows 365 Cloud PC?

3]Configure GPU Passthrough para Windows 11/10

conecte una tarjeta de vídeo física a una máquina virtual en un host Hyper-V

En primer lugar, aprendamos cómo habilitar el paso de GPU a los sistemas operativos de cliente Windows.

Debe ejecutar el mandato siguiente para comprobar si su tarjeta de vídeo admite GPU Passthrough.

Windows 11

Get-VMHostPartitionableGpu

Windows 10

Get-VMPartitionableGpu

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

Para ejecutar este script, primero debemos permitir la ejecución del script mediante las dos órdenes siguientes.

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Después de ejecutar el mandato, debe ejecutar el script mediante el mandato siguiente. Puede ejecutarlo antes y/o después de añadir su VM a la GPU Passthrough

.\Update-VMGpuPartitionDriver.ps1 -VMName  -GPUName "AUTO"

Nota: Asegúrese de añadir el camino del script y . En mi caso, el script sería C:\Users\yusuf\Downloads\Easy-GPU-PV-main\Easy-GPU-PV-main\Update-VMGpuPartitionDriver.ps1 -VMName Ubuntu -GPUName “AUTO”.

Ahora, ejecute el mandato siguiente, añada su VM a GPU Passthrough.

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

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

4]Configure GPU Passthrough para Windows Server

Si utiliza Windows Server, debe ejecutar el mandato siguiente en el modo elevado de PowerShell para establecer la memoria 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 el acceso de la VM al dispositivo. Utilice un script de perfil de máquina de learn.microsoft.com para establecer límites MIMO precisos. Ajuste los valores si la VM muestra escasez de recursos; Se necesita 33280 MB para un espacio MIMO superior 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*" })"; }

Debe ver dónde se encuentra su GPU, debería ser algo así PCIROOT(0)#PCI(0200).

Por último, siga los pasos mencionados a continuación.

  • Abra el Gestor de dispositivos, expanda Adaptadores de pantalla, haga clic con el botón derecho en los controladores de pantalla y haga clic en Desactiva el dispositivo.
  • Ejecute el mandato siguiente 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 máquina virtual, ejecute el mandato siguiente para asignar un dispositivo GPU a la máquina virtual.
Add-VMAssignableDevice -VMName VMNAME -LocationPath "PCIROOT(0)#PCI(0200)"
  • Encienda la máquina virtual y compruebe si hay una tarjeta de vídeo física en el Gestor de dispositivos.
  • Instale los controladores de la tarjeta de vídeo desde el sitio web de NVIDIA o AMD.

Si desea volver a la máquina anfitrión, apague la máquina virtual y ejecute la siguiente consulta al dispositivo anfitrión.

Remove-VMAssignableDevice -VMName VMNAME -LocationPath $locationPath

A continuación, ejecute el mandato siguiente para volver a conectar la tarjeta de vídeo al host Hyper-V.

Mount-VMHostAssignableDevice -LocationPath $locationPath

¡Eso es todo!

Lea también: Configura el servidor de kernel seguro para Windows Server.



Source link

Deja una respuesta

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