krrishnarraj/clpeak
Peak compute, memory bandwidth and latency of CPUs, GPUs and NPUs: the same tests through every API that reaches a device. Command line and app for Windows, macOS, Linux and Android
clpeak – 計算・レイテンシベンチマーク
概要 – clpeak は、CPU、GPU、NPUのピーク計算スループット、メモリ帯域幅、レイテンシを測定するクロスプラットフォームベンチマークです。利用可能なすべてのAPI(CUDA、ROCm/HIP、Metal、oneAPI/SYCL、Vulkan、OpenCL、ONNX Runtime、Core ML、LiteRTなど)を通じて、高度に調整された小さなカーネルを実行し、デバイス間で比較可能な数値を報告します。
重要性 – AI/MLワークロードのハードウェアを評価する際、理論上のスペックだけでなく、基盤となるライブラリ(cuBLASLt、Core MLなど)の実際のパフォーマンスを知る必要があります。clpeak は、デバイスが行列乗算、畳み込み、その他のコア操作を実際にどれだけ高速に実行できるか、またカーネル起動のレイテンシを、単一かつ再現可能な方法で確認できます。
主な機能
- マルチバックエンドサポート – CUDA、ROCm/HIP、Metal、oneAPI/SYCL、Vulkan、OpenCL、ONNX Runtime、Core ML、LiteRT。
- CPUカーネル – 検出された命令セット(x86-64、AArch64)に対して実行時にコンパイルされます。
- CLIとGUIの両方 – コマンドラインツールはWindows/macOS/Linux/Androidで動作し、Flutterベースのデスクトップアプリも提供されています。
- JSON出力と比較 – 実行結果を保存し、再実行して保存された結果との差分を確認できます。
- デバイスレベルの粒度 – 特定のデバイス/バックエンドを選択し、利用可能なデバイスをリストアップし、選択したテストカテゴリ(計算、帯域幅、レイテンシ、AI)のみを実行できます。
- クロスプラットフォームビルド – デスクトップおよびモバイル(AndroidはGoogle Play、iOSはアプリバンドル経由)で動作します。
はじめに
# クローンとビルド(CMakeが必要。GUIにはオプションでFlutter SDKが必要)
git clone --recursive https://github.com/krrishnarraj/clpeak
cd clpeak
cmake -S . -B build
cmake --build build -j
./build/clpeak # CLIの実行
ビルド済みのバイナリは、GitHubのリリースページおよびSnap Storeで提供されています。AndroidではGoogle Playから直接インストールできます。
一般的な使用方法
# 検出されたすべてのデバイスですべてのテストを実行
clpeak
# clpeakが認識できるデバイスをリストアップ
clpeak --list-devices
# CUDAデバイス0とVulkanデバイス1のみをベンチマーク
clpeak --devices cuda:0,vulkan:1
# メモリ帯域幅の数値のみを表示
clpeak --bandwidth
# 後で比較するために結果をJSONで保存
clpeak -o run.clpeak.json
clpeak --compare run.clpeak.json
--help フラグですべての利用可能なオプションがリストされます。
詳細情報 – プロジェクトページ (https://krrishnarraj.github.io/clpeak/) には、スクリーンショット、詳細なビルド手順、サポートされているバックエンドのリストが掲載されています。AGENTS.md ファイルにはコード生成エージェント用のリポジトリレイアウトが記載されており、results/ には参照用のベースライン実行結果が保存されています。
ライセンス – MIT Licenseの下で配布されています。
clpeak は、幅広いコンピューティングプラットフォーム間で正確かつ比較可能なハードウェア数値を必要とする開発者、研究者、AIエージェントを対象とした、本格的なオープンソースの性能測定ツールです。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト