Extension du pilote GPU NVIDIA pour Linux

Cette extension installe des pilotes GPU NVIDIA sur des machines virtuelles de série N sous Linux. En fonction de la famille de machine virtuelle, l’extension installe des pilotes CUDA ou GRID. Lorsque vous installez des pilotes NVIDIA à l’aide de cette extension, vous acceptez les conditions générales du contrat de licence utilisateur final NVIDIA. Pendant le processus d’installation, la machine virtuelle est susceptible de redémarrer pour terminer l’installation du pilote.

Des instructions sur l’installation manuelle des pilotes et les versions actuelles prises en charge sont disponibles. Une extension est également disponible pour installer des pilotes GPU NVIDIA sur Windows machines virtuelles de série N.

Remarque

Cette extension continuera d’utiliser v18.x jusqu’à ce que nous terminions le déploiement v20.x dans Q3 CY2026.

Remarque

Quand le démarrage sécurisé est activé, tous les composants de démarrage du système d’exploitation (chargeur de démarrage, noyau, pilotes du noyau) doivent être signés par des éditeurs approuvés (clé approuvée par le système). Le démarrage sécurisé n’est pas pris en charge à l’aide d’extensions Windows ou Linux. Pour plus d’informations sur l’installation manuelle des pilotes GPU avec démarrage sécurisé activé, consultez Azure configuration du pilote GPU de série N pour Linux.

Remarque

Les extensions de pilote de GPU ne mettent pas automatiquement à jour le pilote après l'installation de l'extension. Si vous devez passer à une version plus récente du pilote, téléchargez et installez manuellement le pilote ou supprimez et ajoutez à nouveau l'extension.

Remarque

Essayez l’assistance de machine virtuelle pour accélérer les diagnostics. Nous vous recommandons d’exécuter Assistance VM pour Windows ou Assistance VM pour Linux. Ces outils de diagnostic basés sur des scripts vous aident à identifier les problèmes courants qui affectent l’agent invité de machine virtuelle Azure et l’intégrité globale de la machine virtuelle.

Si vous rencontrez des problèmes de performances avec des machines virtuelles, avant de contacter le support technique, exécutez ces outils.

Prérequis

Système d’exploitation

Cette extension prend en charge les distributions de système d’exploitation suivantes, en fonction de la prise en charge par le pilote de la version spécifique du système d’exploitation :

Chauffeur Linux : Ubuntu Linux : Red Hat Enterprise Linux
CUDA 20.04 LTS 7.9
GRID 22.04 LTS
24.04 LTS
8,2

Remarque

La version prise en charge la plus récente des pilotes CUDA pour les machines virtuelles de la série NC est actuellement la version 470.82.01. Les versions ultérieures des pilotes ne sont pas prises en charge sur les cartes K80 dans la série NC. L’extension étant mise à jour avec cette fin de support pour la série NC, installez les pilotes CUDA manuellement pour les cartes K80 sur la série NC.

Important

Ce document fait référence à une version de Linux qui approche ou est en fin de vie (EOL). Envisagez une mise à jour vers une version plus récente.

Connectivité Internet

L’extension Microsoft Azure pour les pilotes GPU NVIDIA nécessite que la machine virtuelle cible soit connectée à Internet et dispose d’un accès.

Schéma d’extensions

Le JSON suivant illustre le schéma pour l’extension :

{
  "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": {
    }
  }
}

Propriétés

Nom Valeur/Exemple Type de données
apiVersion 2015-06-15 Date
éditeur Microsoft. HpcCompute chaîne
type NvidiaGpuDriverLinux chaîne
typeHandlerVersion 1.6 int

Paramètres

Tous les paramètres sont facultatifs. Le comportement par défaut consiste à ne pas mettre à jour le noyau si cela n’est pas requis pour l’installation du pilote et à installer le dernier pilote pris en charge ainsi que le kit de ressources CUDA (le cas échéant).

Nom Descriptif Valeur par défaut Valeurs valides Type de données
mettre à jour le système d'exploitation Mettre à jour le noyau, même si cela n’est pas requis pour l’installation du pilote. faux vrai, faux booléen
driverVersion NV : version du pilote GRID.
NC/ND : version du kit de ressources CUDA. Les derniers pilotes pour le CUDA choisi sont installés automatiquement.
le plus récent Liste des versions de pilote prises en charge chaîne
installCUDA Installer le kit de ressources CUDA. S’applique uniquement aux machines virtuelles de la série NC/ND. vrai vrai, faux booléen

Déploiement

portail Azure

Vous pouvez déployer Azure extensions de machine virtuelle NVIDIA dans le portail Azure.

  1. Dans un navigateur, accédez au portail Azure.

  2. Connectez-vous à la machine sur laquelle vous souhaitez installer le pilote.

  3. Dans le menu de gauche, sélectionnez Extensions.

    Screenshot qui montre la sélection des extensions dans le menu du portail Azure.

  4. Sélectionnez Ajouter.

    Capture d’écran montrant comment ajouter une extension de machine virtuelle pour la machine virtuelle sélectionnée.

  5. Faites défiler pour trouver et sélectionner l'extension du pilote GPU NVIDIA, puis sélectionnez Suivant.

    Capture d’écran montrant la sélection de l’extension de pilote GPU NVIDIA.

  6. Sélectionnez Vérifier + créer, puis Créer. Attendez quelques minutes, le temps nécessaire au déploiement du pilote.

    Capture d’écran montrant la sélection du bouton Vérifier + créer.

  7. Vérifiez que l’extension a été ajoutée à la liste des extensions installées.

    Capture d’écran montrant la nouvelle extension dans la liste des extensions pour la V M.

modèle Azure Resource Manager

Vous pouvez utiliser Azure Resource Manager modèles pour déployer des extensions de machine virtuelle Azure. Les modèles sont idéaux lorsque vous déployez une ou plusieurs machines virtuelles nécessitant une configuration post-déploiement.

La configuration JSON d’une extension de machine virtuelle peut être imbriquée à l’intérieur de la ressource de machine virtuelle ou placée à la racine ou au niveau supérieur d’un modèle JSON Resource Manager. Le positionnement de la configuration JSON affecte la valeur du nom de la ressource et son type. Pour plus d’informations, consultez Définir le nom et le type des ressources enfants.

L’exemple suivant suppose que l’extension est imbriquée dans la ressource de machine virtuelle. Lorsque la ressource d’extension est imbriquée, le JSON est placé dans l’objet "resources": [] de la machine virtuelle.

{
  "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

L’exemple suivant met en miroir les exemples Resource Manager et PowerShell précédents :

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

L'exemple suivant ajoute également deux paramètres personnalisés facultatifs à titre d'exemple pour une installation de pilote non par défaut. Plus précisément, il met à jour le noyau du système d’exploitation vers la dernière version et installe un pilote de la version spécifique du kit de ressources CUDA. Là encore, notez que les paramètres --settings sont facultatifs et définis par défaut. La mise à jour du noyau peut accroître la durée d’installation de l’extension. Il se peut également que le choix d’une version spécifique (antérieure) du kit de ressources CUDA ne soit pas toujours compatible avec les noyaux plus récents.

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" \
  }'

Dépannage et support technique

Dépannage

Vous pouvez récupérer des données sur l’état des déploiements d’extensions à partir du portail Azure et à l’aide de Azure PowerShell et du Azure CLI. Pour voir l’état du déploiement des extensions pour une machine virtuelle donnée, exécutez la commande suivante :

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

La sortie de l’exécution de l’extension est enregistrée dans le fichier suivant. Consultez ce fichier pour suivre l’état de toute installation de longue durée et pour résoudre les éventuels échecs.

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

Codes de sortie

Code de sortie Signification Action possible
0 L’opération a réussi
1 Utilisation incorrecte de l’extension Vérifiez le log d'exécution.
10 Services d’intégration Linux pour Hyper-V et Azure non disponibles ou installés Vérifiez la sortie d’lspci.
11 GPU NVIDIA introuvable sur cette taille de machine virtuelle Utilisez une taille de VM et un système d'exploitation compatible.
12 Offre d’image non prise en charge
13 Taille de machine virtuelle non prise en charge Utilisez une machine virtuelle de série N pour le déploiement.
14 Échec de l’opération Vérifiez le log d'exécution.

Problèmes connus

  1. Le pilote GRID 16.x et 17.x rencontrent des problèmes d’installation sur Azure noyau 6.11. Nvidia travaille à résoudre ce problème, en attendant, rétrograder le noyau Azure à la version 6.8 en suivant ces étapes. Essayez de réinstaller les pilotes manuellement ou à l’aide d’une extension après avoir rétrogradé le noyau sur 6.8.
// Get the installed kernel. If kernel 6.11 is installed,  downgrade it to 6.8.
uname -a

// Install  kernel 6.8. Note that kernel  6.11  is not supported.
$ sudo apt install linux-image-6.8.0-1015-azure

// Get the list of installed kernels.
dpkg --list | egrep -i --color 'linux-image|linux-headers|linux-modules' | awk '{ print $2 }'

// Uninstall any 6.11 kernels.
sudo apt purge linux-headers-6.11.0-1013-azure  linux-image-6.11.0-1013-azure  linux-modules-6.11.0-1013-azure

// Run the following command to ensure only 6.8 images, headers, and modules are installed and no other versions are present.
dpkg --list | egrep -i --color 'linux-image|linux-headers|linux-modules' | awk '{ print $2 }'

// Results from the previous command:
linux-headers-6.8.0-1015-azure
linux-image-6.8.0-1015-azure
linux-modules-6.8.0-1015-azure

// Open the grub settings and modify the GRUB_DEFAULT="0" to GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 6.8.0-1015-azure".
$ sudo vim /etc/default/grub 
 
// The grub file will look like the following:
GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 6.8.0-1015-azure"
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
///////////////////

// Update GRUB and reboot.
$ sudo update-grub && sudo update-grub2
$ sudo reboot

// Reinstall the driver after reboot.
  1. NvidiaGpuDriverLinux installe actuellement les derniers 17.5 pilotes GRID, lesquels ont actuellement des problèmes avec CUDA sur la série A10. NVIDIA travaille à la résolution de ce problème, en attendant, utilisez le pilote 16.5 GRID en passant un paramètre d’exécution à l’extension.
az vm extension set  --resource-group <rg-name> --vm-name <vm-name>  --name NvidiaGpuDriverLinux --publisher Microsoft.HpcCompute --settings "{'driverVersion':'535.161'}"
{
  "name": "NvidiaGpuDriverLinux",
  "type": "extensions",
  "apiVersion": "2015-06-15",
  "location": "<location>",
  "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/', <myVM>)]"
  ],
  "properties": {
    "publisher": "Microsoft.HpcCompute",
    "type": "NvidiaGpuDriverLinux",
    "typeHandlerVersion": "1.11",
    "autoUpgradeMinorVersion": true,
    "settings": {
         "driverVersion": "535.161"
    }
  }
}
  1. La version du pilote GRID 17.x est incompatible sur NVv3 (NVIDIA Tesla M60). les pilotes grid jusqu’à la version 16.5 sont pris en charge. NvidiaGpuDriverLinux installe les derniers pilotes qui sont incompatibles avec la SKU NVv3. Utilisez plutôt les paramètres d’exécution suivants pour forcer l’extension à installer une version antérieure du pilote. Pour plus d’informations sur les versions du pilote, consultez ressources GPU NVIDIA.
az vm extension set  --resource-group <rg-name> --vm-name <vm-name>  --name NvidiaGpuDriverLinux --publisher Microsoft.HpcCompute --settings "{'driverVersion':'535.161'}"
{
  "name": "NvidiaGpuDriverLinux",
  "type": "extensions",
  "apiVersion": "2015-06-15",
  "location": "<location>",
  "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/', <myVM>)]"
  ],
  "properties": {
    "publisher": "Microsoft.HpcCompute",
    "type": "NvidiaGpuDriverLinux",
    "typeHandlerVersion": "1.11",
    "autoUpgradeMinorVersion": true,
    "settings": {
         "driverVersion": "535.161"
    }
  }
}
  1. Le pilote Linux Grid 17.5 a un bogue dans lequel il a un impact sur la charge de travail associée à CUDA. La signature d’erreur implique généralement des appareils CUDA indisponibles. Bien que Azure travaille à résoudre ce problème, utilisez le pilote GRID 16.5 pour continuer à exécuter votre charge de travail.

Soutien

Si vous avez besoin d’aide supplémentaire à tout moment dans cet article, contactez les experts Azure sur les forums MSDN Azure et Stack Overflow. Vous pouvez également déposer un incident support Azure. Accédez à support Azure et sélectionnez Obtenir du support. Pour plus d’informations sur l’utilisation de support Azure, lisez la faq support Azure.

Étapes suivantes