Compartir a través de


Preparación de GPU para Azure Local (versión preliminar)

Se aplica a: Azure Local, versión 23H2

En este artículo se describe cómo preparar unidades de procesamiento gráfico (GPU) en la instancia local de Azure 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 Local

Puede adjuntar las GPU de una de estas dos maneras para Azure Local:

  • 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 locales de Azure y seleccione Compatibilidad con GPU en el menú izquierdo 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 Local: 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 local de Azure debe cumplir los siguientes requisitos:

  • El sistema debe admitir una solución local de Azure con compatibilidad con GPU. Para examinar las opciones, consulte el Catálogo local de Azure.

  • Tiene acceso a Azure Local, versión 23H2.

  • Debe crear una configuración homogénea para gpu en todas las máquinas del sistema. 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 máquina del sistema. Póngase en contacto con el proveedor de hardware 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 máquina 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 hay ningún controlador instalado para cada máquina. Si hay instalado un controlador host, desinstale el controlador host y reinicie la máquina.

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, ClusterId

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 local de Azure, 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 ClusterID obtenido en el paso anterior.

$id1 = "GPU_instance_ID"
Disable-PnpDevice -ClusterId $id1 -Confirm:$false
Dismount-VMHostAssignableDevice -ClusterPath $id1 -Force

Confirme que las GPU se han desmontado correctamente de la máquina host. Las GPU ahora estarán en un Unknown estado:

Get-PnpDevice -Status Unknown | fl FriendlyName, ClusterId

Repita este proceso para cada máquina del sistema 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 máquina 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, ClusterId

Repita los pasos anteriores para cada host de Azure Local.

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 la máquina 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 a la máquina 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, ClusterId

También puede ejecutar la interfaz nvidia-smi de administración del sistema NVIDIA para enumerar las GPU en el equipo 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 todas las máquinas de Azure Local.

  1. Conéctese a la máquina cuyo recuento de particiones de GPU desea 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 máquina del sistema.

Requisitos de invitado

La administración de GPU es compatible con las siguientes cargas de trabajo de máquina virtual de Arc:

Pasos siguientes