Extensión del controlador de GPU de NVIDIA para Linux

Precaución

En este artículo se hace referencia a CentOS, una distribución de Linux que está cerca de su estado Final de ciclo vida (EOL). Tenga en cuenta su uso y planifique en consecuencia. Para más información, consulte la Guía de fin de ciclo de vida de CentOS.

Esta extensión instala los controladores para GPU de NVIDIA en máquinas virtuales de la serie N de Linux. En función de la familia de VM, la extensión instala los controladores CUDA o GRID. Al instalar controladores de NVIDIA mediante esta extensión, acepta y está de acuerdo con los términos del contrato de licencia de usuario final de NVIDIA. Durante el proceso de instalación, es posible que la máquina virtual se reinicie para completar la instalación del controlador.

Hay instrucciones disponibles sobre la instalación manual de los controladores y las versiones que son compatibles actualmente. También se dispone de una extensión para instalar controladores de GPU de NVIDIA en MVs de la serie N para Windows.

Nota

Con el arranque seguro habilitado, todos los componentes de arranque del sistema operativo (cargador de arranque, kernel y controladores de kernel) deben estar firmados por editores de confianza (clave de confianza del sistema). El arranque seguro no se admite con extensiones de Windows o Linux. Para obtener más información sobre la instalación manual de controladores de GPU con el Arranque seguro habilitado, consulte Instalación de controladores de GPU de la serie N de Azure para Linux.

Nota:

Las extensiones del controlador de GPU no actualizan automáticamente el controlador después de instalar la extensión. Si necesita migrar a una versión más reciente del controlador, descargue e instale el controlador manualmente o quite la extensión y vuelva a agregarla.

Requisitos previos

Sistema operativo

Esta extensión admite las siguientes distribuciones del sistema operativo, dependiendo de la compatibilidad de controladores para la versión específica del sistema operativo:

Distribución Versión
Linux: Ubuntu 20.04 LTS
Linux: Red Hat Enterprise Linux 7.9
Linux: CentOS 7

Nota

Actualmente, los controladores para CUDA más recientes compatibles con máquinas virtuales de la serie NC son los 470.82.01. No se admiten versiones posteriores de los controladores en las tarjetas K80 de NC. Mientras se actualiza la extensión con esta finalización de la compatibilidad con NC, instale manualmente los controladores para CUDA de las tarjetas K80 de la serie NC.

Importante

En este documento, se hace referencia a una versión de lanzamiento de Linux cercana o al final del ciclo de vida (EOL). Considere la posibilidad de actualizar a una versión más actual.

Conectividad de Internet

La extensión de Microsoft Azure de los controladores para GPU de NVIDIA requiere que la máquina virtual de destino esté conectada a Internet y tenga acceso.

Esquema de extensión

En el siguiente código JSON, se muestra el esquema para la extensión:

{
  "name": "<myExtensionName>",
  "type": "extensions",
  "apiVersion": "2015-06-15",
  "location": "<location>",
  "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/', <myVM>)]"
  ],
  "properties": {
    "publisher": "Microsoft.HpcCompute",
    "type": "NvidiaGpuDriverLinux",
    "typeHandlerVersion": "1.6",
    "autoUpgradeMinorVersion": true,
    "settings": {
    }
  }
}

Propiedades

Nombre Valor/ejemplo Tipo de datos
apiVersion 2015-06-15 date
publisher Microsoft.HpcCompute string
type NvidiaGpuDriverLinux string
typeHandlerVersion 1.6 int

Configuración

Todos los parámetros son opcionales. El comportamiento predeterminado consiste en no actualizar el kernel si no es necesario para la instalación de los controladores e instalar el controlador compatible más reciente y el kit de herramientas de CUDA (según corresponda).

Nombre Descripción Valor predeterminado Valores válidos Tipo de datos
updateOS Actualice el kernel, incluso si no es necesario para la instalación del controlador. false true, false boolean
driverVersion NV: versión del controlador de GRID.
NC o ND: versión del kit de herramientas CUDA. Los controladores más recientes del CUDA elegido se instalan automáticamente.
latest Lista de versiones de controlador compatibles string
installCUDA Instale el kit de herramientas CUDA. Pertinente solo para las máquinas virtuales de la serie NC/ND. true true, false boolean

Implementación

Portal de Azure

Puede implementar extensiones de máquina virtual de Nvidia de Azure en Azure Portal.

  1. En el explorador, vaya al Portal de Azure.

  2. Vaya a la máquina virtual en la que desea instalar el controlador.

  3. En el menú izquierdo, seleccione Extensiones.

    Captura de pantalla que muestra la selección de Extensiones en el menú de Azure Portal.

  4. Seleccione Agregar.

    Captura de pantalla que muestra cómo agregar una extensión de máquina virtual para la instancia de máquina virtual seleccionada.

  5. Desplácese para buscar y seleccionar Extensión del controlador de GPU de NVIDIA y, a continuación, seleccione Siguiente.

    Captura de pantalla que muestra la selección del controlador de GPU de NVIDIA.

  6. Seleccione Revisar y crear y, después, elija Crear. Espere unos minutos a que el controlador se implemente.

    Captura de pantalla que muestra la selección del botón Revisar y crear.

  7. Compruebe que la extensión se ha agregado a la lista de extensiones instaladas.

    Captura de pantalla que muestra la nueva extensión en la lista de extensiones para la máquina virtual.

Plantilla del Administrador de recursos de Azure

Puede usar plantillas de Azure Resource Manager para implementar extensiones de máquina virtual de Azure. Las plantillas resultan ideales al implementar una o varias máquinas virtuales que requieren configurarse tras la implementación.

La configuración de JSON de una extensión de máquina virtual puede estar anidada en el recurso de máquina virtual o colocada en la raíz o nivel superior de una plantilla JSON de Resource Manager. La colocación de la configuración JSON afecta al valor del nombre y tipo del recurso. Para obtener más información, consulte el artículo sobre cómo establecer el nombre y el tipo de recursos secundarios.

En el siguiente ejemplo se da por supuesto que la extensión está anidada dentro del recurso de máquina virtual. Cuando el recurso de extensión está anidado, el archivo JSON se coloca en el objeto "resources": [] de la máquina virtual.

{
  "name": "myExtensionName",
  "type": "extensions",
  "location": "[resourceGroup().location]",
  "apiVersion": "2015-06-15",
  "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/', myVM)]"
  ],
  "properties": {
    "publisher": "Microsoft.HpcCompute",
    "type": "NvidiaGpuDriverLinux",
    "typeHandlerVersion": "1.6",
    "autoUpgradeMinorVersion": true,
    "settings": {
    }
  }
}

PowerShell

Set-AzVMExtension
    -ResourceGroupName "myResourceGroup" `
    -VMName "myVM" `
    -Location "southcentralus" `
    -Publisher "Microsoft.HpcCompute" `
    -ExtensionName "NvidiaGpuDriverLinux" `
    -ExtensionType "NvidiaGpuDriverLinux" `
    -TypeHandlerVersion 1.6 `
    -SettingString '{ `
	}'

Azure CLI

En el ejemplo siguiente se reflejan los ejemplos anteriores de Resource Manager y PowerShell,

az vm extension set \
  --resource-group myResourceGroup \
  --vm-name myVM \
  --name NvidiaGpuDriverLinux \
  --publisher Microsoft.HpcCompute \
  --version 1.6

y también se agregan dos configuraciones personalizadas opcionales de ejemplo para la instalación de los controladores no predeterminados. En concreto, actualiza el kernel del sistema operativo a la versión más reciente e instala un controlador específico para la versión del kit de herramientas CUDA. De nuevo, tenga en cuenta que --settings es opcional y un valor predeterminado. La actualización del kernel puede aumentar los tiempos de instalación de la extensión. También es posible que elija una versión del kit de herramientas de CUDA específica (una versión anterior) que no siempre es compatible con los kernels más recientes.

az vm extension set \
  --resource-group myResourceGroup \
  --vm-name myVM \
  --name NvidiaGpuDriverLinux \
  --publisher Microsoft.HpcCompute \
  --version 1.6 \
  --settings '{ \
    "updateOS": true, \
    "driverVersion": "10.0.130" \
  }'

Solución de problemas y asistencia

Solución de problemas

Puede recuperar datos sobre el estado de las implementaciones de extensiones desde Azure Portal y mediante Azure PowerShell y la CLI de Azure. Para ver el estado de implementación de las extensiones de una máquina virtual determinada, ejecute el comando siguiente:

Get-AzVMExtension -ResourceGroupName myResourceGroup -VMName myVM -Name myExtensionName
az vm extension list --resource-group myResourceGroup --vm-name myVM -o table

La salida de la ejecución de las extensiones se registra en el archivo siguiente: Consulte este archivo para realizar un seguimiento del estado de la instalación de larga duración, así como para solucionar los errores.

/var/log/azure/nvidia-vmext-status

Códigos de salida

Código de salida Significado Acción posible
0 Operación correcta
1 Uso incorrecto de la extensión. Compruebe el registro de salida de ejecución.
10 Linux Integration Services para Hyper-V y Azure no están disponibles o no están instalados Compruebe la salida de Ispci.
11 No se encuentra GPU de NVIDIA en este tamaño de VM Use un tamaño de VM y SO admitidos.
12 Oferta de imagen no compatible
13 Tamaño de máquina virtual no compatible Use una máquina virtual de la serie N para la implementación.
14 La operación no se realizó correctamente Compruebe el registro de salida de ejecución.

Soporte técnico

Si necesita más ayuda con cualquier aspecto de este artículo, póngase en contacto con los expertos de Azure en los foros de MSDN Azure o Stack Overflow. Como alternativa, puede registrar un incidente de soporte técnico de Azure. Vaya a Soporte técnico de Azure y seleccione Obtener soporte técnico. Para más información sobre el uso del soporte técnico de Azure, lea las preguntas más frecuentes del soporte técnico de Azure.

Pasos siguientes