perf チュートリアル

このページでは、コントリビューター向けに、moon bench で @mutable のカーネルをベンチマークする方法と、その結果の読み方を示します。方法は perf の設計 に、パイプライン全体は bench/README.md にあります。

クイックスタート

moon bench -p perf --target native --release

出力の各行は 1 つのケースで、<operation>/<case id> という名前と 1 回の呼び出しあたりの時間を示します。

日常的なタスク

カーネルの変更を比較する

  1. 変更前のコードでベンチマークを実行し、出力を保存します。
  2. 変更を適用して再度実行し、同じケース名どうしを比較します。
  3. perf_support のチュートリアル のチェックサム比較で、結果のビットが変わっていないこと、または丸めによる変化だけであることを確認します。

完全なレポートを実行する

just bench

これはベンチマークをリリースモードでビルドして実行し、ケースごとの中央値、p90、MAD を含む bench/results/summary.md と summary.json を書き出します。

さらに進んで

BENCH_FLAGS="--include-rust" just bench で Rust の nalgebra ベースラインを加え、just bench-web でローカルのダッシュボードを開きます。

よくある落とし穴

  • デバッグビルドをベンチマークする。 常に --release を指定してください。
  • 異なるマシンの実行結果を比較する。 同じマシンで、同程度の負荷のもとで比較してください。

次のステップ