perf チュートリアル
このページでは、コントリビューター向けに、moon bench で @mutable のカーネルをベンチマークする方法と、その結果の読み方を示します。方法は perf の設計 に、パイプライン全体は bench/README.md にあります。
クイックスタート
moon bench -p perf --target native --release
出力の各行は 1 つのケースで、<operation>/<case id> という名前と 1 回の呼び出しあたりの時間を示します。
日常的なタスク
カーネルの変更を比較する
- 変更前のコードでベンチマークを実行し、出力を保存します。
- 変更を適用して再度実行し、同じケース名どうしを比較します。
- perf_support のチュートリアル のチェックサム比較で、結果のビットが変わっていないこと、または丸めによる変化だけであることを確認します。
完全なレポートを実行する
just bench
これはベンチマークをリリースモードでビルドして実行し、ケースごとの中央値、p90、MAD を含む bench/results/summary.md と summary.json を書き出します。
さらに進んで
BENCH_FLAGS="--include-rust" just bench で Rust の nalgebra ベースラインを加え、just bench-web でローカルのダッシュボードを開きます。
よくある落とし穴
- デバッグビルドをベンチマークする。 常に
--releaseを指定してください。 - 異なるマシンの実行結果を比較する。 同じマシンで、同程度の負荷のもとで比較してください。
次のステップ
- 1 つのケースの生のサンプルについては perf_runner のチュートリアル。
- perf_support API。