NVIDIA/nvbench
CUDA Kernel Benchmarking Library
解決的問題
NVBench 簡化了 CUDA 內核的基準測試流程。它提供了一種結構化的方法來測量執行時間、吞吐量和記憶體頻寬使用情況,從而讓開發者在對單一 GPU 內核進行調校與回歸測試時,無需手動撰寫重複程式碼。
工作原理
這是一個 C++17 庫,允許開發者使用簡單的 API 定義基準測試。它採用「軸」系統執行參數掃描,透過動態數值/字串或靜態類型探索不同的內核設定,以找出最佳配置。支援多種測量模式,包括「冷啟動」測量(L2 快取清空)與「批次」測量(用於平均執行時間)。
適用對象
需要優化 GPU 內核並進行系統性參數調校的 CUDA 開發者與效能工程師。
主要特色
- 參數掃描:靈活的軸系統,用於探索設定空間。
- 執行時自訂:功能豐富的 CLI,支援重新定義軸、選擇裝置與鎖定 GPU 時脈。
- 效能指標:自動計算項目吞吐量與全域記憶體頻寬使用量(含峰值利用率百分比)。
- 彈性測量:支援冷啟動、批次與手動計時模式。
- 多種輸出格式:結果可匯出為 Markdown 或 CSV 格式。
相關
- 專案
NVIDIA/nvbandwidth一款針對 NVIDIA GPU 的效能基準測試工具,可測量 CPU 到 GPU 與 GPU 到 GPU 連結(包含 NVLink)的記憶體頻寬與延遲,支援多節點設定。
- 專案
NVIDIA/MatXA C++20 library for numerical computing that brings NumPy-like tensor expressions to NVIDIA GPUs and CPUs, featuring JIT kernel fusion for maximum performance.
- 專案
- 專案
kunzmi/managedCudaNVIDIA CUDA Driver API 及其相關庫的 .NET 封裝,讓 C# 與 Visual Basic 開發者能將 GPU 加速功能整合至其應用程式中。
- 專案
NVIDIA/nccl-testsA performance and correctness testing suite for the NVIDIA Collective Communications Library (NCCL) used to benchmark multi-GPU and multi-node communication.