Preparación de GPU para Azure Stack HCI (versión preliminar)
Se aplica a: Azure Stack HCI, versión 23H2
En este artículo se describe cómo preparar unidades de procesamiento gráfico (GPU) para Azure Stack HCI para cargas de trabajo con un uso intensivo de cálculos que se ejecutan en máquinas virtuales (VM) de Arc y AKS habilitadas por Azure Arc. Las GPU se usan para cargas de trabajo que consumen muchos cálculos, como el aprendizaje automático y el aprendizaje profundo.
Importante
Esta característica actualmente está en VERSIÓN PRELIMINAR. Consulte Términos de uso complementarios para las versiones preliminares de Microsoft Azure para conocer los términos legales que se aplican a las características de Azure que se encuentran en la versión beta, en versión preliminar o que todavía no se han publicado para que estén disponibles con carácter general.
Asociación de GPU en Azure Stack HCI
Puede adjuntar las GPU de una de estas dos maneras para Azure Stack HCI:
Asignación discreta de dispositivos (DDA): permite dedicar una GPU física a la carga de trabajo. En las implementaciones de DDA, las cargas de trabajo virtualizadas se ejecutan en el controlador nativo y normalmente tienen acceso total a la funcionalidad de la GPU. DDA ofrece el mayor nivel de compatibilidad de aplicaciones y rendimiento potencial.
Creación de particiones de GPU (GPU-P): permite compartir una GPU con varias cargas de trabajo dividiendo la GPU en particiones fraccionarios dedicadas.
Tenga en cuenta la siguiente funcionalidad y admita las diferencias entre las dos opciones de uso de las GPU:
Descripción | Asignación discreta de dispositivos | Creación de particiones de GPU |
---|---|---|
Modelo de recurso de GPU | Todo el dispositivo | Dispositivo con particiones iguales |
Densidad de máquinas virtuales | Bajo (una GPU a una máquina virtual) | Alto (una GPU a varias máquinas virtuales) |
Compatibilidad de aplicaciones | Todas las funcionalidades de GPU proporcionadas por el proveedor (DX 12, OpenGL, CUDA) | Todas las funcionalidades de GPU proporcionadas por el proveedor (DX 12, OpenGL, CUDA) |
VRAM de GPU | Hasta la VRAM que admita la GPU | Hasta la VRAM compatible con la GPU por partición |
Controlador de GPU en invitado | Controlador de proveedor de GPU (NVIDIA) | Controlador de proveedor de GPU (NVIDIA) |
Modelos de GPU admitidos
Para ver la lista completa de soluciones admitidas y GPU disponibles, consulte Soluciones de Azure Stack HCI y seleccione Compatibilidad con GPU en el menú de la izquierda para ver las opciones.
NVIDIA admite sus cargas de trabajo por separado con su software de GPU virtual. Para obtener más información, consulte Microsoft Azure Stack HCI: GPU nvidia compatibles y plataformas de servidor validadas.
Para las cargas de trabajo de AKS, consulte GPU para AKS for Arc.
Los siguientes modelos de GPU se admiten mediante cargas de trabajo DDA y GPU-P para máquinas virtuales arc:
- NVIDIA A2
- NVIDIA A16
Estos modelos adicionales de GPU se admiten mediante GPU-P (solo) para cargas de trabajo de máquinas virtuales arc:
- NVIDIA A10
- NVIDIA A40
- NVIDIA L4
- NVIDIA L40
- NVIDIA L40S
Requisitos del host
El host de Azure Stack HCI debe cumplir los siguientes requisitos:
El sistema debe admitir una solución de Azure Stack HCI con compatibilidad con GPU. Para examinar las opciones, consulte el catálogo de Azure Stack HCI.
Tiene acceso a un clúster de Azure Stack HCI, versión 23H2.
Debe crear una configuración homogénea para las GPU en todos los servidores del clúster. Una configuración homogénea consiste en instalar la misma marca y modelo de GPU.
Para GPU-P, asegúrese de que la compatibilidad con la virtualización y SR-IOV están habilitadas en el BIOS de cada servidor del clúster. Póngase en contacto con el proveedor del sistema si no puede identificar la configuración correcta en el BIOS.
Preparación de controladores de GPU en cada host
El proceso para preparar e instalar controladores de GPU para cada servidor host difiere un poco entre DDA y GPU-P. Siga el proceso aplicable para su situación.
Búsqueda de GPU en cada host
En primer lugar, asegúrese de que no haya ningún controlador instalado para cada servidor host. Si hay instalado un controlador host, desinstale el controlador host y reinicie el servidor.
Después de desinstalar el controlador host o si no tiene ningún controlador instalado, ejecute PowerShell como administrador con el siguiente comando:
Get-PnpDevice -Status Error | fl FriendlyName, InstanceId
Debería ver que los dispositivos gpu aparecen en un estado de error como 3D Video Controller
se muestra en la salida de ejemplo que muestra el nombre descriptivo y el identificador de instancia de la GPU:
[ASRR1N26R02U46A]: PS C:\Users\HCIDeploymentUser\Documents> Get-PnpDevice - Status Error
Status Class FriendlyName
------ ----- ------------
Error SD Host Controller
Error 3D Video Controller
Error 3D Video Controller
Error USB Unknown USB Device (Device Descriptor Request Failed)
[ASRR1N26R02U46A]: PS C:\Users\HCIDeploymentUser\Documents> Get-PnpDevice - Status Error | f1 InstanceId
InstanceId : PCI\VEN_8086&DEV_18DB&SUBSYS_7208086REV_11\3&11583659&0&E0
InstanceId : PCI\VEN_10DE&DEV_25B6&SUBSYS_157E10DE&REV_A1\4&23AD3A43&0&0010
InstanceId : PCI\VEN_10DE&DEV_25B6&SUBSYS_157E10DE&REV_A1\4&17F8422A&0&0010
InstanceId : USB\VID_0000&PID_0002\S&E492A46&0&2
Uso de DDA
Siga este proceso si usa DDA:
1. Deshabilitar y desmontar GPU del host
Para DDA, al desinstalar el controlador host o tener una nueva configuración del clúster de Azure Stack HCI, la GPU física entra en un estado de error. Debe desmontar todos los dispositivos gpu para continuar. Puede usar Administrador de dispositivos o PowerShell para deshabilitar y desmontar la GPU mediante el InstanceID
obtenido en el paso anterior.
$id1 = "GPU_instance_ID"
Disable-PnpDevice -InstanceId $id1 -Confirm:$false
Dismount-VMHostAssignableDevice -InstancePath $id1 -Force
Confirme que las GPU se han desmontado correctamente del host. Las GPU ahora estarán en un Unknown
estado:
Get-PnpDevice -Status Unknown | fl FriendlyName, InstanceId
Repita este proceso para cada servidor del clúster de Azure Stack HCI para preparar las GPU.
2. Descargar e instalar el controlador de mitigación
El software puede incluir componentes desarrollados y propiedad de NVIDIA Corporation o sus licenciantes. El uso de estos componentes se rige por el contrato de licencia de usuario final de NVIDIA.
Consulte la documentación de NVIDIA para descargar el controlador de mitigación de NVIDIA aplicable. Después de descargar el controlador, expanda el archivo e instale el controlador de mitigación en cada servidor host. Use el siguiente script de PowerShell para descargar el controlador de mitigación y extraerlo:
Invoke-WebRequest -Uri "https://docs.nvidia.com/datacenter/tesla/gpu-passthrough/nvidia_azure_stack_inf_v2022.10.13_public.zip" -OutFile "nvidia_azure_stack_inf_v2022.10.13_public.zip"
mkdir nvidia-mitigation-driver
Expand-Archive .\nvidia_azure_stack_inf_v2022.10.13_public.zip .\nvidia-mitigation-driver
Una vez extraídos los archivos del controlador de mitigación, busque la versión del modelo correcto de la GPU e instálelo. Por ejemplo, si va a instalar un controlador de mitigación de NVIDIA A2, ejecute lo siguiente:
pnputil /add-driver nvidia_azure_stack_A2_base.inf /install /force
Para confirmar la instalación de estos controladores, ejecute:
pnputil /enum-devices OR pnputil /scan-devices
Debería poder ver las GPU identificadas correctamente en Get-PnpDevice
:
Get-PnpDevice -Class Display | fl FriendlyName, InstanceId
Repita los pasos anteriores para cada host del clúster de Azure Stack HCI.
Uso de GPU-P
Siga este proceso si usa GPU-P:
Descarga e instalación del controlador host
GPU-P requiere controladores en el nivel de host que difieren de DDA. Para las GPU nvidia, necesitará un controlador de gráficos gráficos de software de NVIDIA vGPU en cada host y en cada máquina virtual que usará GPU-P. Para obtener más información, consulte la versión más reciente de la documentación de NVIDIA vGPU y detalles sobre las licencias en la Guía de usuario de licencias de cliente.
Después de identificar las GPU como 3D Video Controller
en el servidor host, descargue el controlador vGPU del host. A través de la licencia de NVIDIA GRID, debería poder obtener el archivo .zip del controlador host adecuado.
Deberá obtener y mover la siguiente carpeta al servidor host: \vGPU_<Your_vGPU_version_GA_Azure_Stack_HCI_Host_Drivers>
Vaya a \vGPU_<Your_vGPU_version>_GA_Azure_Stack_HCI_Host_Drivers\Display.Driver e instale el controlador.
pnputil /add-driver .\nvgridswhci.inf /install /force
Para confirmar la instalación de estos controladores, ejecute:
pnputil /enum-devices
Debería poder ver las GPU identificadas correctamente en Get-PnpDevice
:
Get-PnpDevice -Class Display | fl FriendlyName, InstanceId
También puede ejecutar la interfaz nvidia-smi
de administración del sistema NVIDIA para enumerar las GPU en el servidor host de la siguiente manera:
nvidia-smi
Si el controlador está instalado correctamente, verá una salida similar a la del ejemplo siguiente:
Wed Nov 30 15:22:36 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 527.27 Driver Version: 527.27 CUDA Version: N/A |
|-------------------------------+----------------------+----------------------+
| GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA A2 WDDM | 00000000:65:00.0 Off | 0 |
| 0% 24C P8 5W / 60W | 15192MiB / 15356MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
| 1 NVIDIA A2 WDDM | 00000000:66:00.0 Off | 0 |
| 0% 24C P8 5W / 60W | 15192MiB / 15356MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
Configuración del recuento de particiones de GPU
Siga estos pasos para configurar el recuento de particiones de GPU en PowerShell:
Nota:
Al usar PowerShell, debe asegurarse manualmente de que la configuración de GPU es homogénea en todos los servidores del clúster de Azure Stack HCI.
Conéctese al servidor cuyo número de particiones de GPU quiera configurar.
Ejecute el
Get-VMHostPartitionableGpu
comando y consulte los valores Name y ValidPartitionCounts .Ejecute el comando siguiente para configurar el número de particiones. Reemplace
GPU-name
con el valor Nombre ypartition-count
por uno de los números admitidos del valor ValidPartitionCounts:Set-VMHostPartitionableGpu -Name "<GPU-name>" -PartitionCount <partition-count>
Por ejemplo, el siguiente comando configura el recuento de particiones en
4
:PS C:\Users> Set-VMHostPartitionableGpu -Name "\\?\PCI#VEN_10DE&DEV_25B6&SUBSYS_157E10DE&REV_A1#4&18416dc3&0&0000#{064092b3-625e-43bf-9eb5-dc845897dd59}" -PartitionCount 4
Puede volver a ejecutar el comando
Get-VMHostPartitionableGpu | FL Name,ValidPartitionCounts,PartitionCount
para comprobar que el recuento de particiones está establecido en4
.Este es una salida de ejemplo:
PS C:\Users> Get-VMHostPartitionableGpu | FL Name,ValidPartitionCounts,PartitionCount Name : \\?\PCI#VEN_10DE&DEV_25B6&SUBSYS_157E10DE&REV_A1#4&18416dc3&0&0000#{064092b3-625e-43bf-9eb5-dc845897dd59} ValidPartitionCounts : {16, 8, 4, 2...} PartitionCount : 4 Name : \\?\PCI#VEN_10DE&DEV_25B6&SUBSYS_157E10DE&REV_A1#4&5906f5e&0&0010#{064092b3-625e-43bf-9eb5-dc845897dd59} ValidPartitionCounts : {16, 8, 4, 2...} PartitionCount : 4
Para mantener la configuración homogénea, repita los pasos de configuración de recuento de particiones en cada servidor del clúster de Azure Stack HCI.
Requisitos de invitado
La administración de GPU es compatible con las siguientes cargas de trabajo de máquina virtual de Arc:
Máquinas virtuales de segunda generación
Un sistema operativo de 64 bits compatible, tal y como se detalla en la versión más reciente de los productos compatibles con NVIDIA vGPU