Setup Driver GPU Nvidia: Langkah Penting untuk Pembangun AI
Dalam era ledakan AI ini, LLM mungkin adalah apa yang setiap syarikat bincangkan. Banyak tempat mahu Penyelesaian LLM memainkan peranan yang lebih besar di syarikat mereka, sama ada mencipta Chatbot, RAG, dsb. Yang mengikuti adalah penyelesaian ini perlu berada di Infrastructure syarikat, sama ada On-premises atau Cloud provider, berdasarkan keperluan bahawa data tidak boleh dihantar ke penyedia LLM luaran seperti OpenAI untuk diproses.
Oleh itu, tugas baru untuk orang infrastructure seperti kita adalah menyediakan mesin GPU. Walau bagaimanapun, selepas mendapat mesin, masih banyak perkara yang perlu dikonfigurasi, seperti memasang driver dan alat lain. Dalam artikel ini, kita akan memperkenalkan kaedah persediaan mesin asas untuk pasukan Infra untuk memastikan GPU Instances yang kita cipta seready mungkin untuk digunakan.
Saya akan mengawali dengan mengatakan bahawa GPU yang utamanya kita gunakan adalah daripada Nvidia, yang merupakan salah satu pemimpin pasaran dengan pengguna terbanyak sekarang. Jadi semua kandungan akan menggunakan Nvidia sebagai pencerita. Bersedia? Mari kita mulakan!!
Memasang Driver
Memasang Nvidia GPU Driver tidak sesukar atau sekompleks yang anda fikirkan. Kita boleh mengikuti Document Nvidia, tetapi kita perlu menyesuaikan beberapa parameter agar sesuai dengan OS dan CPU Architecture yang kita pilih. Dalam artikel ini, kita mungkin tidak akan merangkumi setiap topik yang disenaraikan di Document, tetapi kita akan mengajar kaedah pemasangan asas yang membolehkan penggunaan GPU.
Dokumen pemasangan driver Nvidia
1. Sediakan Parameter Yang Diperlukan
Daripada jadual Supported Linux Distributions, yang memberitahu kita versi Linux mana yang menyokong pemasangan Driver.
3 parameter yang perlu kita catat untuk digunakan di langkah seterusnya:
- $distro
 - $arch
 - $arch_ext
 
Katakan kita menggunakan Linux Ubuntu 22.04 LTS di mesin x86. Apabila kita membandingkan nilai dalam jadual:

Nilainya akan: $distro = ubuntu2204 $arch = x86_64 $arch_ext = amd64
2. Pilih Panduan Pemasangan Mengikut Distribusi Linux
Langkah ini adalah memilih kaedah pemasangan Driver mengikut OS kita. Daripada contoh saya memilih Ubuntu, kita akan melihat bahagian 10 yang menjelaskan kaedah pemasangan Ubuntu.

Yang perlu kita lakukan adalah:
- Ikuti semua langkah Pre-installation
 - Pasang kernel headers dan development packages
 
sudo apt install linux-headers-$(uname -r)
- Pilih kaedah pemasangan antara Local Repository atau Network Repository. Saya akan pilih Network Repository.
 
Di URL https://developer.download.nvidia.com/compute/cuda/repos/$distro/$arch/cuda-keyring_1.1-1_all.deb
Gantikan $distro dan $arch dengan nilai daripada jadual
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update
Pasang pakej cuda-keyring baru
- Pasang Driver
 
sudo apt install nvidia-open
Selepas menyelesaikan langkah ini, kita akan mempunyai Nvidia Driver dan CUDA Library terpasang di mesin kita. Kita boleh mengesahkan dengan arahan:
nvidia-smi
Output akan menunjukkan jumlah GPU aktif bersama dengan penggunaan asas.

output nvidia-smi
- Pasang CUDA Toolkit
 
apt install cuda-toolkit
Pemasangan CUDA Toolkit
Itu sahaja! Kita kini mempunyai mesin Linux Ubuntu dengan GPU siap digunakan.
NVIDIA Container Toolkit
Ringkasnya, ini adalah Tools dan Libraries yang membolehkan container menggunakan GPU. Kita akan mulakan dengan memasang NVIDIA Container Toolkit. Contoh ini memberi tumpuan kepada container Docker yang saya percaya ramai orang paling banyak gunakan.
Daripada contoh ini, kita akan menggunakan Ubuntu sebagai contoh pemasangan.
Prerequisites:
- Container engine (Docker, Containerd)
 - Nvidia GPU Driver
 
- Konfigurasi production repository
 
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
- Update senarai packages daripada repository
 
sudo apt-get update
- Pasang packages NVIDIA Container Toolkit
 
sudo apt-get install -y nvidia-container-toolkit
Daripada 3 langkah ini, kita akan mempunyai nvidia container toolkit terpasang. Langkah seterusnya adalah mengkonfigurasi container engine kita untuk menggunakan toolkit ini.
Konfigurasi Docker
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
Untuk container engine lain, anda boleh memeriksa Document untuk butiran lanjut.
Untuk Kubernetes, saya akan menjadikannya topik utama lain kerana terdapat Tool khusus lain yang lebih sesuai untuk K8S daripada memasang GPU Driver dan mengkonfigurasi toolkit di setiap Node.
Alat Pemantauan
Selepas pemasangan dan penggunaan, perkara seterusnya yang harus kita lakukan adalah memantau penggunaan. Pemantauan awal paling mudah mungkin hanya menggunakan nvidia-smi untuk melihat berapa banyak GPU ada dan berapa banyak penggunaan, tetapi itu tidak cukup terperinci. Jadi saya ingin mengesyorkan Tools lain sebagai pilihan penggunaan.
Nvitop
Interactive CLI yang boleh melihat penggunaan GPU secara terperinci. Pemasangan sangat mudah dengan:
pip3 install --upgrade nvitop
Kemudian gunakan sahaja arahan:
nvitop
Dan anda akan mendapat Interactive UI yang dipaparkan melalui terminal


Di mana kita boleh Drill-Down untuk melihat setiap proses yang berjalan.
NVIDIA DCGM
Tool Rasmi daripada Nvidia yang dibangunkan dengan Golang, bertindak sebagai API untuk mengekstrak pelbagai metrik GPU Cluster.
Untuk pemasangan di VM biasa, anda memerlukan GPU Driver, Docker engine bersama dengan Nvidia Container toolkit terpasang terlebih dahulu untuk menggunakan DCGM.
Untuk kaedah penggunaan, saya akan menyimpannya untuk menulis sebagai artikel lengkap berasingan kerana menggunakan DCGM secara maksimum memerlukan penggunaannya dengan beberapa Tools lain seperti Prometheus dan Grafana Dashboard.
Ringkasan Akhir
Sekarang, saya fikir semua orang yang membaca sampai akhir harus dapat menyediakan VM dengan GPU siap untuk penggunaan pasukan. Jika kita secara beransur-ansur memahaminya, saya fikir ini lebih mudah daripada memasang beberapa Services. Untuk kandungan yang tertunda, sila terus ikuti. Ia harus membantu anda membina infrastructure dari dev hingga pengeluaran.