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 つのサンプルだけで判断する。 多数のサンプルの中央値とばらつきを見てください。

次のステップ