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.
Untuk informasi selengkapnya tentang versi vGPU dan cabang driver tertentu, kunjungi situs web NVIDIA .
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):
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.
Instal
ubuntu-drivers
utilitas:sudo apt update && sudo apt install -y ubuntu-drivers-common
Instal driver NVIDIA terbaru:
sudo ubuntu-drivers install
Reboot VM setelah driver GPU diinstal.
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.
Verifikasi bahwa GPU dikenali dengan benar (Anda mungkin perlu me-reboot VM Agar perubahan sistem diterapkan):
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
Perbarui kernel (disarankan). Jika Anda memilih untuk tidak memperbarui kernel, pastikan bahwa versi
kernel-devel
, dandkms
sesuai untuk kernel Anda.sudo yum install kernel kernel-tools kernel-headers kernel-devel sudo reboot
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
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
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
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.
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:
Instal dapl, rdmacm, ibverbs, dan mlx4
sudo apt-get update sudo apt-get install libdapl2 libmlx4-1
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
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>
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.
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
Jalankan perintah
lspci
. Verifikasi bahwa kartu NVIDIA M60 dapat dilihat sebagai perangkat PCI.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
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
bernamanouveau.conf
dengan konten berikut:blacklist nouveau blacklist lbm-nouveau
Boot ulang VM dan sambungkan kembali. Keluar dari server X:
sudo systemctl stop lightdm.service
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
Ketika Anda ditanya apakah Anda ingin menjalankan utilitas nvidia-xconfig untuk memperbarui file konfigurasi X Anda, pilih Ya.
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
Tambahkan hal berikut ke
/etc/nvidia/gridd.conf
:IgnoreSP=FALSE EnableUI=FALSE
Hapus pernyataan berikut dari
/etc/nvidia/gridd.conf
jika ada:FeatureType=0
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
Perbarui kernel dan DKMS (disarankan). Jika Anda memilih untuk tidak memperbarui kernel, pastikan bahwa versi
kernel-devel
dandkms
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
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
bernamanouveau.conf
dengan konten berikut:blacklist nouveau blacklist lbm-nouveau
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
Sambungkan kembali ke VM dan jalankan perintah
lspci
. Verifikasi bahwa kartu NVIDIA M60 dapat dilihat sebagai perangkat PCI.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
Ketika Anda ditanya apakah Anda ingin menjalankan utilitas nvidia-xconfig untuk memperbarui file konfigurasi X Anda, pilih Ya.
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
Tambahkan dua baris ke
/etc/nvidia/gridd.conf
:IgnoreSP=FALSE EnableUI=FALSE
Hapus satu baris dari
/etc/nvidia/gridd.conf
jika ada:FeatureType=0
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.
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, jalankannvidia-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
- Untuk menangkap citra VM Linux dengan driver NVIDIA yang diinstal, lihat Cara mengeneralisasikan dan menangkap komputer virtual Linux.