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

Berlaku untuk: ✔️ Mesin virtual Linux

Untuk memanfaatkan kemampuan GPU Azure N-series VM yang didukung oleh GPU NVIDIA, Anda harus menginstal driver GPU NVIDIA. 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

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 mesin virtual seri NC saat ini adalah versi 470.82.01. Versi driver yang lebih baru tidak didukung pada kartu K80 di NC.

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 Mesin Virtual seri non-NV seperti Mesin Virtual seri NC, NCv2, NCv3, ND, dan NDv2, tetapi berfungsi pada seri NCasT4v3.

Distribusi Driver
Ubuntu 16.04 LTS, 18.04 LTS

Red Hat Enterprise Linux 7.9

SUSE Linux Enterprise Server 15 SP2+, 15 SP2
NVIDIA GRID 14.1, cabang driver R510(.exe)

Catatan

Mesin virtual Azure NVads A10 v5 hanya mendukung GRID 14.1(510.73) atau versi driver yang lebih tinggi.

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 lebih lanjut, lihat Panduan Penginstalan 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

Anda akan melihat output yang mirip dengan contoh berikut (menampilkan kartu NVIDIA Tesla K80):

Output perintah lspci

lspci mencantumkan perangkat PCIe pada VM, termasuk InfiniBand NIC dan GPU, jika ada. Jika lspci tidak berhasil ditampilkan, Anda mungkin perlu menginstal LIS pada CentOS/RHEL (instruksi di bawah). Kemudian, jalankan perintah instalasi khusus untuk distribusi Anda.

Ubuntu

  1. Unduh dan instal driver CUDA dari situs web NVIDIA.

    Catatan

    Contoh di bawah menunjukkan jalur paket CUDA untuk Ubuntu 16.04. Ganti jalur khusus ke versi akan Anda gunakan.

    Kunjungi Nvidia Download Center untuk jalur lengkap khusus ke setiap versi.

    CUDA_REPO_PKG=cuda-repo-ubuntu1604_10.0.130-1_amd64.deb
    wget -O /tmp/${CUDA_REPO_PKG} https://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 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/3bf863cc.pub
    rm -f /tmp/${CUDA_REPO_PKG}
    
    sudo apt-get update
    sudo apt-get install cuda-drivers
    

    Penginstalan dapat memakan waktu beberapa menit.

  2. Untuk menginstal toolkit CUDA lengkap secara opsional, ketik:

    sudo apt-get install cuda
    
  3. Boot ulang VM dan lanjutkan untuk memverifikasi penginstalan.

Pembaruan driver CUDA

Kami menyarankan agar Anda memperbarui driver CUDA secara berkala setelah penyebaran.

sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get dist-upgrade -y
sudo apt-get install cuda-drivers

sudo reboot

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 (dan didokumentasikan di atas), menginstal LIS tidak diperlukan.

    Harap diingat bahwa LIS dapat diterapkan 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. Silakan merujuk ke dokumentasi Layanan Integrasi Linux untuk detail lebih lanjut. 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 install dkms
    
    sudo wget https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-rhel7.repo -O /etc/yum.repos.d/cuda-rhel7.repo
    
    sudo yum install 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.

Contohnya, CentOS 8 dan RHEL 8 akan memerlukan 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 terinstal, Anda akan melihat output yang mirip dengan yang berikut ini. Perhatikan bahwa GPU-Util menunjukkan 0% kecuali saat ini 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. Persyaratan tambahan termasuk:

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 melakukan ini, buat file /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 pernyataan 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.

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 (dan didokumentasikan di atas), 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 pernyataan 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.

Memverifikasi penginstalan driver

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

Jika driver terinstal, Anda akan melihat output yang mirip dengan yang berikut ini. Perhatikan bahwa GPU-Util menunjukkan 0% kecuali saat ini 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. Perhatikan bahwa metode yang kurang invasif seperti nvidia-smi -r tidak berfungsi dengan solusi virtualisasi yang diterapkan di Azure.

Langkah berikutnya