NVLink、PCIe、latency 全綠燈。唯一紅旗是 單卡 HBM bandwidth 1420 GB/s,H100 NVL 應有 2400-2800 GB/s。建議優先檢查 driver/clock。
GPU 0 孤立在 NUMA 0,跟其他兩張只能走 PCIe;GPU 1+2 在同一 NUMA、有 NVLink 直連。多 GPU 訓練務必把 model parallel 對放在 GPU 1+2。
● 14 條 active × 26.56 GB/s = 372 GB/s 理論單向 | ● 6 條 inactive。H100 NVL 設計上不是全 18 條都接,這是正常配置。
| 測試項目 | 實測 (GB/s) | 預期 | 達成率 | 評估 |
|---|---|---|---|---|
| 單卡 HBM bandwidth device_local_copy |
1420 | ~2600 | 55% | ⚠️ 偏低 |
| Host → Device PCIe | 55.6 | ~55 | ✓ 正常 | |
| Device → Host PCIe | 57.2 | ~55 | ✓ 正常 | |
| Host ↔ Device 雙向 | 52.4 | ~100 | 52% | 偏低 |
| NVLink 單向 READ GPU1 ↔ GPU2 |
265 | ~300 | ✓ 正常 | |
| NVLink 雙向 READ 總和 | 528 | ~600 | ✓ 正常 | |
| PCIe pair 單向 READ GPU0 ↔ GPU1, 跨NUMA |
29.3 | ~25 | ✓ 優於預期 | |
| NVLink latency | 0.59 µs | 1-2 µs | ✓ 優於預期 | |
| PCIe latency | 1.47 µs | 10+ µs | ✓ 優於預期 | |
| Host ↔ Device latency | 0.80 µs | — | ✓ 正常 |
| SM engine 單向 READ NVLink | 252 GB/s | vs CE 265 |
| NVLink pair 單向總和 | 531 GB/s | GPU1+2 配對 |
| NVLink pair 雙向總和 | 1056 GB/s | GPU1+2 配對 |
| PCIe pair 單向總和 | 57.8 GB/s | GPU0+1 跨 NUMA |
| PCIe pair 雙向總和 | 110.6 GB/s | GPU0+1 跨 NUMA |
| all→one read (GPU0 接收) | 26.1 GB/s | 純 PCIe ingress |
| all→one read (GPU1 接收) | 51.5 GB/s | 含 NVLink |
| one→all write (GPU0 送) | 29.3 GB/s | |
| one→all write (GPU1 送) | 58.4 GB/s |
HBM 頻寬達不到很常是因為 clock 沒鎖在 boost。看 SM/MEM clock 是不是低於最大值。
nvidia-smi --query-gpu=index,clocks.sm,clocks.mem,clocks.max.sm,clocks.max.mem --format=csv
避免 idle 進低功耗狀態,並鎖到最高 application clock。
sudo nvidia-smi -pm 1 && sudo nvidia-smi -ac MEM,SM
device_local_copy 預設 CE,SM 通常能拿到更高的 HBM 數字(接近 peak)。
nvbandwidth -t device_local_copy_sm
550.54.15(2024-04)對 H100 NVL 雙 die 路由仍有 perf bug。建議升 ≥ 555 或 560 系列、CUDA ≥ 12.6。
nvidia-smi → 看現役 / nvidia-driver-555-server 安裝
跑 benchmark 時若 GPU 已 80°C+ 可能 thermal throttle。
nvidia-smi --query-gpu=temperature.gpu,clocks_throttle_reasons.active --format=csv -l 2
原始 log:~/Downloads/bench_20260425_175703.log
| 608 行 / 19.3 KB