NVIDIA/nvbench

CUDA Kernel Benchmarking Library

何を解決するか

NVBenchはCUDAカーネルのベンチマークを簡素化します。実行時間、スループット、メモリ帯域幅の使用量を構造的に測定する方法を提供し、個々のGPUカーネルのチューニングやレグレッションテストにおいて、手動でのボイラープレートコードの必要性を排除します。

仕組み

C++17ライブラリであり、シンプルなAPIを使用してベンチマークを定義できます。パラメータスイープを実行するための「軸(axis)」システムを採用しており、動的な数値/文字列または静的型を使用して、異なるカーネル設定を探索し、最適な設定を見つけることができます。複数の測定モードをサポートしており、L2キャッシュをクリーンにした「コールド(Cold)」測定や、実行時間の平均化を目的とした「バッチ(Batch)」測定が可能です。

対象ユーザー

GPUカーネルの最適化や体系的なパラメータチューニングが必要なCUDA開発者およびパフォーマンスエンジニア。

主な特徴

  • パラメータスイープ: 設定空間を探索するための柔軟な軸システム。
  • ランタイムカスタマイズ: 軸の再定義、デバイスの選択、GPUクロックのロックが可能な豊富なCLI。
  • パフォーマンスメトリクス: アイテムスループットおよびグローバルメモリ帯域幅使用量(ピークのパーセンテージを含む)の自動計算。
  • 柔軟な測定: コールドスタート、バッチ、手動タイマーモードをサポート。
  • 複数の出力形式: 結果をMarkdownまたはCSV形式でエクスポート可能。

関連

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