Instalace ovladačů NVIDIA GPU na virtuálních počítačích řady N s Linuxem

Upozornění

Tento článek odkazuje na CentOS, linuxovou distribuci, která se blíží stavu Konec životnosti (EOL). Zvažte své použití a odpovídajícím způsobem naplánujte. Další informace najdete v doprovodných materiálech CentOS End Of Life.

Platí pro: ✔️ Virtuální počítače s Linuxem

Pokud chcete využívat možnosti GPU virtuálních počítačů řady Azure N-series, které jsou podporovány grafickými procesory NVIDIA, musíte nainstalovat ovladače NVIDIA GPU. Rozšíření ovladače NVIDIA GPU nainstaluje na virtuální počítač řady N-series odpovídající ovladače NVIDIA CUDA nebo GRID. Nainstalujte nebo spravujte rozšíření pomocí webu Azure Portal nebo nástrojů, jako jsou azure CLI nebo šablony Azure Resource Manageru. Informace o podporovaných distribucích a krocích nasazení najdete v dokumentaci k rozšíření ovladače NVIDIA GPU.

Pokud se rozhodnete ovladače NVIDIA GPU nainstalovat ručně, najdete v tomto článku podporované distribuce, ovladače a kroky instalace a ověření. Informace o ručním nastavení ovladačů jsou k dispozici také pro virtuální počítače s Windows.

Podrobnosti o specifikacích virtuálních počítačů řady N-series, kapacitách úložiště a disku najdete v tématu Velikosti virtuálních počítačů s Linuxem GPU.

Podporované distribuce a ovladače

Upozornění

Tento článek odkazuje na CentOS, linuxovou distribuci, která se blíží stavu Konec životnosti (EOL). Zvažte své použití a plánování odpovídajícím způsobem.

Ovladače NVIDIA CUDA

Nejnovější ovladače CUDA a podporované operační systémy naleznete na webu NVIDIA . Ujistěte se, že instalujete nebo upgradujete na nejnovější podporované ovladače CUDA pro vaši distribuci.

Poznámka:

Nejnovější podporované ovladače CUDA pro původní virtuální počítače SKU řady NC-series jsou aktuálně 470.82.01. Novější verze ovladačů nejsou podporovány na kartách K80 v síťovém adaptéru.

Poznámka:

Virtuální počítače Azure NVads A10 v5 podporují pouze verzi ovladače GRID 14.1(510.73) nebo vyšší. Ovladač vGPU pro skladovou položku A10 je jednotný ovladač, který podporuje grafické i výpočetní úlohy.

Tip

Alternativou k ruční instalaci ovladače CUDA na virtuálním počítači s Linuxem můžete nasadit image virtuálního počítače Azure Datová Věda. Edice DSVM pro Ubuntu 16.04 LTS nebo CentOS 7.4 předinstalují ovladače NVIDIA CUDA, knihovnu CUDA Deep Neural Network Library a další nástroje.

Ovladače NVIDIA GRID

Microsoft redistribuuje instalační programy ovladačů NVIDIA GRID pro virtuální počítače řady NV a NVv3 používané jako virtuální pracovní stanice nebo pro virtuální aplikace. Na virtuální počítače Azure NV nainstalujte pouze tyto ovladače GRIDu, pouze v operačních systémech uvedených v následující tabulce. Mezi tyto ovladače patří licencování softwaru GRID Virtual GPU v Azure. Nemusíte nastavovat softwarový licenční server NVIDIA vGPU.

Ovladače GRID redistribuované Azure nefungují na většině virtuálních počítačů řady jiných než NV, jako jsou NC, NCv2, NCv3, ND a NDv2-series, ale fungují na řadě NCasT4v3.

Další informace o konkrétních verzích virtuálních jednotek vGPU a větev ovladačů naleznete na webu NVIDIA .

Distribuce Ovladač
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, větev ovladače R535(.exe)

NVIDIA vGPU 16.2, větev ovladače R535(.exe)

Poznámka:

Pro virtuální počítače Azure NVads A10 v5 doporučujeme zákazníkům vždy používat nejnovější verzi ovladače. Nejnovější větev hlavního ovladače NVIDIA (n) je pouze zpětná kompilace s předchozí hlavní větví (n-1). Například vGPU 17.x je zpětně kompatibilní pouze s vGPU 16.x. Všechny virtuální počítače stále běží n-2 nebo nižší, můžou se při nasazení nejnovější větve jednotky do hostitelů Azure zobrazit selhání ovladačů.

NVs_v3 virtuální počítače podporují pouze verzi ovladače vGPU 16 nebo nižší .

Úplný seznam všech předchozích odkazů ovladačů Nvidia GRID najdete na GitHubu .

Upozorňující

Instalace softwaru třetích stran na produkty Red Hat může mít vliv na podmínky podpory Red Hat. Informace najdete v článku znalostní báze Red Hat.

Instalace ovladačů CUDA na virtuální počítače řady N-series

Tady je postup instalace ovladačů CUDA ze sady NVIDIA CUDA Toolkit na virtuální počítače řady N-series.

Vývojáři C a C++ můžou volitelně nainstalovat úplnou sadu nástrojů pro sestavování aplikací akcelerovaných gpu. Další informace najdete v průvodci instalací CUDA.

Pokud chcete nainstalovat ovladače CUDA, nastavte připojení SSH k jednotlivým virtuálním počítačům. Pokud chcete ověřit, že systém má GPU podporující CUDA, spusťte následující příkaz:

lspci | grep -i NVIDIA

Výstup je podobný následujícímu příkladu (zobrazuje kartu NVIDIA Tesla K80):

Výstup příkazu lspci

Lspci zobrazí seznam zařízení PCIe na virtuálním počítači, včetně síťových adaptérů InfiniBand a GPU( pokud existuje). Pokud se lspci úspěšně nevrátí, možná budete muset nainstalovat LIS na CentOS/RHEL.

Pak spusťte instalační příkazy specifické pro vaši distribuci.

Ubuntu

Ubuntu balíčky NVIDIA proprietární ovladače. Tyto ovladače pocházejí přímo od NVIDIA a jsou jednoduše zabalené Ubuntu, aby je systém mohl automaticky spravovat. Stahování a instalace ovladačů z jiného zdroje může vést k nefunkčnímu systému. Instalace ovladačů třetích stran navíc vyžaduje další kroky na virtuálních počítačích s povolenou funkcí TrustedLaunch a Secure Boot. Vyžaduje, aby uživatel přidal nový klíč vlastníka počítače, aby se systém spustí. Ovladače z Ubuntu jsou podepsané Canonical a budou fungovat se zabezpečeným spouštěním.

  1. Instalační ubuntu-drivers nástroj:

    sudo apt update && sudo apt install -y ubuntu-drivers-common
    
  2. Nainstalujte nejnovější ovladače NVIDIA:

    sudo ubuntu-drivers install
    
  3. Stáhněte a nainstalujte sadu nástrojů CUDA z NVIDIA:

    Poznámka:

    Příklad ukazuje cestu balíčku CUDA pro Ubuntu 22.04 LTS. Nahraďte cestu specifickou pro verzi, kterou chcete použít.

    Úplnou cestu specifickou pro každou verzi najdete na stránce Zdrojů NVIDIA CUDA nebo WEBU NVIDIA CUDA.

    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
    

    Instalace může trvat několik minut.

  4. Ověřte, že je GPU správně rozpoznaný (možná budete muset restartovat virtuální počítač, aby se projevily změny systému):

    nvidia-smi
    

Aktualizace ovladačů NVIDIA

Po nasazení doporučujeme pravidelně aktualizovat ovladače NVIDIA.

sudo apt update
sudo apt full-upgrade

CentOS nebo Red Hat Enterprise Linux

  1. Aktualizujte jádro (doporučeno). Pokud se rozhodnete neaktualizovat jádro, ujistěte se, že verze kernel-devela dkms jsou vhodné pro vaše jádro.

    sudo yum install kernel kernel-tools kernel-headers kernel-devel
    sudo reboot
    
  2. Nainstalujte nejnovější integrační služby pro Linux pro Hyper-V a Azure. Ověřením výsledků lspci zkontrolujte, jestli je lis vyžadován. Pokud jsou všechna zařízení s GPU uvedená podle očekávání, instalace LIS se nevyžaduje.

    LIS se vztahuje na Red Hat Enterprise Linux, CentOS a Oracle Linux Red Hat Compatible Kernel 5.2-5.11, 6.0-6.10 a 7.0-7.7. Další podrobnosti najdete v dokumentaci ke službě Linux Integration Services. Tento krok přeskočte, pokud plánujete používat CentOS/RHEL 7.8 (nebo vyšší verze), protože lis už pro tyto verze nevyžaduje.

    wget https://aka.ms/lis
    tar xvzf lis
    cd LISISO
    
    sudo ./install.sh
    sudo reboot
    
  3. Znovu se připojte k virtuálnímu počítači a pokračujte v instalaci pomocí následujících příkazů:

    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
    

    Instalace může trvat několik minut.

    Poznámka:

    Navštivte úložiště Fedora a Nvidia CUDA a vyberte správný balíček pro verzi CentOS nebo RHEL, kterou chcete použít.

Například CentOS 8 a RHEL 8 potřebují následující kroky.

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. Pokud chcete volitelně nainstalovat kompletní sadu nástrojů CUDA, zadejte:

    sudo yum install cuda
    

    Poznámka:

    Pokud se zobrazí chybová zpráva související s chybějícími balíčky, jako je citrix-filesystem, možná budete muset upravit /etc/yum.repos.d/rh-cloud , vyhledejte volitelné rpms a nastavte povolenou hodnotu 1.

  2. Restartujte virtuální počítač a pokračujte ověřením instalace.

Ověření instalace ovladače

Pokud chcete dotazovat stav zařízení GPU, připojte se přes SSH k virtuálnímu počítači a spusťte nástroj příkazového řádku nvidia-smi nainstalovaný s ovladačem.

Pokud je ovladač nainstalovaný, Nvidia SMI vypíše GPU-Util jako 0 %, dokud na virtuálním počítači nespustíte úlohu GPU. Verze ovladače a podrobnosti o GPU se můžou lišit od zobrazených.

Stav zařízení NVIDIA

Síťové připojení RDMA

Připojení k síti RDMA je možné povolit na virtuálních počítačích řady N-series podporujících RDMA, jako je NC24r nasazená ve stejné skupině dostupnosti nebo v jedné skupině umístění ve škálovací sadě virtuálních počítačů. Síť RDMA podporuje provoz rozhraní MPI (Message Passing Interface) pro aplikace spuštěné s technologií Intel MPI 5.x nebo novější verzí:

Distribuce

Nasaďte virtuální počítače řady N-series s podporou RDMA z jedné z imagí na Azure Marketplace, které podporují připojení RDMA na virtuálních počítačích řady N-series:

  • Ubuntu 16.04 LTS – Konfigurace ovladačů RDMA na virtuálním počítači a registrace u Intelu ke stažení Intel MPI:

    1. Instalace dapl, rdmacm, ibverbs a mlx4

      sudo apt-get update
      
      sudo apt-get install libdapl2 libmlx4-1
      
      
    2. V souboru /etc/waagent.conf povolte RDMA tak, že odkomentujte následující řádky konfigurace. K úpravám tohoto souboru potřebujete kořenový přístup.

      OS.EnableRDMA=y
      
      OS.UpdateRdmaDriver=y
      
    3. Přidejte nebo změňte následující nastavení paměti v znalostní bázi v souboru /etc/security/limits.conf. K úpravám tohoto souboru potřebujete kořenový přístup. Pro účely testování můžete nastavit memlock na neomezenou dobu. Například: <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. Nainstalujte knihovnu Intel MPI. Buď si kupte a stáhněte knihovnu od Společnosti Intel, nebo si stáhněte bezplatnou zkušební verzi.

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

      Podporují se pouze moduly runtime Intel MPI 5.x.

      Postup instalace najdete v průvodci instalací knihovny Intel MPI.

    5. Povolte trasování pro procesy jiného než kořenového ladicího programu (potřebné pro nejnovější verze Intel MPI).

      echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
      
  • Na virtuálním počítači jsou nainstalované ovladače RDMA založené na CentOS 7.4 HPC a Intel MPI 5.1.

  • HpC se systémem CentOS – CentOS-HPC 7.6 a novější (pro skladové položky, ve kterých se InfiniBand podporuje přes SR-IOV). Tyto image mají předinstalované knihovny Mellanox OFED a MPI.

Poznámka:

Karty CX3-Pro jsou podporovány pouze prostřednictvím verzí LTS Mellanox OFED. Na virtuálních počítačích řady N-series použijte LTS Mellanox OFED (4.9-0.1.7.0) s kartami Připojení X3-Pro. Další informace najdete v tématu Ovladače systému Linux.

Některé nejnovější image prostředí HPC z Azure Marketplace mají také Mellanox OFED 5.1 a novější, které nepodporují karty Připojení X3-Pro. Před použitím na virtuálních počítačích s kartami Připojení X3-Pro zkontrolujte verzi Mellanox OFED v imagi PROSTŘEDÍ HPC.

Následující obrázky jsou nejnovější image CentOS-HPC, které podporují karty Připojení X3-Pro:

  • 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

Instalace ovladačů GRID na virtuální počítače řady NV nebo NVv3

Pokud chcete na virtuální počítače řady NV nebo NVv3-series nainstalovat ovladače NVIDIA GRID, nastavte připojení SSH ke každému virtuálnímu počítači a postupujte podle kroků pro distribuci Linuxu.

Ubuntu

  1. Spusťte příkaz lspci. Ověřte, že jsou karty nebo karty NVIDIA M60 viditelné jako zařízení PCI.

  2. Nainstalujte aktualizace.

    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. Zakažte ovladač jádra Nouveau, který není kompatibilní s ovladačem NVIDIA. (Použijte pouze ovladač NVIDIA na virtuálních počítačích NV nebo NVv2.) Pokud chcete ovladač zakázat, vytvořte soubor s /etc/modprobe.d názvem nouveau.conf s následujícím obsahem:

    blacklist nouveau
    blacklist lbm-nouveau
    
  4. Restartujte virtuální počítač a znovu se připojte. Ukončete X server:

    sudo systemctl stop lightdm.service
    
  5. Stáhněte a nainstalujte ovladač GRID:

    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. Když se zobrazí dotaz, jestli chcete spustit nástroj nvidia-xconfig pro aktualizaci konfiguračního souboru X, vyberte Ano.

  7. Po dokončení instalace zkopírujte /etc/nvidia/gridd.conf.template do nového souboru gridd.conf v umístění /etc/nvidia/

    sudo cp /etc/nvidia/gridd.conf.template /etc/nvidia/gridd.conf
    
  8. Přidejte následující položky:/etc/nvidia/gridd.conf

    IgnoreSP=FALSE
    EnableUI=FALSE
    
  9. Pokud je k dispozici, odeberte následující /etc/nvidia/gridd.conf položky:

    FeatureType=0
    
  10. Restartujte virtuální počítač a pokračujte ověřením instalace.

Instalace ovladače GRID na Ubuntu s povoleným zabezpečeným spouštěním

Proces instalace ovladače GRID nenabízí žádné možnosti pro přeskočení sestavení a instalace modulu jádra a výběru jiného zdroje podepsaných modulů jádra, takže po instalaci podepsaných modulů jádra musí být zabezpečené spouštění na virtuálních počítačích s Linuxem zakázané.

CentOS nebo Red Hat Enterprise Linux

  1. Aktualizujte jádro a D Služba správy klíčů (doporučeno). Pokud se rozhodnete neaktualizovat jádro, ujistěte se, že jsou verze kernel-devel jádra vhodné 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
    sudo yum install hyperv-daemons
    
  2. Zakažte ovladač jádra Nouveau, který není kompatibilní s ovladačem NVIDIA. (Použijte pouze ovladač NVIDIA na virtuálních počítačích NV nebo NV3.) Uděláte to tak, že vytvoříte soubor s /etc/modprobe.d názvem nouveau.conf s následujícím obsahem:

    blacklist nouveau
    blacklist lbm-nouveau
    
  3. Restartujte virtuální počítač, znovu se připojte a nainstalujte nejnovější linuxové integrační služby pro Hyper-V a Azure. Ověřením výsledků lspci zkontrolujte, jestli je lis vyžadován. Pokud jsou všechna zařízení s GPU uvedená podle očekávání, instalace LIS se nevyžaduje.

    Tento krok přeskočte, pokud plánujete používat CentOS/RHEL 7.8 (nebo vyšší verze), protože lis už pro tyto verze nevyžaduje.

    wget https://aka.ms/lis
    tar xvzf lis
    cd LISISO
    
    sudo ./install.sh
    sudo reboot
    
    
  4. Znovu se připojte k virtuálnímu počítači a spusťte lspci příkaz. Ověřte, že jsou karty nebo karty NVIDIA M60 viditelné jako zařízení PCI.

  5. Stáhněte a nainstalujte ovladač GRID:

    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. Když se zobrazí dotaz, jestli chcete spustit nástroj nvidia-xconfig pro aktualizaci konfiguračního souboru X, vyberte Ano.

  7. Po dokončení instalace zkopírujte /etc/nvidia/gridd.conf.template do nového souboru gridd.conf v umístění /etc/nvidia/

    sudo cp /etc/nvidia/gridd.conf.template /etc/nvidia/gridd.conf
    
  8. Přidejte dva řádky do /etc/nvidia/gridd.conf:

    IgnoreSP=FALSE
    EnableUI=FALSE
    
  9. Odeberte jeden řádek, /etc/nvidia/gridd.conf pokud je k dispozici:

    FeatureType=0
    
  10. Restartujte virtuální počítač a pokračujte ověřením instalace.

Ověření instalace ovladače

Pokud chcete dotazovat stav zařízení GPU, připojte se přes SSH k virtuálnímu počítači a spusťte nástroj příkazového řádku nvidia-smi nainstalovaný s ovladačem.

Pokud je ovladač nainstalovaný, Nvidia SMI vypíše GPU-Util jako 0 %, dokud na virtuálním počítači nespustíte úlohu GPU. Verze ovladače a podrobnosti o GPU se můžou lišit od zobrazených.

Snímek obrazovky znázorňující výstup při dotazech na stav zařízení GPU

Server X11

Pokud potřebujete server X11 pro vzdálená připojení k virtuálnímu počítači NV nebo NVv2, doporučuje se x11vnc, protože umožňuje hardwarovou akceleraci grafiky. BusID zařízení M60 musí být ručně přidán do konfiguračního souboru X11 (obvykle etc/X11/xorg.conf). "Device" Přidejte oddíl podobný následujícímu:

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

Dále aktualizujte "Screen" oddíl tak, aby používal toto zařízení.

Id desetinné čárky najdete spuštěním příkazu

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

BusID se může změnit, když se virtuální počítač znovu uvolní nebo restartuje. Proto můžete chtít vytvořit skript pro aktualizaci BusID v konfiguraci X11 při restartování virtuálního počítače. Vytvořte například skript s názvem busidupdate.sh (nebo jiným názvem, který zvolíte) s obsahem podobným následujícímu:

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

Pak vytvořte položku pro váš aktualizační skript /etc/rc.d/rc3.d , aby se skript vyvolá jako kořen při spuštění.

Řešení problému

  • Režim trvalosti můžete nastavit tak nvidia-smi , aby byl výstup příkazu rychlejší, když potřebujete dotazovat karty. Chcete-li nastavit režim trvalosti, spusťte nvidia-smi -pm 1. Všimněte si, že pokud se virtuální počítač restartuje, nastavení režimu zmizí. Nastavení režimu můžete vždy skriptovat, aby se spustilo při spuštění.
  • Pokud jste aktualizovali ovladače NVIDIA CUDA na nejnovější verzi a zjistili jste, že připojení RDMA už nefunguje, přeinstalujte ovladače RDMA, aby se připojení znovu nastavily.
  • Pokud se při instalaci LIS nepodporuje určitá verze operačního systému CentOS/RHEL (nebo jádra), vyvolá se chyba Nepodporovaná verze jádra. Nahlaste tuto chybu spolu s verzemi operačního systému a jádra.
  • Pokud dojde k přerušení úloh chybami ECC na GPU (buď opravitelné nebo neopravitelné), nejprve zkontrolujte, jestli GPU splňuje některá z kritérií RMA společnosti Nvidia pro chyby ECC. Pokud má GPU nárok na službu RMA, obraťte se na podporu o jeho servisu; jinak restartujte virtuální počítač a znovu připojte GPU, jak je popsáno tady. Méně invazní metody, například nvidia-smi -r nefungují s virtualizačním řešením nasazeným v Azure.

Další kroky