Pasang driver GPU NVIDIA pada komputer virtual seri N yang menjalankan Linux

Perhatian

Artikel ini mereferensikan CentOS, distribusi Linux yang mendekati status End Of Life (EOL). Harap pertimbangkan penggunaan dan rencanakan yang sesuai. Untuk informasi selengkapnya, lihat panduan Akhir Masa Pakai CentOS.

Berlaku untuk: ✔️ mesin virtual Linux

Untuk memanfaatkan kemampuan GPU Azure N-series VM yang didukung oleh NVIDIA GPU, Anda harus menginstal driver NVIDIA GPU. NVIDIA GPU Driver Extension menginstal driver NVIDIA CUDA atau GRID yang sesuai pada VM seri N. Instal atau kelola ekstensi menggunakan portal atau alat Microsoft Azure seperti Azure CLI atau templat Azure Resource Manager. Lihat dokumentasi NVIDIA GPU Driver Extension untuk langkah distribusi dan penyebaran yang didukung.

Jika Anda memilih untuk menginstal driver GPU NVIDIA secara manual, artikel ini menyediakan distribusi, driver, serta langkah penginstalan dan verifikasi yang didukung. Informasi persiapan driver manual juga tersedia untuk Windows VM.

Untuk spesifikasi, kapasitas penyimpanan, dan detail disk VM seri N, lihat ukuran VM GPU Linux.

Distribusi dan driver yang didukung

Perhatian

Artikel ini mereferensikan CentOS, distribusi Linux yang mendekati status End Of Life (EOL). Harap pertimbangkan penggunaan dan perencanaan Anda yang sesuai.

Driver NVIDIA CUDA

Untuk driver CUDA terbaru dan sistem operasi yang didukung, kunjungi situs web NVIDIA. Pastikan Anda menginstal atau meningkatkan ke driver CUDA terbaru yang didukung untuk distribusi Anda.

Catatan

Driver CUDA terbaru yang didukung untuk VM SKU seri NC asli saat ini adalah 470.82.01. Versi driver yang lebih baru tidak didukung pada kartu K80 di NC.

Catatan

Mesin virtual Azure NVads A10 v5 hanya mendukung GRID 14.1(510.73) atau versi driver yang lebih tinggi. Driver vGPU untuk SKU A10 adalah driver terpadu yang mendukung beban kerja grafis dan komputasi.

Tip

Sebagai alternatif untuk penginstalan driver CUDA manual pada VM Linux, Anda dapat menyebarkan gambar Azure Data Science Virtual Machine. Edisi DSVM untuk Ubuntu 16.04 LTS atau CentOS 7.4 pra-instal driver NVIDIA CUDA, CUDA Deep Neural Network Library, dan alat lainnya.

Driver NVIDIA GRID

Microsoft mendistribusikan ulang penginstal driver NVIDIA GRID untuk VM seri NV dan NVv3 yang digunakan sebagai stasiun kerja virtual atau untuk aplikasi virtual. Instal hanya driver GRID ini di Azure NV VM, hanya pada sistem operasi yang tercantum dalam tabel berikut. Driver ini termasuk lisensi untuk GRID Virtual GPU Software di Azure. Anda tidak perlu menyiapkan server lisensi perangkat lunak NVIDIA vGPU.

Driver GRID yang didistribusikan ulang oleh Azure tidak berfungsi pada sebagian besar VM seri non-NV seperti VM seri NC, NCv2, NCv3, ND, dan NDv2 tetapi berfungsi pada seri NCasT4v3.

Distribusi Driver
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, cabang driver R535(.exe)

NVIDIA vGPU 16.2, cabang driver R535(.exe)

Catatan

Untuk VM Azure NVads A10 v5, kami sarankan pelanggan untuk selalu menggunakan versi driver terbaru. Cabang driver utama NVIDIA terbaru hanya kompatibel mundur dengan cabang utama sebelumnya (n-1). Misalnya, vGPU 17.x kompatibel mundur dengan vGPU 16.x saja. VM apa pun yang masih menjalankan n-2 atau yang lebih rendah mungkin melihat kegagalan driver saat cabang drive terbaru diluncurkan ke host Azure.

NVs_v3 VM hanya mendukung vGPU 16 atau versi driver yang lebih rendah .

Kunjungi GitHub untuk daftar lengkap semua tautan driver Nvidia GRID sebelumnya.

Peringatan

Penginstalan perangkat lunak pihak ketiga pada produk Red Hat dapat memengaruhi persyaratan dukungan Red Hat. Lihat artikel dasar pengetahuan Red Hat.

Menginstal driver CUDA pada VM seri N

Berikut langkah untuk menginstal driver CUDA dari NVIDIA CUDA Toolkit pada VM seri N.

Pengembang C dan C++ dapat secara opsional menginstal Toolkit lengkap untuk membangun aplikasi yang dipercepat GPU. Untuk informasi selengkapnya, lihat Panduan Instalasi CUDA.

Untuk menginstal driver CUDA, buat koneksi SSH ke setiap VM. Untuk memverifikasi bahwa sistem memiliki GPU berkemampuan CUDA, jalankan perintah berikut:

lspci | grep -i NVIDIA

Output mirip dengan contoh berikut (memperlihatkan kartu NVIDIA Tesla K80):

Output perintah lspci

lspci mencantumkan perangkat PCIe pada VM, termasuk InfiniBand NIC dan GPU, jika ada. Jika lspci tidak berhasil dikembalikan, Anda mungkin perlu menginstal LIS di CentOS/RHEL.

Kemudian, jalankan perintah instalasi khusus untuk distribusi Anda.

Ubuntu

Ubuntu mengemas driver kepemilikan NVIDIA. Driver tersebut berasal langsung dari NVIDIA dan hanya dikemas oleh Ubuntu sehingga mereka dapat dikelola secara otomatis oleh sistem. Mengunduh dan menginstal driver dari sumber lain dapat menyebabkan sistem rusak. Selain itu, menginstal driver pihak ketiga memerlukan langkah tambahan pada VM dengan TrustedLaunch dan Boot Aman diaktifkan. Mereka mengharuskan pengguna untuk menambahkan Kunci Pemilik Mesin baru agar sistem dapat melakukan booting. Driver dari Ubuntu ditandatangani oleh Canonical dan akan bekerja dengan Boot Aman.

  1. Instal ubuntu-drivers utilitas:

    sudo apt update && sudo apt install -y ubuntu-drivers-common
    
  2. Instal driver NVIDIA terbaru:

    sudo ubuntu-drivers install
    
  3. Unduh dan instal toolkit CUDA dari NVIDIA:

    Catatan

    Contoh menunjukkan jalur paket CUDA untuk Ubuntu 22.04 LTS. Ganti jalur khusus ke versi akan Anda gunakan.

    Kunjungi NVIDIA Download Center atau halaman NVIDIA CUDA Resources untuk jalur lengkap khusus untuk setiap versi.

    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
    

    Penginstalan dapat memakan waktu beberapa menit.

  4. Verifikasi bahwa GPU dikenali dengan benar:

    nvidia-smi
    

Pembaruan driver NVIDIA

Sebaiknya perbarui driver NVIDIA secara berkala setelah penyebaran.

sudo apt update
sudo apt full-upgrade

CentOS atau Red Hat Enterprise Linux

  1. Perbarui kernel (disarankan). Jika Anda memilih untuk tidak memperbarui kernel, pastikan bahwa versi kernel-devel, dan dkms sesuai untuk kernel Anda.

    sudo yum install kernel kernel-tools kernel-headers kernel-devel
    sudo reboot
    
  2. Instal Layanan Integrasi Linux terbaru untuk Hyper-V dan Azure. Periksa apakah LIS diperlukan dengan memverifikasi hasil lspci. Jika semua perangkat GPU tercantum seperti yang diharapkan, menginstal LIS tidak diperlukan.

    LIS berlaku untuk Red Hat Enterprise Linux, CentOS, dan Oracle Linux Red Hat Compatible Kernel 5.2-5.11, 6.0-6.10, dan 7.0-7.7. Lihat dokumentasi Linux Integration Services untuk detail selengkapnya. Lewati langkah ini jika Anda berencana menggunakan CentOS/RHEL 7.8 (atau versi yang lebih tinggi) karena LIS tidak lagi diperlukan untuk versi ini.

    wget https://aka.ms/lis
    tar xvzf lis
    cd LISISO
    
    sudo ./install.sh
    sudo reboot
    
  3. Sambungkan kembali ke VM dan lanjutkan penginstalan dengan perintah berikut:

    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
    

    Penginstalan dapat memakan waktu beberapa menit.

    Catatan

    Kunjungi Fedora dan Nvidia CUDA repo untuk memilih paket yang tepat untuk versi CentOS atau RHEL yang ingin Anda gunakan.

Misalnya, CentOS 8 dan RHEL 8 memerlukan langkah-langkah berikut.

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. Untuk menginstal toolkit CUDA lengkap secara opsional, ketik:

    sudo yum install cuda
    

    Catatan

    Jika Anda melihat pesan kesalahan terkait dengan paket yang hilang seperti vulkan-filesystem maka Anda mungkin perlu mengedit /etc/yum.repos.d/rh-cloud , cari optional-rpms dan atur diaktifkan ke 1

  2. Boot ulang VM dan lanjutkan untuk memverifikasi penginstalan.

Memverifikasi penginstalan driver

Untuk mengkueri status perangkat GPU, SSH ke VM dan jalankan utilitas baris perintah nvidia-smi yang diinstal dengan driver.

Jika driver diinstal, Nvidia SMI mencantumkan GPU-Util sebagai 0% hingga Anda menjalankan beban kerja GPU pada VM. Versi driver dan detail GPU Anda mungkin berbeda dengan yang ditampilkan.

Status perangkat NVIDIA

Konektivitas jaringan RDMA

Konektivitas jaringan RDMA dapat diaktifkan pada VM seri N berkemampuan RDMA seperti NC24r yang disebarkan dalam rangkaian ketersediaan yang sama atau dalam satu grup penempatan dalam set skala komputer virtual (VM). Jaringan RDMA mendukung lalu lintas Message Passing Interface (MPI) untuk aplikasi yang berjalan dengan Intel MPI 5.x atau versi yang lebih baru:

Distribusi

Sebarkan VM seri N berkemampuan RDMA dari salah satu citra di Azure Marketplace yang mendukung konektivitas RDMA pada VM seri N:

  • Ubuntu 16.04 LTS - Konfigurasikan driver RDMA pada VM dan daftarkan dengan Intel untuk mengunduh Intel MPI:

    1. Instal dapl, rdmacm, ibverbs, dan mlx4

      sudo apt-get update
      
      sudo apt-get install libdapl2 libmlx4-1
      
      
    2. Dalam /etc/waagent.conf, aktifkan RDMA dengan tidak mengisi komentar pada kalimat-kalimat konfigurasi berikut. Anda memerlukan akses root untuk mengedit file ini.

      OS.EnableRDMA=y
      
      OS.UpdateRdmaDriver=y
      
    3. Tambahkan atau ubah pengaturan memori berikut dalam KB dalam file /etc/security/limits.conf. Anda memerlukan akses root untuk mengedit file ini. Untuk tujuan pengujian, Anda dapat set memlock ke tak terbatas. Misalnya: <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. Instal Perpustakaan Intel MPI. Baik membeli dan mengunduh perpustakaan dari Intel atau unduh versi evaluasi gratis.

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

      Hanya Intel MPI 5.x runtimes yang didukung.

      Untuk langkah-langkah penginstalan, lihat Panduan Instalasi Perpustakaan Intel MPI.

    5. Aktifkan ptrace untuk proses non-root non-debugger (diperlukan untuk versi terbaru Intel MPI).

      echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
      
  • HPC 7.4 berbasis CentOS - Driver RDMA dan Intel MPI 5.1 diinstal pada VM.

  • HPC berbasis CentOS - CentOS-HPC 7.6 dan yang lebih baru (untuk SKU di mana InfiniBand didukung melalui SR-IOV). Citra ini memiliki pustaka Mellanox OFED dan MPI yang telah diinstal sebelumnya.

Catatan

Kartu CX3-Pro ini hanya didukung melalui Mellanox OFED versi LTS. Gunakan LTS Mellanox versi OFED (4.9-0.1.7.0) pada VM seri N dengan kartu ConnectX3-Pro. Untuk informasi lebih lanjut, lihat Driver Linux.

Selain itu, beberapa citra HPC Azure Marketplace terbaru memiliki Mellanox OFED 5.1 dan yang lebih baru, yang tidak mendukung kartu ConnectX3-Pro. Periksa versi Mellanox OFED pada citra HPC sebelum menggunakannya di VM dengan kartu ConnectX3-Pro.

Berikut citra CentOS-HPC terbaru yang mendukung kartu ConnectX3-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

Menginstal driver GRID pada VM seri NV atau NVv3

Untuk menginstal driver NVIDIA GRID pada VM seri NV atau NVv3, buat koneksi SSH ke setiap VM dan ikuti langkah untuk distribusi Linux Anda.

Ubuntu

  1. Jalankan perintah lspci. Verifikasi bahwa kartu NVIDIA M60 dapat dilihat sebagai perangkat PCI.

  2. Instal pembaruan.

    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. Nonaktifkan driver kernel Nouveau, yang tidak kompatibel dengan driver NVIDIA. (Hanya gunakan driver NVIDIA pada VM NV atau NVv2.) Untuk menonaktifkan driver, buat file di /etc/modprobe.d bernama nouveau.conf dengan konten berikut:

    blacklist nouveau
    blacklist lbm-nouveau
    
  4. Boot ulang VM dan sambungkan kembali. Keluar dari server X:

    sudo systemctl stop lightdm.service
    
  5. Unduh dan instal driver 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. Ketika Anda ditanya apakah Anda ingin menjalankan utilitas nvidia-xconfig untuk memperbarui file konfigurasi X Anda, pilih Ya.

  7. Setelah penginstalan selesai, salin /etc/nvidia/gridd.conf.template ke file gridd.conf baru di lokasi /etc/nvidia/

    sudo cp /etc/nvidia/gridd.conf.template /etc/nvidia/gridd.conf
    
  8. Tambahkan hal berikut ke /etc/nvidia/gridd.conf:

    IgnoreSP=FALSE
    EnableUI=FALSE
    
  9. Hapus pernyataan berikut dari /etc/nvidia/gridd.conf jika ada:

    FeatureType=0
    
  10. Boot ulang VM dan lanjutkan untuk memverifikasi penginstalan.

Instal driver GRID di Ubuntu dengan Boot Aman diaktifkan

Proses penginstalan driver GRID tidak menawarkan opsi apa pun untuk melewati build dan penginstalan modul kernel dan memilih sumber modul kernel yang ditandatangani yang berbeda, jadi boot aman harus dinonaktifkan di VM Linux untuk menggunakannya dengan GRID, setelah menginstal modul kernel yang ditandatangani.

CentOS atau Red Hat Enterprise Linux

  1. Perbarui kernel dan DKMS (disarankan). Jika Anda memilih untuk tidak memperbarui kernel, pastikan bahwa versi kernel-devel dan dkms sesuai untuk kernel Anda.

    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. Nonaktifkan driver kernel Nouveau, yang tidak kompatibel dengan driver NVIDIA. (Hanya gunakan driver NVIDIA pada VM NV atau NV3) Untuk melakukan ini, buat file /etc/modprobe.d bernama nouveau.conf dengan konten berikut:

    blacklist nouveau
    blacklist lbm-nouveau
    
  3. Boot ulang VM, sambungkan kembali, dan instal Layanan Integrasi Linux terbaru untuk Hyper-V dan Azure. Periksa apakah LIS diperlukan dengan memverifikasi hasil lspci. Jika semua perangkat GPU tercantum seperti yang diharapkan, menginstal LIS tidak diperlukan.

    Lewati langkah ini jika Anda berencana menggunakan CentOS/RHEL 7.8 (atau versi yang lebih tinggi) karena LIS tidak lagi diperlukan untuk versi ini.

    wget https://aka.ms/lis
    tar xvzf lis
    cd LISISO
    
    sudo ./install.sh
    sudo reboot
    
    
  4. Sambungkan kembali ke VM dan jalankan perintah lspci. Verifikasi bahwa kartu NVIDIA M60 dapat dilihat sebagai perangkat PCI.

  5. Unduh dan instal driver 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. Ketika Anda ditanya apakah Anda ingin menjalankan utilitas nvidia-xconfig untuk memperbarui file konfigurasi X Anda, pilih Ya.

  7. Setelah penginstalan selesai, salin /etc/nvidia/gridd.conf.template ke file gridd.conf baru di lokasi /etc/nvidia/

    sudo cp /etc/nvidia/gridd.conf.template /etc/nvidia/gridd.conf
    
  8. Tambahkan dua baris ke /etc/nvidia/gridd.conf:

    IgnoreSP=FALSE
    EnableUI=FALSE
    
  9. Hapus satu baris dari /etc/nvidia/gridd.conf jika ada:

    FeatureType=0
    
  10. Boot ulang VM dan lanjutkan untuk memverifikasi penginstalan.

Memverifikasi penginstalan driver

Untuk mengkueri status perangkat GPU, SSH ke VM dan jalankan utilitas baris perintah nvidia-smi yang diinstal dengan driver.

Jika driver diinstal, Nvidia SMI akan mencantumkan GPU-Util sebagai 0% hingga Anda menjalankan beban kerja GPU pada VM. Versi driver dan detail GPU Anda mungkin berbeda dengan yang ditampilkan.

Cuplikan layar yang memperlihatkan output ketika status perangkat GPU dikueri.

Server X11

Jika Anda memerlukan server X11 untuk koneksi jarak jauh ke VM NV atau NVv2, disarankan menggunakan x11vnc karena server ini memungkinkan akselerasi perangkat keras grafis. BusID perangkat M60 harus ditambahkan secara manual ke file konfigurasi X11 (biasanya, etc/X11/xorg.conf). Tambahkan bagian "Device" yang mirip dengan contoh berikut:

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

Selain itu, perbarui bagian "Screen" untuk menggunakan perangkat ini.

BusID desimal dapat ditemukan dengan menjalankan

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

BusID dapat berubah ketika VM dialokasikan ulang atau di-boot ulang. Oleh karena itu, Anda mungkin ingin membuat skrip untuk memperbarui BusID dalam konfigurasi X11 saat VM di-boot ulang. Contohnya, buat skrip bernama busidupdate.sh (atau nama lain yang Anda pilih) dengan konten yang mirip dengan contoh berikut:

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

Kemudian, buat entri untuk skrip pembaruan pada /etc/rc.d/rc3.d agar skrip dipanggil sebagai root on boot.

Pemecahan Masalah

  • Anda dapat mengatur mode kegigihan menggunakan nvidia-smi agar output perintah lebih cepat saat Anda perlu mengkueri kartu. Untuk mengatur mode kegigihan, jalankan nvidia-smi -pm 1. Perhatikan bahwa jika VM dimulai ulang, pengaturan mode akan hilang. Anda selalu dapat membuat skrip pengaturan mode untuk dijalankan saat pengaktifan.
  • Jika Anda memperbarui driver NVIDIA CUDA ke versi terbaru dan menemukan bahwa konektivitas RDMA tidak lagi berfungsi, instal kembali driver RDMA untuk membangun kembali konektivitas tersebut.
  • Selama instalasi LIS, jika versi (atau kernel) CentOS/RHEL OS tertentu tidak didukung untuk LIS, kesalahan "Versi kernel tidak didukung" dikirimkan. Harap laporkan kesalahan ini bersama dengan versi OS dan kernel.
  • Jika pekerjaan terganggu oleh kesalahan ECC pada GPU (baik yang dapat diperbaiki atau tidak dapat diperbaiki), periksa terlebih dahulu untuk melihat apakah GPU memenuhi salah satu kriteria RMA untuk kesalahan ECC Nvidia. Jika GPU memenuhi syarat untuk RMA, harap hubungi dukungan untuk memperbaikinya; jika tidak, reboot Mesin Virtual Anda untuk memasang kembali GPU seperti yang dijelaskan di sini. Metode yang kurang invasif seperti nvidia-smi -r tidak berfungsi dengan solusi virtualisasi yang disebarkan di Azure.

Langkah berikutnya