Mục lục bài
Chọn một trong hai cách cài driver — đừng trộn
Cảnh báo: Cài driver từ hai nguồn trên cùng một máy là nguyên nhân phổ biến nhất của lỗi nvidia-smi báo lệch phiên bản. Chọn một cách và giữ nguyên.
Các bước thực hiện
Tiến độ chỉ lưu trên trình duyệt này.
Bước 1: Thiết lập BIOS/UEFI
- Bật Above 4G Decoding (tên có thể là "MMIO above 4G") — bắt buộc với GPU có nhiều VRAM.
- Bật Resizable BAR nếu nền tảng và GPU hỗ trợ.
- Secure Boot: hoặc tắt, hoặc giữ bật và ký module driver (MOK) ở bước cài đặt.
- Chọn cấu hình nguồn/hiệu năng theo hướng "Performance" trong BIOS hoặc BMC.
- Bật IOMMU/SR-IOV chỉ khi bạn định chia GPU cho máy ảo; máy bare-metal huấn luyện nhiều GPU nên đọc khuyến nghị về ACS trong tài liệu NCCL.
- Cập nhật BIOS và firmware BMC lên bản hãng máy chủ khuyến nghị cho GPU đang dùng.
Bước 2: Cập nhật hệ thống và kiểm tra GPU trên bus PCIe
Bash lspciphải liệt kê đủ số GPU. Thiếu card ở bước này là lỗi phần cứng/BIOS/riser — cài driver không sửa được.Bước 3: Cài driver NVIDIA
Cách A — dùng
ubuntu-drivers(bản-serverdành cho máy chủ tính toán):Cách A: kho Ubuntu Cách B — dùng repo CUDA của NVIDIA (ví dụ cho Ubuntu 24.04 x86_64; đổi
ubuntu2404theo bản Ubuntu của bạn):Cách B: repo CUDA Lưu ý: Nếu Secure Boot đang bật, trình cài sẽ yêu cầu đặt mật khẩu MOK. Sau khi khởi động lại, chọn "Enroll MOK" trên màn hình console và nhập mật khẩu đó — cần truy cập console qua BMC.
Bước 4: Kiểm tra driver và topo GPU
Bash nvidia-smiphải hiện đủ GPU và phiên bản driver.nvidia-smi topo -mcho biết GPU nối nhau qua NVLink (NV#), cùng switch PCIe (PIX/PXB) hay phải đi qua CPU (SYS) — thông tin này cần khi đặt tiến trình và chọn tensor parallel. Modulenouveaukhông được xuất hiện.Bước 5: Cài CUDA Toolkit (khi cần biên dịch)
Wheel PyTorch đã kèm thư viện CUDA runtime, nên chỉ chạy PyTorch thì chưa cần Toolkit. Bạn cần Toolkit khi biên dịch extension (flash-attention, DeepSpeed op, nccl-tests…). Toolkit lấy từ repo CUDA ở bước 3 (cách B) — cài riêng
cuda-keyringnếu bạn đã chọn cách A.Bash Mẹo: Gói
cuda-toolkitchỉ cài Toolkit, không đụng tới driver. Tránh cài góicuda(gói gộp) nếu bạn đã cài driver bằng cách A, vì nó kéo theo driver từ repo NVIDIA.Bước 6: Bật persistence mode
Persistence giữ driver nạp sẵn khi không có tiến trình dùng GPU, tránh độ trễ khởi tạo mỗi lần chạy job và giữ cấu hình GPU ổn định.
Bash Bước 7: Cài Fabric Manager cho hệ HGX/NVSwitch
Chỉ áp dụng cho máy có NVSwitch (bo mạch HGX nhiều GPU SXM). Máy card PCIe thường bỏ qua bước này. Phiên bản Fabric Manager phải khớp chính xác nhánh driver.
Bash Cảnh báo: Trên hệ NVSwitch, thiếu hoặc lệch phiên bản Fabric Manager thì CUDA không khởi tạo được GPU dù
nvidia-smivẫn liệt kê card. Với các thế hệ HGX mới, đọc thêm tài liệu NVIDIA về NVLink Subnet Manager đi kèm.Bước 8: Cài DCGM và chạy chẩn đoán
DCGM (Data Center GPU Manager) dùng để kiểm tra sức khoẻ, chạy chẩn đoán và cấp số liệu cho hệ giám sát. Tên gói thay đổi theo thế hệ DCGM và phiên bản CUDA — kiểm tra trang tài liệu trước khi cài.
Bash Mức
-r 1chạy nhanh để kiểm tra triển khai. Các mức cao hơn (-r 2,-r 3) chạy lâu và tải GPU nặng — chạy ngoài giờ hoặc trước khi bàn giao máy.
Kiểm tra thành công
- Đủ số GPU, cùng phiên bản driver, persistence mode = Enabled.
nvcc --versionin ra phiên bản Toolkit (nếu bạn cài Toolkit).dcgmi diag -r 1không có mục Fail.- Hệ HGX: dịch vụ
nvidia-fabricmanagerở trạng thái active.
Lỗi thường gặp & cách sửa
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver
Nguyên nhân thường gặp: Module chưa nạp: chưa khởi động lại, Secure Boot chặn module chưa ký, hoặc thiếu kernel header khi DKMS build.
Nếu Secure Boot bật và module chưa ký: enroll MOK hoặc tắt Secure Boot. Nếu DKMS lỗi: cài linux-headers-$(uname -r) rồi cài lại gói driver.
Failed to initialize NVML: Driver/library version mismatch
Nguyên nhân thường gặp: Thư viện user-space đã cập nhật nhưng module kernel cũ vẫn đang nạp, hoặc trộn driver từ hai nguồn.
Khởi động lại máy. Nếu vẫn lỗi, liệt kê gói bằng dpkg -l | grep -i nvidia, gỡ các gói lệch nguồn và cài lại theo một cách duy nhất.
lspci thấy GPU nhưng nvidia-smi thiếu card hoặc báo lỗi bộ nhớ BAR
Nguyên nhân thường gặp: Above 4G Decoding chưa bật, card lỏng/riser lỗi, nguồn cấp cho GPU chưa đủ.
Bật Above 4G Decoding, kiểm tra cáp nguồn GPU, xem nhật ký BMC và sudo dmesg -T | grep -i nvrm.
CUDA báo không có thiết bị trên máy HGX dù nvidia-smi thấy đủ GPU
Nguyên nhân thường gặp: Fabric Manager chưa chạy hoặc lệch phiên bản với driver.
Bước tiếp theo
Chạy mọi thứ trong container để môi trường tái lập được.
Bàn giao máy đã cài driver, kiểm tra DCGM và tài liệu vận hành.
Nguồn chính chủ
Lệnh, tên gói và tham số thay đổi theo phiên bản. Trước khi chạy trên máy thật, hãy kiểm tra phiên bản mới nhất tại trang chính chủ:
- Ubuntu Server — Cài driver NVIDIA
- NVIDIA Driver Installation Guide
- CUDA Toolkit Downloads
- NVIDIA Fabric Manager User Guide
- NVIDIA DCGM Documentation
Giới hạn của bài
- Số nhánh driver (570), tên gói DCGM và đường dẫn repo trong bài là VÍ DỤ tại thời điểm cập nhật; nhánh phù hợp phụ thuộc GPU và hệ điều hành của bạn.
- Bài không đề cập vGPU, MIG và ảo hoá GPU — mỗi chủ đề cần tài liệu riêng.
Kỹ sư HQG khảo sát, lên cấu hình, lắp đặt và bàn giao hạ tầng AI chạy được thật.