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_modelPlot IR: プロットと差分の証拠API · チュートリアル · 設計
reportJSONL から Plot IR へ、そして JSON、SVG、HTML へAPI · チュートリアル · 設計
tuneチューニングポリシー: スコア、選択、パレートフロント、シード付き部分集合API · チュートリアル · 設計
tune_gemmチューニングの実例ドメイン: ブロック化された行列積API · チュートリアル · 設計
climare-mark 実行ファイル: report と保護された replayAPI · チュートリアル · 設計

パッケージを横断するガイドとして、はじめに、アーキテクチャ、検証、リポジトリ規約があります。リポジトリには 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 のスタイル、非公開のレイアウトは互換性の約束の対象ではありません。各設計ページはパッケージの境界で締めくくります。