NVIDIA/nvbench

CUDA Kernel Benchmarking Library

何を解決するか

NVBench は CUDA カーネルのベンチマークを簡素化します。実行時間、メモリ帯域幅、スループットを測定する構造化された方法を提供し、GPU カーネルの複雑なパフォーマンステストを手動で設定する必要を排除します。

動作方法

C++17 ライブラリであり、特定のカーネル用のベンチマークを定義できるようにします。パラメータスイープを実行するための「軸(axis)」システムを使用し、データサイズやデータ型などの異なる設定を探索して最適な設定を見つけることができます。さまざまな測定モードをサポートしており、L2 キャッシュをクリアする「コールド測定」や、複数の反復を実行する「バッチ測定」など、正確なタイミングを確保します。

対象ユーザー

個々の GPU カーネルのチューニングやハードウェア上のレグレッションテストが必要な CUDA 開発者およびパフォーマンスエンジニア。

主な特徴

  • パラメータスイープ: 動的数値、文字列、静的型を使用してカーネル設定空間を柔軟に探索するシステム。
  • スループット分析: 要素/秒単位のアイテムスループットと、ピーク帯域幅に対するグローバルメモリ帯域幅使用量を自動計算。
  • ランタイムカスタマイズ: 再コンパイルせずにパラメータ軸を再定義し、CUDA デバイスを選択できる豊富な CLI を提供。
  • 複数の測定タイプ: コールドスタート、バッチ実行、CPU 側のみの測定をサポート。
  • 柔軟な出力形式: マークダウンまたは CSV 形式で結果を出力。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト