NVIDIA/nvbandwidth

A tool for bandwidth measurements on NVIDIA GPUs.

解決的問題

提供一種標準化的方式,用以測量 NVIDIA GPU 之間,以及主機 CPU 與 GPU 之間的實際記憶體頻寬與延遲。在高階運算與 AI 工作負載中,跨連結(如 NVLink)的資料傳輸速度經常成為瓶頸,因此此項測量至關重要。

作法原理

此工具使用兩種不同方法執行各種記憶體複製(memcpy)模式:

  • 複製引擎(CE): 使用標準 CUDA memcpy API。
  • 串流多處理器(SM): 使用自訂內核來移動資料。

為確保準確性,使用「旋轉內核」來消除測量過程中排隊操作的開銷。針對延遲測量,採用 指標追蹤 技術(建立記憶體位址的鏈結清單),以防止硬體預取與資料快取命中,確保更真實的原始記憶體存取時間測量。

適用對象

  • 系統架構師: 驗證 GPU 集群是否配置為達到最佳效能。
  • 機器學習工程師: 診斷多 GPU 訓練或推論流程中的瓶頸。
  • 叢集管理員: 驗證多節點部署中 NVLink 與節點間記憶體交換(IMEX)的健康狀態與效能。

主要特色

  • 多節點支援: 可使用 MPI 與 NVIDIA IMEX 在不同物理節點之間測量頻寬。
  • 彈性測試: 支援單向與雙向傳輸,以及透過 UUID 對特定 GPU 對進行測試。
  • 智慧取樣: 在大型叢集上,可取樣 GPU 對的子集,以縮短測試時間,同時維持拓撲覆蓋。
  • 詳細指標: 報告中位數或平均頻寬,並提供具體的延遲測量值。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案