Installera GPU-drivrutiner för NVIDIA på virtuella datorer i N-serien som kör Linux

Varning

Den här artikeln refererar till CentOS, en Linux-distribution som närmar sig EOL-status (End Of Life). Överväg att använda och planera i enlighet med detta. Mer information finns i CentOS End Of Life-vägledningen.

Gäller för: ✔️ Virtuella Linux-datorer

Om du vill dra nytta av GPU-funktionerna i virtuella Datorer i Azure N-serien som backas upp av NVIDIA GPU:er måste du installera NVIDIA GPU-drivrutiner. NVIDIA GPU Driver Extension installerar lämpliga NVIDIA CUDA- eller GRID-drivrutiner på en virtuell dator i N-serien. Installera eller hantera tillägget med hjälp av Azure-portalen eller verktyg som Azure CLI eller Azure Resource Manager-mallar. Se dokumentationen för NVIDIA GPU Driver Extension för distributioner och distributionssteg som stöds.

Om du väljer att installera NVIDIA GPU-drivrutiner manuellt innehåller den här artikeln distributioner, drivrutiner och installations- och verifieringssteg som stöds. Information om manuell drivrutinskonfiguration är också tillgänglig för virtuella Windows-datorer.

Information om virtuella datorer i N-serien, lagringskapaciteter och diskinformation finns i VM-storlekar för GPU Linux.

Distributioner och drivrutiner som stöds

Varning

Den här artikeln refererar till CentOS, en Linux-distribution som närmar sig EOL-status (End Of Life). Överväg att använda och planera i enlighet med detta.

NVIDIA CUDA-drivrutiner

De senaste CUDA-drivrutinerna och operativsystemen som stöds finns på NVIDIA:s webbplats. Se till att du installerar eller uppgraderar till de senaste CUDA-drivrutinerna som stöds för distributionen.

Kommentar

De senaste CUDA-drivrutinerna som stöds för ursprungliga virtuella SKU-datorer i NC-serien är för närvarande 470.82.01. Senare drivrutinsversioner stöds inte på K80-korten i NC.

Kommentar

Virtuella Azure NVads A10 v5-datorer stöder endast GRID 14.1(510.73) eller högre drivrutinsversioner. VGPU-drivrutinen för A10 SKU är en enhetlig drivrutin som stöder både grafik- och beräkningsarbetsbelastningar.

Dricks

Som ett alternativ till manuell CUDA-drivrutinsinstallation på en virtuell Linux-dator kan du distribuera en Azure Datavetenskap Virtual Machine-avbildning. DSVM-utgåvorna för Ubuntu 16.04 LTS eller CentOS 7.4 förinstallerar NVIDIA CUDA-drivrutiner, CUDA Deep Neural Network Library och andra verktyg.

NVIDIA GRID-drivrutiner

Microsoft omdistribuerar NVIDIA GRID-drivrutinsinstallationer för virtuella DATORER i NV- och NVv3-serien som används som virtuella arbetsstationer eller för virtuella program. Installera endast dessa GRID-drivrutiner på virtuella Azure NV-datorer, endast på de operativsystem som anges i följande tabell. Dessa drivrutiner omfattar licensiering för GRID Virtual GPU Software i Azure. Du behöver inte konfigurera en NVIDIA vGPU-programvarulicensserver.

GRID-drivrutinerna som distribueras om av Azure fungerar inte på de flesta virtuella datorer som inte är NV-serier som NC, NCv2, NCv3, ND och NDv2-serien, men fungerar på NCasT4v3-serien.

Distribution Drivrutinen
Ubuntu 20.04 LTS, 22.04 LTS

Red Hat Enterprise Linux 7.9, 8.6, 8.8

SUSE Linux Enterprise Server 15 SP2, 12 SP2,12 SP5

Rocky Linux 8.4
NVIDIA vGPU 16.3, drivrutinsgrenen R535(.exe)

NVIDIA vGPU 16.2, drivrutinsgrenen R535(.exe)

Kommentar

För virtuella Azure NVads A10 v5-datorer rekommenderar vi att kunderna alltid använder den senaste drivrutinsversionen. Den senaste NVIDIA-huvuddrivrutinsgrenen(n) är bara bakåtkompatibel med den tidigare större grenen (n-1). För t.ex. är vGPU 17.x bakåtkompatibel med endast vGPU 16.x. Alla virtuella datorer som fortfarande körnig n-2 eller lägre kan se drivrutinsfel när den senaste enhetsgrenen distribueras till Azure-värdar.

NVs_v3 virtuella datorer stöder endast vGPU 16 eller lägre drivrutinsversion.

Besök GitHub för en fullständig lista över alla tidigare Nvidia GRID-drivrutinslänkar.

Varning

Installation av tredjepartsprogramvara på Red Hat-produkter kan påverka supportvillkoren för Red Hat. Läs Knowledgebase-artikeln om Red Hat.

Installera CUDA-drivrutiner på virtuella datorer i N-serien

Här följer steg för att installera CUDA-drivrutiner från NVIDIA CUDA Toolkit på virtuella datorer i N-serien.

C- och C++-utvecklare kan också installera hela Toolkit för att skapa GPU-accelererade program. Mer information finns i installationsguiden för CUDA.

Om du vill installera CUDA-drivrutiner skapar du en SSH-anslutning till varje virtuell dator. Kontrollera att systemet har en CUDA-kompatibel GPU genom att köra följande kommando:

lspci | grep -i NVIDIA

Utdata liknar följande exempel (visar ett NVIDIA Tesla K80-kort):

lspci-kommandoutdata

lspci listar PCIe-enheterna på den virtuella datorn, inklusive eventuella InfiniBand-nätverkskort och GPU:er. Om lspci inte returnerar korrekt kan du behöva installera LIS på CentOS/RHEL.

Kör sedan installationskommandon som är specifika för distributionen.

Ubuntu

Ubuntu paketerar NVIDIA-proprietära drivrutiner. Dessa drivrutiner kommer direkt från NVIDIA och paketeras helt enkelt av Ubuntu så att de kan hanteras automatiskt av systemet. Nedladdning och installation av drivrutiner från en annan källa kan leda till ett trasigt system. För att installera drivrutiner från tredje part krävs dessutom extra steg på virtuella datorer med TrustedLaunch och Säker start aktiverat. De kräver att användaren lägger till en ny datorägarnyckel för att systemet ska kunna startas. Drivrutiner från Ubuntu signeras av Canonical och fungerar med Säker start.

  1. Installationsverktyget ubuntu-drivers :

    sudo apt update && sudo apt install -y ubuntu-drivers-common
    
  2. Installera de senaste NVIDIA-drivrutinerna:

    sudo ubuntu-drivers install
    
  3. Ladda ned och installera CUDA-verktygslådan från NVIDIA:

    Kommentar

    Exemplet visar CUDA-paketsökvägen för Ubuntu 22.04 LTS. Ersätt sökvägen som är specifik för den version som du planerar att använda.

    Besök NVIDIA Download Center eller SIDAN NVIDIA CUDA-resurser för den fullständiga sökvägen som är specifik för varje version.

    wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
    sudo apt install -y ./cuda-keyring_1.1-1_all.deb
    sudo apt update
    sudo apt -y install cuda-toolkit-12-3
    

    Installationen kan ta flera minuter.

  4. Kontrollera att GPU:n är korrekt identifierad:

    nvidia-smi
    

NVIDIA-drivrutinsuppdateringar

Vi rekommenderar att du regelbundet uppdaterar NVIDIA-drivrutiner efter distributionen.

sudo apt update
sudo apt full-upgrade

CentOS eller Red Hat Enterprise Linux

  1. Uppdatera kerneln (rekommenderas). Om du väljer att inte uppdatera kerneln kontrollerar du att versionerna av kernel-develoch dkms är lämpliga för din kernel.

    sudo yum install kernel kernel-tools kernel-headers kernel-devel
    sudo reboot
    
  2. Installera de senaste Linux-integreringstjänsterna för Hyper-V och Azure. Kontrollera om LIS krävs genom att verifiera resultatet av lspci. Om alla GPU-enheter visas som förväntat krävs inte installation av LIS.

    LIS gäller för Red Hat Enterprise Linux, CentOS och Oracle Linux Red Hat Compatible Kernel 5.2-5.11, 6.0-6.10 och 7.0-7.7. Mer information finns i Dokumentationen om Linux Integration Services. Hoppa över det här steget om du planerar att använda CentOS/RHEL 7.8 (eller högre versioner) eftersom LIS inte längre krävs för dessa versioner.

    wget https://aka.ms/lis
    tar xvzf lis
    cd LISISO
    
    sudo ./install.sh
    sudo reboot
    
  3. Återanslut till den virtuella datorn och fortsätt installationen med följande kommandon:

    sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    sudo yum-config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-rhel7.repo
    sudo yum clean all
    sudo yum -y install nvidia-driver-latest-dkms cuda-drivers
    

    Installationen kan ta flera minuter.

    Kommentar

    Besök Fedora - och Nvidia CUDA-lagringsplatsen för att välja rätt paket för den CentOS- eller RHEL-version som du vill använda.

CentOS 8 och RHEL 8 behöver till exempel följande steg.

sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo yum install dkms

sudo wget https://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/cuda-rhel8.repo -O /etc/yum.repos.d/cuda-rhel8.repo

sudo yum install cuda-drivers
  1. Om du vill installera den fullständiga CUDA-verktygslådan skriver du:

    sudo yum install cuda
    

    Kommentar

    Om du ser ett felmeddelande som rör saknade paket som vulkan-filesystem kan du behöva redigera /etc/yum.repos.d/rh-cloud, leta efter valfria rpm och ange aktiverad till 1

  2. Starta om den virtuella datorn och kontrollera installationen.

Verifiera drivrutinsinstallation

Om du vill köra frågor mot GPU-enhetstillståndet kör du SSH till den virtuella datorn och kör kommandoradsverktyget nvidia-smi installerat med drivrutinen.

Om drivrutinen är installerad visar Nvidia SMI GPU-Util som 0 % tills du kör en GPU-arbetsbelastning på den virtuella datorn. Din drivrutinsversion och GPU-information kan skilja sig från de som visas.

NVIDIA-enhetsstatus

RDMA-nätverksanslutning

RDMA-nätverksanslutning kan aktiveras på RDMA-kompatibla virtuella datorer i N-serien, till exempel NC24r som distribuerats i samma tillgänglighetsuppsättning eller i en enda placeringsgrupp i en VM-skalningsuppsättning(VM). RDMA-nätverket stöder MPI-trafik (Message Passing Interface) för program som körs med Intel MPI 5.x eller en senare version:

Distributioner

Distribuera rdma-kompatibla virtuella datorer i N-serien från en av avbildningarna på Azure Marketplace som stöder RDMA-anslutning på virtuella datorer i N-serien:

  • Ubuntu 16.04 LTS – Konfigurera RDMA-drivrutiner på den virtuella datorn och registrera med Intel för att ladda ned Intel MPI:

    1. Installera dapl, rdmacm, ibverbs och mlx4

      sudo apt-get update
      
      sudo apt-get install libdapl2 libmlx4-1
      
      
    2. I /etc/waagent.conf aktiverar du RDMA genom att avkommentera följande konfigurationsrader. Du behöver rotåtkomst för att redigera den här filen.

      OS.EnableRDMA=y
      
      OS.UpdateRdmaDriver=y
      
    3. Lägg till eller ändra följande minnesinställningar i KB i filen /etc/security/limits.conf. Du behöver rotåtkomst för att redigera den här filen. I testsyfte kan du ange memlock till obegränsat. Exempel: <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. Installera Intel MPI-biblioteket. Köp och ladda ned biblioteket från Intel eller ladda ned den kostnadsfria utvärderingsversionen.

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

      Endast Intel MPI 5.x-körning stöds.

      Installationssteg finns i installationsguiden för Intel MPI-bibliotek.

    5. Aktivera ptrace för icke-rotbaserade icke-felsökningsprocesser (behövs för de senaste versionerna av Intel MPI).

      echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
      
  • CentOS-baserade 7.4 HPC – RDMA-drivrutiner och Intel MPI 5.1 är installerade på den virtuella datorn.

  • CentOS-baserad HPC – CentOS-HPC 7.6 och senare (för SKU:er där InfiniBand stöds via SR-IOV). Dessa avbildningar har Förinstallerade Mellanox OFED- och MPI-bibliotek.

Kommentar

CX3-Pro-kort stöds endast via LTS-versioner av Mellanox OFED. Använd LTS Mellanox OFED-versionen (4.9-0.1.7.0) på de virtuella datorerna i N-serien med Anslut X3-Pro-kort. Mer information finns i Linux-drivrutiner.

Dessutom har några av de senaste Azure Marketplace HPC-avbildningarna Mellanox OFED 5.1 och senare, som inte stöder Anslut X3-Pro-kort. Kontrollera Mellanox OFED-versionen i HPC-avbildningen innan du använder den på virtuella datorer med Anslut X3-Pro-kort.

Följande bilder är de senaste CentOS-HPC-bilderna som stöder Anslut X3-Pro-kort:

  • OpenLogic:CentOS-HPC:7.6:7.6.2020062900
  • OpenLogic:CentOS-HPC:7_6gen2:7.6.2020062901
  • OpenLogic:CentOS-HPC:7.7:7.7.2020062600
  • OpenLogic:CentOS-HPC:7_7-gen2:7.7.2020062601
  • OpenLogic:CentOS-HPC:8_1:8.1.2020062400
  • OpenLogic:CentOS-HPC:8_1-gen2:8.1.2020062401

Installera GRID-drivrutiner på virtuella datorer i NV- eller NVv3-serien

Om du vill installera NVIDIA GRID-drivrutiner på virtuella DATORER i NV- eller NVv3-serien skapar du en SSH-anslutning till varje virtuell dator och följer stegen för din Linux-distribution.

Ubuntu

  1. Kör kommandot lspci. Kontrollera att NVIDIA M60-kortet eller korten visas som PCI-enheter.

  2. Installera uppdateringar.

    sudo apt-get update
    sudo apt-get upgrade -y
    sudo apt-get dist-upgrade -y
    sudo apt-get install build-essential ubuntu-desktop -y
    sudo apt-get install linux-azure -y
    
  3. Inaktivera Nouveau-kerneldrivrutinen, som inte är kompatibel med NVIDIA-drivrutinen. (Använd endast NVIDIA-drivrutinen på virtuella NV- eller NVv2-datorer.) Om du vill inaktivera drivrutinen skapar du en fil med /etc/modprobe.d namnet nouveau.conf med följande innehåll:

    blacklist nouveau
    blacklist lbm-nouveau
    
  4. Starta om den virtuella datorn och återanslut. Avsluta X-servern:

    sudo systemctl stop lightdm.service
    
  5. Ladda ned och installera GRID-drivrutinen:

    wget -O NVIDIA-Linux-x86_64-grid.run https://go.microsoft.com/fwlink/?linkid=874272
    chmod +x NVIDIA-Linux-x86_64-grid.run
    sudo ./NVIDIA-Linux-x86_64-grid.run
    
  6. När du tillfrågas om du vill köra verktyget nvidia-xconfig för att uppdatera X-konfigurationsfilen väljer du Ja.

  7. När installationen är klar kopierar du /etc/nvidia/gridd.conf.template till en ny fil gridd.conf på plats /etc/nvidia/

    sudo cp /etc/nvidia/gridd.conf.template /etc/nvidia/gridd.conf
    
  8. Lägg till följande i /etc/nvidia/gridd.conf:

    IgnoreSP=FALSE
    EnableUI=FALSE
    
  9. Ta bort följande från /etc/nvidia/gridd.conf om det finns:

    FeatureType=0
    
  10. Starta om den virtuella datorn och kontrollera installationen.

Installera GRID-drivrutin på Ubuntu med säker start aktiverat

Installationsprocessen för GRID-drivrutinen erbjuder inga alternativ för att hoppa över bygget och installationen av kernelmoduler och väljer en annan källa för signerade kernelmoduler, så säker start måste inaktiveras på virtuella Linux-datorer för att kunna använda dem med GRID, efter att signerade kernelmoduler har installerats.

CentOS eller Red Hat Enterprise Linux

  1. Uppdatera kerneln och DKMS (rekommenderas). Om du väljer att inte uppdatera kerneln kontrollerar du att versionerna av kernel-devel och dkms är lämpliga för din kernel.

    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
    sudo yum install hyperv-daemons
    
  2. Inaktivera Nouveau-kerneldrivrutinen, som inte är kompatibel med NVIDIA-drivrutinen. (Använd endast NVIDIA-drivrutinen på virtuella NV- eller NV3-datorer.) Det gör du genom att skapa en fil med /etc/modprobe.d namnet nouveau.conf med följande innehåll:

    blacklist nouveau
    blacklist lbm-nouveau
    
  3. Starta om den virtuella datorn, återanslut och installera de senaste Linux Integration Services för Hyper-V och Azure. Kontrollera om LIS krävs genom att verifiera resultatet av lspci. Om alla GPU-enheter visas som förväntat krävs inte installation av LIS.

    Hoppa över det här steget om du planerar att använda CentOS/RHEL 7.8 (eller högre versioner) eftersom LIS inte längre krävs för dessa versioner.

    wget https://aka.ms/lis
    tar xvzf lis
    cd LISISO
    
    sudo ./install.sh
    sudo reboot
    
    
  4. Återanslut till den virtuella datorn och kör lspci kommandot. Kontrollera att NVIDIA M60-kortet eller korten visas som PCI-enheter.

  5. Ladda ned och installera GRID-drivrutinen:

    wget -O NVIDIA-Linux-x86_64-grid.run https://go.microsoft.com/fwlink/?linkid=874272
    chmod +x NVIDIA-Linux-x86_64-grid.run
    
    sudo ./NVIDIA-Linux-x86_64-grid.run
    
  6. När du tillfrågas om du vill köra verktyget nvidia-xconfig för att uppdatera X-konfigurationsfilen väljer du Ja.

  7. När installationen är klar kopierar du /etc/nvidia/gridd.conf.template till en ny fil gridd.conf på plats /etc/nvidia/

    sudo cp /etc/nvidia/gridd.conf.template /etc/nvidia/gridd.conf
    
  8. Lägg till två rader i /etc/nvidia/gridd.conf:

    IgnoreSP=FALSE
    EnableUI=FALSE
    
  9. Ta bort en rad från /etc/nvidia/gridd.conf om den finns:

    FeatureType=0
    
  10. Starta om den virtuella datorn och kontrollera installationen.

Verifiera drivrutinsinstallation

Om du vill köra frågor mot GPU-enhetstillståndet kör du SSH till den virtuella datorn och kör kommandoradsverktyget nvidia-smi installerat med drivrutinen.

Om drivrutinen är installerad visar Nvidia SMI GPU-Util som 0 % tills du kör en GPU-arbetsbelastning på den virtuella datorn. Din drivrutinsversion och GPU-information kan skilja sig från de som visas.

Skärmbild som visar utdata när GPU-enhetens tillstånd efterfrågas.

X11-server

Om du behöver en X11-server för fjärranslutningar till en virtuell NV- eller NVv2-dator rekommenderas x11vnc eftersom den tillåter maskinvaruacceleration av grafik. BusID för M60-enheten måste läggas till manuellt i X11-konfigurationsfilen (vanligtvis etc/X11/xorg.conf). Lägg till ett "Device" avsnitt som liknar följande:

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

Dessutom uppdaterar du avsnittet "Screen" så att det använder den här enheten.

Det decimala BusID:et kan hittas genom att köra

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

BusID kan ändras när en virtuell dator omallokeras eller startas om. Därför kanske du vill skapa ett skript för att uppdatera BusID i X11-konfigurationen när en virtuell dator startas om. Skapa till exempel ett skript med namnet busidupdate.sh (eller ett annat namn du väljer) med innehåll som liknar följande:

#!/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

Skapa sedan en post för uppdateringsskriptet i /etc/rc.d/rc3.d så att skriptet anropas som rot vid start.

Felsökning

  • Du kan ange beständighetsläge med så nvidia-smi att kommandots utdata blir snabbare när du behöver fråga efter kort. Om du vill ange beständighetsläge kör du nvidia-smi -pm 1. Observera att om den virtuella datorn startas om försvinner lägesinställningen. Du kan alltid skripta lägesinställningen som ska köras vid start.
  • Om du har uppdaterat NVIDIA CUDA-drivrutinerna till den senaste versionen och upptäcker att RDMA-anslutningen inte längre fungerar installerar du om RDMA-drivrutinerna för att återupprätta anslutningen.
  • Om en viss CentOS/RHEL OS-version (eller kernel) inte stöds för LIS under installationen av LIS utlöses felet "Kernelversion som inte stöds". Rapportera det här felet tillsammans med operativsystemet och kernelversionerna.
  • Om jobb avbryts av ECC-fel på GPU:n (antingen rättbara eller okorrigerbara) kontrollerar du först om GPU:n uppfyller något av Nvidias RMA-kriterier för ECC-fel. Om GPU:n är berättigad till RMA kontaktar du supporten för att få den betjänad. Annars startar du om den virtuella datorn för att koppla om GPU:n enligt beskrivningen här. Mindre invasiva metoder som nvidia-smi -r att inte arbeta med virtualiseringslösningen som distribueras i Azure.

Nästa steg