Compartir a través de


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.

  1. Conéctese al servidor cuyo número de particiones de GPU quiera configurar.

  2. Ejecute el Get-VMHostPartitionableGpu comando y consulte los valores Name y ValidPartitionCounts .

  3. Ejecute el comando siguiente para configurar el número de particiones. Reemplace GPU-name con el valor Nombre y partition-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 en 4.

    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
    
  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:

Pasos siguientes