mare_mark
mare_mark は MoonBit のためのベンチマークハーネスです。計時の前にすべての実装をオラクルに照らして検証し、キャリブレーションされたバッチとバランスの取れたブロックで計測し、すべての生の観測を追記専用の JSONL 記録に保存し、頑健な対応のある統計とシード付きブートストラップで実装を比較し、実用的な同率判定とパレートフロントによる自動チューニングをサポートし、自己完結型の HTML レポートを描画します。このマニュアルはバージョン 0.3.0 を説明します。各パッケージの公開名とシグネチャについては、そのパッケージの pkg.generated.mbti ファイルが正となります。
パッケージ
| パッケージ | 役割 | ページ |
|---|---|---|
model | 共通語彙: バージョン、プロトコル、環境、結果、イベント、判断 | API · チュートリアル · 設計 |
generator | シードの導出と入力のフィンガープリント | API · チュートリアル · 設計 |
fixture | 入力のライフサイクルとセットアップの計時 | API · チュートリアル · 設計 |
experiment | オラクル、縮小、クロスオーバー分析 | API · チュートリアル · 設計 |
runner | 計測ループ: 検証、ウォームアップ、キャリブレーション、バランスの取れたブロック | API · チュートリアル · 設計 |
event | シンクと JSONL 記録 | API · チュートリアル · 設計 |
ir_sink | よく使うシンクのための短いコンストラクタ | API · チュートリアル · 設計 |
stats | 要約、対応のある比較、ブートストラップ区間、外れ値のビュー | API · チュートリアル · 設計 |
ir_model | Plot IR: プロットと差分の証拠 | API · チュートリアル · 設計 |
report | JSONL から Plot IR へ、そして JSON、SVG、HTML へ | API · チュートリアル · 設計 |
tune | チューニングポリシー: スコア、選択、パレートフロント、シード付き部分集合 | API · チュートリアル · 設計 |
tune_gemm | チューニングの実例ドメイン: ブロック化された行列積 | API · チュートリアル · 設計 |
cli | mare-mark 実行ファイル: report と保護された replay | API · チュートリアル · 設計 |
パッケージを横断するガイドとして、はじめに、アーキテクチャ、検証、リポジトリ規約があります。リポジトリには doc-test 用のパッケージはありません。このマニュアルの例は、検証で説明するとおり、リリースされたパッケージに対してコンパイル・実行されます。
読み進め方
mare_mark でのベンチマークが初めての場合。 はじめにを読み、次に runner のチュートリアルと stats のチュートリアルを読んでください。公開には report のチュートリアルを使います。
プロジェクトで使う場合。 runner、stats、model の API ページを手元に置いてください。現実的な入力については fixture と generator のチュートリアルを、オラクルとクロスオーバーについては experiment のチュートリアルを読んでください。チューニングについては tune と tune_gemm を読んでください。
結果をレビューする場合やコントリビュートする場合。 アーキテクチャと設計ページを、runner(実験計画とキャリブレーション)と stats(推定量、ブートストラップ、判断規則)から順に読み、その後 検証を読んでください。
ツールチェーンとインストール
mare_mark には moonc 0.10 以降を備えた MoonBit が必要です。moonbitlang/x 0.5.5 と moonbitlang/async 0.22.4 に依存します。
moon add Luna-Flow/mare_mark@0.3.0
すべてのパッケージはすべての MoonBit ターゲットでコンパイルできます。runner.run は非同期で、moonbitlang/async がランタイムを持つ native、JS、wasm(wasm-gc は不可)で実行されます。サブプロセスワーカー、replay コマンド、stdin/stdout を使うレポートには native ターゲットが必要です。
安定性
mare_mark は 1.0 より前の段階です。バージョン付きの契約は、プロトコルの語彙 mmkp_1、JSONL アーティファクト mmka_1、Plot IR スキーマ mmks_1、GEMM チューニング設定 mmkts_1 です。リーダーはそれ以外のバージョンを拒否します。計時の閾値、候補の列挙、HTML のスタイル、非公開のレイアウトは互換性の約束の対象ではありません。各設計ページはパッケージの境界で締めくくります。