bench/bin_float チュートリアル

このページでは、2 進算術と初等関数のベンチマーク、および square の自動チューニング実験を実行する方法と、その出力の読み方を説明します。このスイートは、同一の入力に対する対応付き測定によって実装パスを比較します。ツールキットと成果物の形式については bench チュートリアル を参照してください。

クイックスタート

リポジトリのルートから実行します。

just bench bin-float
just bench elementary
just bench auto-tune

ランナーは src/bench/bin_float のスキップされた性能テストを native ターゲット上でリリースモードで実行し、.tmp/bench/SUITE.jsonl(全観測値)と .tmp/bench/SUITE.analysis.txt(集約された行)を書き出します。ここで SUITE は just bench に与えた名前です。

日常的なタスク

分析行を読む

解析ファイルには、算術については MAREMARK_HOTSPOT=bin-float/OP/DATASET core_pct=… full_pct=…、初等関数については MAREMARK_HOTSPOT=bin-float/elementary/OP/DATASET full_pct=…、square 実験については MAREMARK_TUNE、MAREMARK_CROSSOVER、MAREMARK_POLICY の各行が含まれます。core_pct の値は、core パスとカーネルの対応付き差の中央値を、カーネルの中央値時間に対する百分率で表したものです。full_pct は同様に checked パスを core パスと比較した値です。正の値は上位の層の方が遅いことを意味します。

計測せずにプランを検査する

sh tools/run_moon_clean_exec.sh test src/bench/bin_float --target native

は、すべての仕様をコンパイルするプランテストのみを実行します。

さらに進んで

  • データセットや実装は *_test.mbt ファイルで変更します。参照オラクルは残しておき、高速でも誤ったパスが実行を失敗させるようにしてください。
  • 2 つの実行を比較するのは、記録された環境が一致する場合に限ってください。
  • 性能監査と performance/ のページに計測結果がまとめられています。

よくある落とし穴

  • ベンチマークは通常の moon test の実行ではスキップされます。just bench を使用してください。
  • 結果はマシンに依存します。パーセンテージの方が絶対的なマイクロ秒よりも安定しています。

次のステップ