NVLink
Về NVLink
NVLink chỉ được hỗ trợ trên các flavor instance có 8× GPU NVIDIA H100 hoặc H200. Ở cấu hình này, NVLink mang lại kết nối GPU-GPU băng thông cao, độ trễ thấp, giúp:
- Training model nhanh hơn, đặc biệt với model lớn cần trao đổi dữ liệu giữa các GPU liên tục
- Tăng hiệu quả scaling với các framework distributed training (ví dụ: Megatron-LM, DeepSpeed, PyTorch FSDP)
- Giảm nghẽn giao tiếp so với việc chỉ kết nối GPU qua PCIe
- Tăng tổng thông lượng tính toán cho workload phụ thuộc vào đồng bộ multi-GPU
Instance có dưới 8 GPU không hỗ trợ NVLink.
Bật NVLink cho flavor 8x GPU
ghi chú
NVLink không bật sẵn trong các image do FPT cung cấp. Bạn phải tự bật nếu cần.
Để bật hỗ trợ NVLink, làm theo các bước sau:
- Mở file:
/etc/default/grub.d/00-fci-grub.cfg - Tìm dòng sau và xóa hoặc comment lại:
GRUB_CMDLINE_LINUX_DEFAULT="nvidia.NVreg_NvLinkDisable=1"
- Cập nhật cấu hình GRUB:
sudo update-grub
- Reboot instance để thay đổi có hiệu lực.
Kiểm tra
Để xác nhận NVLink đã bật thành công, chạy các lệnh sau.
1. Kiểm tra trạng thái NVLink
nvidia-smi nvlink --status
Kết quả sẽ hiển thị các kết nối NVLink đang active kèm tốc độ link (ví dụ: 25 GB/s mỗi lane).
2. Kiểm tra topology GPU
nvidia-smi topo -m
Kết quả sẽ hiển thị kết nối NVLink (NV##) giữa toàn bộ GPU, tương tự:
GPU0 GPU1 GPU2 GPU3 GPU4 GPU5 GPU6 GPU7 CPU Affinity NUMA Affinity
GPU0 X NV18 NV18 NV18 NV18 NV18 NV18 NV18 0-127 0-1
GPU1 NV18 X NV18 NV18 NV18 NV18 NV18 NV18 0-127 0-1
GPU2 NV18 NV18 X NV18 NV18 NV18 NV18 NV18 0-127 0-1
GPU3 NV18 NV18 NV18 X NV18 NV18 NV18 NV18 0-127 0-1
GPU4 NV18 NV18 NV18 NV18 X NV18 NV18 NV18 0-127 0-1
GPU5 NV18 NV18 NV18 NV18 NV18 X NV18 NV18 0-127 0-1
GPU6 NV18 NV18 NV18 NV18 NV18 NV18 X NV18 0-127 0-1
GPU7 NV18 NV18 NV18 NV18 NV18 NV18 NV18 X 0-127 0-1
Chú giải:
| Ký hiệu | Ý nghĩa |
|---|---|
| X | Cùng một GPU |
| SYS | PCIe + interconnect giữa các NUMA |
| NODE | PCIe + interconnect trong cùng một NUMA node |
| PHB | PCIe Host Bridge |
| PXB | Nhiều PCIe bridge |
| PIX | Một PCIe bridge |
| NV# | Kết nối NVLink với # link được bond |
Xử lý sự cố
Nếu gặp các lỗi như:
system not yet initialized- Lỗi khi gọi
torch.cuda.device_count()hoặctorch.cuda.get_device_name(i)
Hãy khởi động lại NVIDIA Fabric Manager:
sudo systemctl restart nvidia-fabricmanager
Sau đó thử lại ứng dụng hoặc các bước kiểm tra.