perf_runner チュートリアル
このページでは、コントリビューター向けに、1 つのベンチマークケースを再実行して生の計時サンプルを収集する方法を示します。方法は perf_runner の設計 にあります。
クイックスタート
moon run src/perf_runner --target native mul_baseline_dense_64
出力は、ケースのメタデータとチェックサムを含む診断レコードです。
日常的なタスク
変更後も結果が同一であることを確認する
変更の前後で診断モードを実行し、checksum フィールドを比較します。チェックサムが等しければ、結果のビットは同一です。
計時サンプルを収集する
moon run src/perf_runner --target native det_baseline_shifted_16 --repeat 50 --warmup 3 --samples 20
これは、計時しない 3 回のウォームアップの後、それぞれ 50 回の呼び出しの平均(ナノ秒)である 20 個のサンプルを出力します。
独自のフィクスチャを使う
moon run src/perf_runner --target native det_baseline_shifted_16 --case-file /tmp/my_case.json
ファイルはケースのメタデータとデータセットのバージョンに一致していなければなりません。
さらに進んで
bench/run.py はすべてのケースについてランナーを駆動し、サンプルの中央値、p90、MAD を計算します。
よくある落とし穴
--repeat 0。 拒否されます。正の値を使ってください。- 1 つのサンプルだけで判断する。 多数のサンプルの中央値とばらつきを見てください。
次のステップ
- すべての引数については perf_runner API。
moon benchについては perf のチュートリアル。