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 VM serie N di Azure che eseguono Linux, installare i driver della scheda grafica NVIDIA supportati.To take advantage of the GPU capabilities of Azure N-series VMs running Linux, install supported NVIDIA graphics drivers. Questo articolo descrive la procedura di installazione dei driver dopo la distribuzione di una macchina virtuale serie N.This article provides driver setup steps after you deploy an N-series VM. Le informazioni di configurazione dei driver sono disponibili anche per le VM Windows.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

Istanze NV: driver NVIDIA GRIDNV instances - NVIDIA GRID drivers

DistribuzioneDistribution DriverDriver
Ubuntu 16.04 LTSUbuntu 16.04 LTS

Red Hat Enterprise Linux 7.3Red Hat Enterprise Linux 7.3

CentOS-based 7.3CentOS-based 7.3
NVIDIA GRID 5.0, driver branch R384NVIDIA GRID 5.0, driver branch R384

Nota

Microsoft ridistribuisce programmi di installazione dei driver NVIDIA GRID per le macchine virtuali NV.Microsoft redistributes NVIDIA GRID driver installers for NV VMs. Nelle macchine virtuali NV di Azure installare solo driver GRID di questo tipo.Install only these GRID drivers on Azure NV VMs. 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.

Istanze NC: driver NVIDIA TeslaNC instances - NVIDIA Tesla drivers

DistribuzioneDistribution DriverDriver
Ubuntu 16.04 LTSUbuntu 16.04 LTS

Red Hat Enterprise Linux 7.3Red Hat Enterprise Linux 7.3

CentOS-based 7.3CentOS-based 7.3
NVIDIA CUDA 9.0, driver branch R384NVIDIA CUDA 9.0, driver branch R384

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 GRID per VM NVInstall GRID drivers for NV VMs

Per installare i driver NVIDIA GRID nelle macchine virtuali 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 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-384.73-grid.run https://go.microsoft.com/fwlink/?linkid=849941  
    
    chmod +x NVIDIA-Linux-x86_64-384.73-grid.run
    
    sudo ./NVIDIA-Linux-x86_64-384.73-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.

Sistema operativo Linux basato su CentOS 7.3 o Red Hat Enterprise 7.3CentOS-based 7.3 or Red Hat Enterprise Linux 7.3

Importante

Non eseguire sudo yum update per aggiornare la versione del kernel in CentOS 7.3 o Red Hat Enterprise Linux 7.3.Do not run sudo yum update to update the kernel version on CentOS 7.3 or Red Hat Enterprise Linux 7.3. L'installazione e gli aggiornamenti dei driver attualmente non funzionano se il kernel viene aggiornato.Currently, driver installation and updates do not work if the kernel is updated.

  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:Reboot the VM, reconnect, and install the latest Linux Integration Services for Hyper-V:

    wget http://download.microsoft.com/download/6/8/F/68FE11B8-FAA4-4F8D-8C7D-74DA7F2CFC8C/lis-rpms-4.2.3.tar.gz
    
    tar xvzf lis-rpms-4.2.3.tar.gz
    
    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-384.73-grid.run https://go.microsoft.com/fwlink/?linkid=849941  
    
    chmod +x NVIDIA-Linux-x86_64-384.73-grid.run
    
    sudo ./NVIDIA-Linux-x86_64-384.73-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.

Verrà visualizzato un output simile al seguente.Output similar to the following appears. 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 xconfig (etc/X11/xorg.conf in Ubuntu 16.04 LTS, /etc/X11/XF86config in CentOS 7.3 o Red Hat Enterprise Server 7.3).The BusID of the M60 device must be manually added to the xconfig file (etc/X11/xorg.conf on Ubuntu 16.04 LTS, /etc/X11/XF86config on CentOS 7.3 or Red Hat Enterprise Server 7.3). 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          "your-BusID:0: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, eseguireThe BusID can be found by running

/usr/bin/nvidia-smi --query-gpu=pci.bus_id --format=csv | tail -1 | cut -d ':' -f 1

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 usare uno script per aggiornare il BusID nella configurazione di X11 quando una macchina virtuale viene riavviata.Therefore, you may want to use a script to update the BusID in the X11 configuration when a VM is rebooted. ad esempio:For example:

#!/bin/bash
BUSID=$((16#`/usr/bin/nvidia-smi --query-gpu=pci.bus_id --format=csv | tail -1 | cut -d ':' -f 1`))

if grep -Fxq "${BUSID}" /etc/X11/XF86Config; then     echo "BUSID is matching"; else   echo "BUSID changed to ${BUSID}" && sed -i '/BusID/c\    BusID          \"PCI:0@'${BUSID}':0:0:0\"' /etc/X11/XF86Config; fi

Questo file può essere richiamato come radice all'avvio mediante la creazione di una voce in /etc/rc.d/rc3.d.This file can be invoked as root on boot by creating an entry for it in /etc/rc.d/rc3.d.

Installare i driver CUDA per macchine virtuali NCInstall CUDA drivers for NC VMs

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

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.

Nota

I collegamenti ai download dei driver CUDA forniti qui sono quelli attivi al momento della pubblicazione.CUDA driver download links provided here are 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.

Per installare il toolkit di CUDA, eseguire una connessione SSH a ciascuna VM.To install CUDA Toolkit, 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.0.176-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

Sistema operativo Linux basato su CentOS 7.3 o Red Hat Enterprise 7.3CentOS-based 7.3 or Red Hat Enterprise Linux 7.3

  1. Installare la versione più recente di Linux Integration Services per Hyper-V.Install the latest Linux Integration Services for Hyper-V.

    Importante

    Se è installata un'immagine HPC basata su CentOS in una macchina virtuale NC24r, andare al passaggio 3.If you installed a CentOS-based HPC image on an NC24r VM, skip to Step 3. Poiché i driver RDMA di Azure e Linux Integration Services sono preinstallati nell'immagine HPC, non è necessario aggiornare i servizi LIS e gli aggiornamenti del kernel sono disabilitati per impostazione predefinita.Because Azure RDMA drivers and Linux Integration Services are pre-installed in the HPC image, LIS should not be upgraded, and kernel updates are disabled by default.

    wget http://download.microsoft.com/download/6/8/F/68FE11B8-FAA4-4F8D-8C7D-74DA7F2CFC8C/lis-rpms-4.2.3-1.tar.gz
    
    tar xvzf lis-rpms-4.2.3-1.tar.gz
    
    cd LISISO
    
    sudo ./install.sh
    
    sudo reboot
    
  2. Riconnettersi alla macchina virtuale e continuare l'installazione con i comandi seguenti:Reconnect to the VM and continue installation with the following commands:

    sudo yum install kernel-devel
    
    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.0.176-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.

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

    sudo yum install cuda
    
  4. 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.

Verrà visualizzato un output simile al seguente:Output similar to the following appears:

Stato del dispositivo NVIDIA

Rete RDMA per VM NC24rRDMA network for NC24r VMs

La connettività di rete RDMA può essere abilitata nelle VM NC24r distribuite nello stesso set di disponibilità.RDMA network connectivity can be enabled on NC24r VMs deployed in the same availability 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 VM NC24r da una delle immagini seguenti in Azure Marketplace che supporta la connettività RDMA:Deploy NC24r VMs from one of the following images in the Azure Marketplace that supports RDMA connectivity:

  • Ubuntu: Ubuntu Server 16.04 LTS.Ubuntu - Ubuntu Server 16.04 LTS. Configurare i driver RDMA nella VM ed eseguire la registrazione con Intel per scaricare Intel MPI: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/11595/l_mpi_2017.3.196.tgz
      

      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
      
  • HPC basato su CentOS: HPC 7.3 basato su CentOS.CentOS-based HPC - CentOS-based 7.3 HPC. I driver RDMA e Intel MPI 5.1 vengono installati nella VM.RDMA drivers and Intel MPI 5.1 are installed on the VM.

Risoluzione dei problemiTroubleshooting

  • Esiste un problema noto con i driver CUDA sulle macchine virtuali serie N di Azure che eseguono il kernel Linux 4.4.0-75 su Ubuntu 16.04 LTS.There is a known issue with CUDA drivers on Azure N-series VMs running the 4.4.0-75 Linux kernel on Ubuntu 16.04 LTS. Se si usa una versione precedente del kernel, eseguire l'aggiornamento almeno alla versione 4.4.0-77.If you are upgrading from an earlier kernel version, upgrade to at least kernel version 4.4.0-77.

  • È 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 VM viene riavviata, l'impostazione della modalità scomparirà.Note that if the VM is restarted, the mode setting will go 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