Installare i driver GPU NVIDIA in VM serie N che eseguono LinuxInstall NVIDIA GPU drivers on N-series VMs running Linux

Per usufruire delle funzionalità GPU delle macchine virtuali serie N di Azure che eseguono Linux, è necessario installare i driver GPU NVIDIA.To take advantage of the GPU capabilities of Azure N-series VMs running Linux, NVIDIA GPU drivers must be installed. L'estensione del driver NVIDIA GPU consente di installare i driver NVIDIA CUDA o GRID appropriati in una macchina virtuale serie N.The NVIDIA GPU Driver Extension installs appropriate NVIDIA CUDA or GRID drivers on an N-series VM. Installare o gestire l'estensione usando il portale di Azure o strumenti come l'interfaccia della riga di comando di Azure o Azure Resource Manager.Install or manage the extension using the Azure portal or tools such as the Azure CLI or Azure Resource Manager templates. Vedere le documentazione dell'estensione dei driver GPU NVIDIA per le distribuzioni supportate e i passaggi di distribuzione.See the NVIDIA GPU Driver Extension documentation for supported distributions and deployment steps.

Se si sceglie di installare manualmente i driver GPU, questo articolo descrive i driver e le distribuzioni supportate, nonché passaggi di installazione e verifica.If you choose to install GPU drivers manually, this article provides supported distributions, drivers, and installation and verification steps. Le informazioni di configurazione manuale dei driver sono disponibili anche per le macchine virtuali Windows.Manual driver setup information is also available for Windows VMs.

Per conoscere le specifiche, le capacità di archiviazione e i dettagli dei dischi delle macchine virtuali serie N, vedere Dimensioni delle macchine virtuali Linux GPU.For N-series VM specs, storage capacities, and disk details, see GPU Linux VM sizes.

Driver e distribuzioni supportatiSupported distributions and drivers

Driver NVIDIA CUDANVIDIA CUDA drivers

I driver NVIDIA CUDA per le macchine virtuali serie NC, NCv2, NCv3 e ND (facoltativi per la serie NV) sono supportati solo nelle distribuzioni Linux elencate nella tabella seguente.NVIDIA CUDA drivers for NC, NCv2, NCv3, and ND-series VMs (optional for NV-series) are supported only on the Linux distributions listed in the following table. Le informazioni sui driver CUDA sono quelle aggiornate al momento della pubblicazione.CUDA driver information is current at time of publication. Per i driver CUDA più aggiornati, visitare il sito Web NVIDIA.For the latest CUDA drivers, visit the NVIDIA website. Assicurarsi di installare o eseguire l'aggiornamento ai driver CUDA più recenti per la distribuzione.Ensure that you install or upgrade to the latest CUDA drivers for your distribution.

Suggerimento

Anziché installare manualmente i driver CUDA in una VM Linux, è possibile distribuire un'immagine della macchina virtuale per data science di Azure.As an alternative to manual CUDA driver installation on a Linux VM, you can deploy an Azure Data Science Virtual Machine image. Le edizioni della macchina virtuale per data science per Ubuntu 16.04 LTS o CentOS 7.4 preinstallano i driver NVIDIA CUDA, CUDA Deep Neural Network Library e altri strumenti.The DSVM editions for Ubuntu 16.04 LTS or CentOS 7.4 pre-install NVIDIA CUDA drivers, the CUDA Deep Neural Network Library, and other tools.

DistribuzioneDistribution DriverDriver
Ubuntu 16.04 LTSUbuntu 16.04 LTS

Red Hat Enterprise Linux 7.3 o 7.4Red Hat Enterprise Linux 7.3 or 7.4

Basata su CentOS 7.3 o 7.4, basata su CentOS 7.4 HPCCentOS-based 7.3 or 7.4, CentOS-based 7.4 HPC
NVIDIA CUDA 9.1, driver branch R390NVIDIA CUDA 9.1, driver branch R390

Driver NVIDIA GRIDNVIDIA GRID drivers

Microsoft ridistribuisce i programmi di installazione dei driver NVIDIA-GRID per le macchine virtuali serie NV usate come workstation virtuali o per applicazioni virtuali.Microsoft redistributes NVIDIA GRID driver installers for NV-series VMs used as virtual workstations or for virtual applications. Installare solo questi driver GRID in macchine virtuali NV di Azure, solo nelle distribuzioni elencate nella tabella seguente.Install only these GRID drivers on Azure NV VMs, only on the distributions listed in the following table. Questi driver includono la licenza per il software della GPU virtuale GRID in Azure.These drivers include licensing for GRID Virtual GPU Software in Azure.

DistribuzioneDistribution DriverDriver
Ubuntu 16.04 LTSUbuntu 16.04 LTS

Red Hat Enterprise Linux 7.3 o 7.4Red Hat Enterprise Linux 7.3 or 7.4

Basata su CentOS 7.3 o 7.4CentOS-based 7.3 or 7.4
NVIDIA GRID 6.0, driver branch R390NVIDIA GRID 6.0, driver branch R390

Avviso

L'installazione di software di terze parti in prodotti Red Hat può influenzare i termini di supporto di Red Hat.Installation of third-party software on Red Hat products can affect the Red Hat support terms. Vedere l'articolo della Knowledge base di Red Hat.See the Red Hat Knowledgebase article.

Installare i driver CUDA nelle macchine virtuali serie NInstall CUDA drivers on N-series VMs

Di seguito sono indicati i passaggi per installare i driver CUDA nelle VM Serie N dal Toolkit di NVIDIA CUDA.Here are steps to install CUDA drivers from the NVIDIA CUDA Toolkit on N-series VMs.

Gli sviluppatori C++ e C possono facoltativamente installare il toolkit completo per creare applicazioni con accelerazione GPU.C and C++ developers can optionally install the full Toolkit to build GPU-accelerated applications. Per altre informazioni, vedere la guida di installazione di CUDA.For more information, see the CUDA Installation Guide.

Per installare i driver di CUDA, stabilire una connessione SSH a ogni VM.To install CUDA drivers, make an SSH connection to each VM. Per verificare che nel sistema sia presente una GPU con supporto per core CUDA, eseguire il comando seguente:To verify that the system has a CUDA-capable GPU, run the following command:

lspci | grep -i NVIDIA

Verrà visualizzato un output simile all'esempio seguente (che rappresenta una scheda NVIDIA Tesla K80):You will see output similar to the following example (showing an NVIDIA Tesla K80 card):

Output del comando Ispci

Quindi eseguire i comandi di installazione specifici per la distribuzione.Then run installation commands specific for your distribution.

Ubuntu 16.04 LTSUbuntu 16.04 LTS

  1. Scaricare e installare i driver CUDA.Download and install the CUDA drivers.

    CUDA_REPO_PKG=cuda-repo-ubuntu1604_9.1.85-1_amd64.deb
    
    wget -O /tmp/${CUDA_REPO_PKG} http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/${CUDA_REPO_PKG} 
    
    sudo dpkg -i /tmp/${CUDA_REPO_PKG}
    
    sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub 
    
    rm -f /tmp/${CUDA_REPO_PKG}
    
    sudo apt-get update
    
    sudo apt-get install cuda-drivers
    

    L'installazione può richiedere alcuni minuti.The installation can take several minutes.

  2. Per installare facoltativamente il toolkit di CUDA completo, digitare:To optionally install the complete CUDA toolkit, type:

    sudo apt-get install cuda
    
  3. Riavviare la VM e procedere a verificare l'installazione.Reboot the VM and proceed to verify the installation.

Aggiornamenti dei driver CUDACUDA driver updates

È consigliabile aggiornare periodicamente i driver CUDA dopo la distribuzione.We recommend that you periodically update CUDA drivers after deployment.

sudo apt-get update

sudo apt-get upgrade -y

sudo apt-get dist-upgrade -y

sudo apt-get install cuda-drivers

sudo reboot

CentOS o Red Hat Enterprise Linux 7.3 o 7.4CentOS or Red Hat Enterprise Linux 7.3 or 7.4

  1. Aggiornare il kernel.Update the kernel.

    sudo yum install kernel kernel-tools kernel-headers kernel-devel
    
    sudo reboot
    
  2. Install the latest Linux Integration Services for Hyper-V and Azure.

    wget https://aka.ms/lis
    
    tar xvzf lis
    
    cd LISISO
    
    sudo ./install.sh
    
    sudo reboot
    
  3. Riconnettersi alla macchina virtuale e continuare l'installazione con i comandi seguenti:Reconnect to the VM and continue installation with the following commands:

    sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    
    sudo yum install dkms
    
    CUDA_REPO_PKG=cuda-repo-rhel7-9.1.85-1.x86_64.rpm
    
    wget http://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/${CUDA_REPO_PKG} -O /tmp/${CUDA_REPO_PKG}
    
    sudo rpm -ivh /tmp/${CUDA_REPO_PKG}
    
    rm -f /tmp/${CUDA_REPO_PKG}
    
    sudo yum install cuda-drivers
    

    L'installazione può richiedere alcuni minuti.The installation can take several minutes.

  4. Per installare facoltativamente il toolkit di CUDA completo, digitare:To optionally install the complete CUDA toolkit, type:

    sudo yum install cuda
    
  5. Riavviare la VM e procedere a verificare l'installazione.Reboot the VM and proceed to verify the installation.

Verificare l'installazione del driverVerify driver installation

Per controllare lo stato del dispositivo GPU, eseguire una connessione SSH alla VM ed eseguire l'utilità della riga di comando nvidia-smi installata con il driver.To query the GPU device state, SSH to the VM and run the nvidia-smi command-line utility installed with the driver.

Se il driver è installato, l'output sarà simile al seguente.If the driver is installed, you will see output similar to the following. Si noti che GPU-Util mostra 0% a meno che nella macchina virtuale non sia attualmente in esecuzione un carico di lavoro GPU.Note that GPU-Util shows 0% unless you are currently running a GPU workload on the VM. La versione del driver e i dettagli GPU possono essere diversi da quelli riportati.Your driver version and GPU details may be different from the ones shown.

Stato del dispositivo NVIDIA

Connettività di rete RDMARDMA network connectivity

La connettività di rete RDMA può essere abilitata in macchine virtuali serie N abilitate per RDMA, come le macchine virtuali NC24r distribuite nello stesso set di disponibilità o in un unico gruppo di selezione in un set di scalabilità di macchine virtuali.RDMA network connectivity can be enabled on RDMA-capable N-series VMs such as NC24r deployed in the same availability set or in a single placement group in a VM scale set. La rete RDMA supporta il traffico Message Passing Interface (MPI) per le applicazioni in esecuzione con Intel MPI 5.x o una versione più recente.The RDMA network supports Message Passing Interface (MPI) traffic for applications running with Intel MPI 5.x or a later version. Seguono i requisiti aggiuntivi:Additional requirements follow:

DistribuzioniDistributions

Distribuire le VM serie N abilitate per RDMA da una delle immagini in Azure Marketplace che supporta la connettività RDMA sulle VM serie N:Deploy RDMA-capable N-series VMs from one of the images in the Azure Marketplace that supports RDMA connectivity on N-series VMs:

  • Ubuntu 16.04 LTS - Configurare i driver RDMA nella VM ed eseguire la registrazione con Intel per scaricare Intel MPI:Ubuntu 16.04 LTS - Configure RDMA drivers on the VM and register with Intel to download Intel MPI:

    1. Installare dapl, rdmacm, ibverbs e mlx4Install dapl, rdmacm, ibverbs, and mlx4

      sudo apt-get update
      
      sudo apt-get install libdapl2 libmlx4-1
      
    2. In /etc/waagent.conf abilitare RDMA rimuovendo il commento dalle righe di configurazione seguenti.In /etc/waagent.conf, enable RDMA by uncommenting the following configuration lines. Per modificare questo file è necessario l'accesso alla radice.You need root access to edit this file.

      OS.EnableRDMA=y
      
      OS.UpdateRdmaDriver=y
      
    3. Aggiungere o modificare le impostazioni della memoria seguenti espresse in KB nel file /etc/security/limits.conf.Add or change the following memory settings in KB in the /etc/security/limits.conf file. Per modificare questo file è necessario l'accesso alla radice.You need root access to edit this file. A scopo di test è possibile impostare memlock su unlimited.For testing purposes you can set memlock to unlimited. Ad esempio: <User or group name> hard memlock unlimited.For example: <User or group name> hard memlock unlimited.

      <User or group name> hard    memlock <memory required for your application in KB>
      
      <User or group name> soft    memlock <memory required for your application in KB>
      
    4. Installare la libreria Intel MPI.Install Intel MPI Library. Acquistare e scaricare la libreria da Intel o scaricare la versione di valutazione gratuita.Either purchase and download the library from Intel or download the free evaluation version.

      wget http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/9278/l_mpi_p_5.1.3.223.tgz
      

      Sono supportati solo i runtime Intel MPI 5.x.Only Intel MPI 5.x runtimes are supported.

      Per la procedura di installazione, vedere Intel MPI Library installation guide (Guida all'installazione di Intel MPI Library).For installation steps, see the Intel MPI Library Installation Guide.

    5. Abilitare ptrace per i processi non di debugger non radice (necessari per le versioni più recenti di Intel MPI).Enable ptrace for non-root non-debugger processes (needed for the most recent versions of Intel MPI).

      echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
      
  • CentOS-based 7.4 HPC: i driver RDMA e Intel MPI 5.1 vengono installati nella VM.CentOS-based 7.4 HPC - RDMA drivers and Intel MPI 5.1 are installed on the VM.

Installare i driver GRID nelle macchine virtuali serie NVInstall GRID drivers on NV-series VMs

Per installare i driver NVIDIA GRID nelle macchine virtuali serie NV, stabilire una connessione SSH a ogni macchina virtuale e seguire la procedura per la distribuzione di Linux.To install NVIDIA GRID drivers on NV-series VMs, make an SSH connection to each VM and follow the steps for your Linux distribution.

Ubuntu 16.04 LTSUbuntu 16.04 LTS

  1. Eseguire il comando lspci.Run the lspci command. Verificare che la scheda o le schede NVIDIA M60 siano visualizzate come dispositivi PCI.Verify that the NVIDIA M60 card or cards are visible as PCI devices.

  2. Installare gli aggiornamenti.Install updates.

    sudo apt-get update
    
    sudo apt-get upgrade -y
    
    sudo apt-get dist-upgrade -y
    
    sudo apt-get install build-essential ubuntu-desktop -y
    
  3. Disabilitare il driver del kernel Nouveau, che è incompatibile con il driver NVIDIA.Disable the Nouveau kernel driver, which is incompatible with the NVIDIA driver. Nelle macchine virtuali NV usare solo il driver NVIDIA. A tale scopo, creare un file in /etc/modprobe.d denominato nouveau.conf con il contenuto seguente:(Only use the NVIDIA driver on NV VMs.) To do this, create a file in /etc/modprobe.dnamed nouveau.conf with the following contents:

    blacklist nouveau
    
    blacklist lbm-nouveau
    
  4. Riavviare la macchina virtuale ed eseguire nuovamente la connessione.Reboot the VM and reconnect. Uscire dal server X:Exit X server:

    sudo systemctl stop lightdm.service
    
  5. Scaricare e installare il driver GRID:Download and install the GRID driver:

    wget -O NVIDIA-Linux-x86_64-grid.run https://go.microsoft.com/fwlink/?linkid=849941  
    
    chmod +x NVIDIA-Linux-x86_64-grid.run
    
    sudo ./NVIDIA-Linux-x86_64-grid.run
    
  6. Quando viene chiesto se si vuole eseguire l'utilità nvidia-xconfig per aggiornare il file di configurazione di X, selezionare Yes (Sì).When you're asked whether you want to run the nvidia-xconfig utility to update your X configuration file, select Yes.

  7. Al termine dell'installazione, copiare /etc/nvidia/gridd.conf.template in un nuovo file gridd.conf nel percorso /etc/nvidia/After installation completes, copy /etc/nvidia/gridd.conf.template to a new file gridd.conf at location /etc/nvidia/

    sudo cp /etc/nvidia/gridd.conf.template /etc/nvidia/gridd.conf
    
  8. Aggiungere quanto segue a /etc/nvidia/gridd.conf:Add the following to /etc/nvidia/gridd.conf:

    IgnoreSP=TRUE
    
  9. Riavviare la VM e procedere a verificare l'installazione.Reboot the VM and proceed to verify the installation.

CentOS o Red Hat Enterprise LinuxCentOS or Red Hat Enterprise Linux

  1. Aggiornare il kernel e DKMS.Update the kernel and DKMS.

    sudo yum update
    
    sudo yum install kernel-devel
    
    sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    
    sudo yum install dkms
    
  2. Disabilitare il driver del kernel Nouveau, che è incompatibile con il driver NVIDIA.Disable the Nouveau kernel driver, which is incompatible with the NVIDIA driver. Nelle macchine virtuali NV usare solo il driver NVIDIA. A tale scopo, creare un file in /etc/modprobe.d denominato nouveau.conf con il contenuto seguente:(Only use the NVIDIA driver on NV VMs.) To do this, create a file in /etc/modprobe.dnamed nouveau.conf with the following contents:

    blacklist nouveau
    
    blacklist lbm-nouveau
    
  3. Riavviare la macchina virtuale e installare i servizi di integrazione di Linux più recenti per Hyper-V e Azure.Reboot the VM, reconnect, and install the latest Linux Integration Services for Hyper-V and Azure.

    wget https://aka.ms/lis
    
    tar xvzf lis
    
    cd LISISO
    
    sudo ./install.sh
    
    sudo reboot
    
  4. Ristabilire la connessione alla macchina virtuale ed eseguire il comando lspci.Reconnect to the VM and run the lspci command. Verificare che la scheda o le schede NVIDIA M60 siano visualizzate come dispositivi PCI.Verify that the NVIDIA M60 card or cards are visible as PCI devices.

  5. Scaricare e installare il driver GRID:Download and install the GRID driver:

    wget -O NVIDIA-Linux-x86_64-grid.run https://go.microsoft.com/fwlink/?linkid=849941  
    
    chmod +x NVIDIA-Linux-x86_64-grid.run
    
    sudo ./NVIDIA-Linux-x86_64-grid.run
    
  6. Quando viene chiesto se si vuole eseguire l'utilità nvidia-xconfig per aggiornare il file di configurazione di X, selezionare Yes (Sì).When you're asked whether you want to run the nvidia-xconfig utility to update your X configuration file, select Yes.

  7. Al termine dell'installazione, copiare /etc/nvidia/gridd.conf.template in un nuovo file gridd.conf nel percorso /etc/nvidia/After installation completes, copy /etc/nvidia/gridd.conf.template to a new file gridd.conf at location /etc/nvidia/

    sudo cp /etc/nvidia/gridd.conf.template /etc/nvidia/gridd.conf
    
  8. Aggiungere quanto segue a /etc/nvidia/gridd.conf:Add the following to /etc/nvidia/gridd.conf:

    IgnoreSP=TRUE
    
  9. Riavviare la VM e procedere a verificare l'installazione.Reboot the VM and proceed to verify the installation.

Verificare l'installazione del driverVerify driver installation

Per controllare lo stato del dispositivo GPU, eseguire una connessione SSH alla VM ed eseguire l'utilità della riga di comando nvidia-smi installata con il driver.To query the GPU device state, SSH to the VM and run the nvidia-smi command-line utility installed with the driver.

Se il driver è installato, l'output sarà simile al seguente.If the driver is installed, you will see output similar to the following. Si noti che GPU-Util mostra 0% a meno che nella macchina virtuale non sia attualmente in esecuzione un carico di lavoro GPU.Note that GPU-Util shows 0% unless you are currently running a GPU workload on the VM. La versione del driver e i dettagli GPU possono essere diversi da quelli riportati.Your driver version and GPU details may be different from the ones shown.

Stato del dispositivo NVIDIA

Server X11X11 server

Se è necessario un server X11 per le connessioni remote a una macchina virtuale NV, è consigliabile usare x11vnc perché consente l'accelerazione hardware della grafica.If you need an X11 server for remote connections to an NV VM, x11vnc is recommended because it allows hardware acceleration of graphics. Il BusID del dispositivo M60 deve essere aggiunto manualmente al file di configurazione X11 file (in genere etc/X11/xorg.conf).The BusID of the M60 device must be manually added to the X11 configuration file (usually, etc/X11/xorg.conf). Aggiungere una sezione "Device" simile alla seguente:Add a "Device" section similar to the following:

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "Tesla M60"
    BusID          "PCI:0@your-BusID:0:0"
EndSection

Aggiornare anche la sezione "Screen" per l'uso del dispositivo.Additionally, update your "Screen" section to use this device.

Per individuare il BusID decimale, eseguireThe decimal BusID can be found by running

nvidia-xconfig --query-gpu-info | awk '/PCI BusID/{print $4}'

Il BusID può cambiare quando una macchina virtuale viene riallocata o riavviata.The BusID can change when a VM gets reallocated or rebooted. Pertanto, è consigliabile creare uno script per aggiornare il BusID nella configurazione di X11 quando una macchina virtuale viene riavviata.Therefore, you may want to create a script to update the BusID in the X11 configuration when a VM is rebooted. Creare ad esempio uno script denominato busidupdate.sh (o un altro nome scelto) con contenuto simile al seguente:For example, create a script named busidupdate.sh (or another name you choose) with contents similar to the following:

#!/bin/bash
XCONFIG="/etc/X11/xorg.conf"
OLDBUSID=`awk '/BusID/{gsub(/"/, "", $2); print $2}' ${XCONFIG}`
NEWBUSID=`nvidia-xconfig --query-gpu-info | awk '/PCI BusID/{print $4}'`

if [[ "${OLDBUSID}" == "${NEWBUSID}" ]] ; then
        echo "NVIDIA BUSID not changed - nothing to do"
else
        echo "NVIDIA BUSID changed from \"${OLDBUSID}\" to \"${NEWBUSID}\": Updating ${XCONFIG}" 
        sed -e 's|BusID.*|BusID          '\"${NEWBUSID}\"'|' -i ${XCONFIG}
fi

Creare quindi una voce per lo script di aggiornamento in /etc/rc.d/rc3.d, in modo che venga richiamato come radice all'avvio.Then, create an entry for your update script in /etc/rc.d/rc3.d so the script is invoked as root on boot.

risoluzione dei problemiTroubleshooting

  • È possibile impostare la modalità di persistenza tramite nvidia-smi. In questo modo l'output del comando sarà più veloce per l'esecuzione di query sulle schede.You can set persistence mode using nvidia-smi so the output of the command is faster when you need to query cards. Per impostare la modalità di persistenza, eseguire nvidia-smi -pm 1.To set persistence mode, execute nvidia-smi -pm 1. Si noti che se la macchina virtuale viene riavviata, l'impostazione della modalità scompare.Note that if the VM is restarted, the mode setting goes away. È sempre possibile generare script che impostino la modalità affinché venga eseguita all'avvio.You can always script the mode setting to execute upon startup.

Passaggi successiviNext steps