Freigeben über


NVIDIA-GPU-Treibererweiterung für Linux

Diese Erweiterung installiert NVIDIA-GPU-Treiber auf virtuellen Linux-Computern (VMs) der N-Serie. Je nach VM-Familie installiert die Erweiterung CUDA- oder GRID-Treiber. Bei der Installation von NVIDIA Treibern mit dieser Erweiterung akzeptieren Sie die Bedingungen des NVIDIA-Endbenutzer-Lizenzvertrags und stimmen diesen zu. Während der Installation wird der virtuelle Computer möglicherweise neu gestartet, um die Treibereinrichtung abzuschließen.

Es sind Anleitungen für die manuelle Installation der Treiber und aktuell unterstützten Versionen verfügbar. Es ist auch eine Erweiterung zum Installieren von NVIDIA-GPU-Treibern auf Windows-VMs der N-Serie verfügbar.

Hinweis

Bei aktiviertem sicherem Start müssen alle Betriebssystem-Startkomponenten (Startladeprogramm, Kernel, Kerneltreiber) von vertrauenswürdigen Herausgebern signiert werden (Schlüssel, denen das System vertraut). Sicherer Start wird bei Verwendung von Windows- oder Linux-Erweiterungen nicht unterstützt. Weitere Informationen zum manuellen Installieren von GPU-Treibern mit aktiviertem sicheren Start finden Sie unter Einrichten von GPU-Treibern de rAzure N-Serie für Linux.

Hinweis

Die GPU-Treibererweiterungen aktualisieren den Treiber nicht automatisch, nachdem die Erweiterung installiert wurde. Wenn Sie zu einer neueren Treiberversion wechseln müssen, laden Sie den Treiber entweder manuell herunter, installieren Sie den Treiber, oder entfernen Sie die Erweiterung, und fügen Sie sie erneut hinzu.

Voraussetzungen

Betriebssystem

Diese Erweiterung unterstützt die folgenden Betriebssystem-Distributionen, abhängig von der Treiberunterstützung für bestimmte BS-Versionen:

Distribution Version
Linux: Ubuntu 20.04 LTS
Linux: Red Hat Enterprise Linux 7.9

Hinweis

Die neueste unterstützte CUDA-Treiberversion für VMs der NC-Serie ist derzeit 470.82.01. Neuere Treiberversionen werden auf den K80-Karten in NC nicht unterstützt. Während die Erweiterung mit dem Ende des Supports für NC aktualisiert wird, installieren Sie die CUDA-Treiber für K80-Karten der NC-Serie manuell.

Wichtig

Dieses Dokument verweist auf eine Releaseversion von Linux, die sich dem Ende des Lebenszyklus (End of Life, EOL) nähert oder es erreicht hat. Erwägen Sie ein Update auf eine aktuellere Version.

Internetkonnektivität

Die Microsoft Azure-Erweiterung für NVIDIA-GPU-Treiber erfordert, dass der virtuelle Zielcomputer mit dem Internet verbunden ist und Zugriff hat.

Erweiterungsschema

Der folgende JSON-Code zeigt das Schema für die Erweiterung:

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

Eigenschaften

Name Beispiel/Wert Datentyp
apiVersion 2015-06-15 date
publisher Microsoft.HpcCompute Zeichenfolge
type NvidiaGpuDriverLinux Zeichenfolge
typeHandlerVersion 1.6 INT

Einstellungen

Alle Einstellungen sind optional. Das Standardverhalten ist, den Kernel nicht zu aktualisieren, wenn dies für die Treiberinstallation nicht erforderlich ist, und den neuesten unterstützten Treiber und das CUDA-Toolkit (falls zutreffend) zu installieren.

Name Beschreibung Standardwert Gültige Werte Datentyp
updateOS Aktualisieren Sie den Kernel, auch wenn dies nicht für die Treiberinstallation erforderlich ist. false true, false boolean
driverVersion NV: GRID-Treiberversion.
NC/ND: CUDA-Toolkitversion. Die neuesten Treiber für den ausgewählten CUDA werden automatisch installiert.
latest Liste der unterstützten Treiberversionen Zeichenfolge
installCUDA UDA-Toolkit installieren. Nur relevant für virtuelle Computer der NC-/ND-Serie. true true, false boolean

Bereitstellung

Azure-Portal

Sie können Azure Nvidia-VM-Erweiterungen im Azure-Portal bereitstellen.

  1. Wechseln Sie in einem Browser zum Azure-Portal.

  2. Navigieren Sie zu der VM, auf der Sie den Treiber installieren möchten.

  3. Wählen Sie im Menü auf der linken Seite die Option Erweiterungen aus.

    Screenshot: Auswahl von Erweiterungen im Menü des Azure-Portals.

  4. Wählen Sie Hinzufügen.

    Screenshot: Hinzufügen einer VM-Erweiterung für die ausgewählte VM.

  5. Scrollen Sie zu NVIDIA GPU-Treibererweiterung, wählen Sie sie aus, und wählen Sie dann Weiter aus.

    Screenshot: Auswählen der NVIDIA GPU-Treibererweiterung

  6. Wählen Sie Überprüfen + erstellen und dann Erstellen aus. Warten Sie einige Minuten, bis der Treiber bereitgestellt ist.

    Screenshot: Auswählen der Schaltfläche „Überprüfen und Erstellen“

  7. Bestätigen Sie, dass die Erweiterung der Liste der installierten Erweiterungen hinzugefügt wird.

    Screenshot: Neue Erweiterung in der Liste der Erweiterungen für die VM

Azure Resource Manager-Vorlage

Sie können Azure-VM-Erweiterungen mithilfe von Azure Resource Manager-Vorlagen bereitstellen. Vorlagen sind ideal, wenn Sie einen oder mehrere virtuelle Computer bereitstellen, die nach der Bereitstellung konfiguriert werden müssen.

Die JSON-Konfiguration für eine VM-Erweiterung kann innerhalb der VM-Ressource geschachtelt oder im Stamm bzw. auf der obersten Ebene einer Resource Manager-JSON-Vorlage platziert werden. Die Platzierung der JSON-Konfiguration wirkt sich auf den Wert von Name und Typ der Ressource aus. Weitere Informationen finden Sie unter Set name and type for child resources (Festlegen von Name und Typ für untergeordnete Ressourcen).

Im folgenden Beispiel wird davon ausgegangen, dass die Erweiterung in der VM-Ressource geschachtelt ist. Wenn die Erweiterungsressource geschachtelt wird, wird der JSON-Code im "resources": []-Objekt des virtuellen Computers platziert.

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

Das folgende Beispiel spiegelt die obigen Beispiele für Resource Manager und PowerShell.

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

Außerdem werden zwei optionale benutzerdefinierte Einstellungen als Beispiel für die Installation von Nicht-Standard-Treibern hinzugefügt. Insbesondere wird der Betriebssystemkernel auf die neueste Version aktualisiert und ein bestimmter CUDA-Toolkit-Versionstreiber installiert. Auch hier ist zu beachten, dass --settings optional und Standard sind. Die Aktualisierung des Kernels kann die Installationszeiten für Erweiterungen verlängern. Außerdem ist die Auswahl einer bestimmten (älteren) CUDA-Toolkit-Version möglicherweise nicht immer mit neueren Kernels kompatibel.

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

Problembehandlung und Support

Problembehandlung

Sie können Daten zum Status von Erweiterungsbereitstellungen über das Azure-Portal und mithilfe von Azure PowerShell und Azure-Befehlszeilenschnittstelle abrufen. Führen Sie den folgenden Befehl aus, um den Bereitstellungsstatus von Erweiterungen für einen bestimmten virtuellen Computer anzuzeigen:

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

Die Ausgabe der Erweiterungsausführung wird in der folgenden Datei protokolliert. In dieser Datei finden Sie Informationen zum Nachverfolgen des Status von Installationen mit langer Laufzeit sowie zur Problembehandlung.

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

Exitcodes

Exitcode Bedeutung Mögliche Aktion
0 Vorgang erfolgreich
1 Falsche Verwendung der Erweiterung Überprüfen Sie das Ausführungsausgabeprotokoll.
10 Linux Integration Services für Hyper-V und Azure nicht verfügbar oder nicht installiert Überprüfen Sie die lspci-Ausgabe.
11 NVIDIA-GPU kann bei dieser VM-Größe nicht gefunden werden. Verwenden Sie eine VM-Größe und ein Betriebssystem, die unterstützt werden.
12 Imageangebot nicht unterstützt
13 VM-Größe nicht unterstützt Verwenden Sie einen virtuellen Computer der N-Serie für die Bereitstellung.
14 Vorgang nicht erfolgreich Überprüfen Sie das Ausführungsausgabeprotokoll.

Bekannte Probleme

  1. NvidiaGpuDriverLinux kann derzeit die neuesten 17.x-GRID-Treiber aufgrund von Zertifikatproblemen nicht installieren. Verwenden Sie, während Azure an der Behebung dieses Problems arbeitet, den GRID-Treiber 16.5, indem Sie eine Runtimeeinstellung an die Erweiterung übergeben.
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. Die GRID-Treiberversion 17.x ist nicht mit NVv3 (NVIDIA Tesla M60) kompatibel. GRID-Treiber bis zur Version 16.5 werden unterstützt. NvidiaGpuDriverLinux installiert die neuesten Treiber, die mit der NVv3-SKU nicht kompatibel sind. Verwenden Sie stattdessen die folgenden Runtimeeinstellungen, um die Installation einer älteren Treiberversion durch die Erweiterung zu erzwingen. Weitere Informationen zu Treiberversionen finden Sie unter NVIDIA-GPU-Ressourcen.
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"
    }
  }
}

Unterstützung

Wenn Sie beim Lesen dieses Artikels feststellen, dass Sie weitere Hilfe benötigen, stellen Sie Azure-Experten im MSDN Azure-Forum oder im Stack Overflow-ForumFragen. Alternativ dazu haben Sie die Möglichkeit, einen Azure-Supportfall zu erstellen. Navigieren Sie zum Azure-Support, und wählen Sie Support erhalten aus. Informationen zur Nutzung von Azure-Support finden Sie unter Häufig gestellte Fragen zum Azure-Support.

Nächste Schritte