NVIDIA/nvbench
CUDA Kernel Benchmarking Library
何を解決するか
NVBenchはCUDAカーネルのベンチマークを簡素化します。実行時間、スループット、メモリ帯域幅の使用量を構造的に測定する方法を提供し、個々のGPUカーネルのチューニングやレグレッションテストにおいて、手動でのボイラープレートコードの必要性を排除します。
仕組み
C++17ライブラリであり、シンプルなAPIを使用してベンチマークを定義できます。パラメータスイープを実行するための「軸(axis)」システムを採用しており、動的な数値/文字列または静的型を使用して、異なるカーネル設定を探索し、最適な設定を見つけることができます。複数の測定モードをサポートしており、L2キャッシュをクリーンにした「コールド(Cold)」測定や、実行時間の平均化を目的とした「バッチ(Batch)」測定が可能です。
対象ユーザー
GPUカーネルの最適化や体系的なパラメータチューニングが必要なCUDA開発者およびパフォーマンスエンジニア。
主な特徴
- パラメータスイープ: 設定空間を探索するための柔軟な軸システム。
- ランタイムカスタマイズ: 軸の再定義、デバイスの選択、GPUクロックのロックが可能な豊富なCLI。
- パフォーマンスメトリクス: アイテムスループットおよびグローバルメモリ帯域幅使用量(ピークのパーセンテージを含む)の自動計算。
- 柔軟な測定: コールドスタート、バッチ、手動タイマーモードをサポート。
- 複数の出力形式: 結果をMarkdownまたはCSV形式でエクスポート可能。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト