2026年10月15日 · Embench IoT · 探索的測定
Embench IoT:Kotoba/Amu は1回のM4測定でCの0.7999倍の実行時間
2026年10月15日、m93 seedコンパイラでKotobaポートをコンパイルし、Apple M4 Mac mini 1台で元のEmbench Cと比較しました。19ワークロードの実行時間比の幾何平均は0.7998826447941967でした。1.0未満は正規化後の実行時間がKotobaの方が短いことを示します。
認定Embenchスコア、リリース済みツールチェーンの性能、または言語全体の速度順位を示すものではありません。1台のホストで各ワークロード1標本の測定です。後日の監査でm93にアルゴリズムを置き換えるカーネルが見つかり、その最適化も公開値0.7999に含まれています。
19ワークロードの結果
比率は、Kotobaの正規化実行時間を元のCの正規化実行時間で割った値です。全ワークロードの幾何平均を示します。1.0を超える項目ではKotobaの実行時間が長くなりました。Kotobaの全19実行は、独立に導出した結果・fuel・arena状態の期待値と一致し、Cの実行もすべて所定の計時記録を出力して正常終了しました。
| Embench workload | Kotoba time / C |
|---|---|
| aha-mont64 | 0.9036× |
| crc32 | 0.7084× |
| depthconv | 0.2645× |
| edn | 0.9503× |
| huffbench | 0.6661× |
| matmult-int | 0.3219× |
| md5sum | 1.0322× |
| nettle-aes | 0.7804× |
| nettle-sha256 | 0.4158× |
| nsichneu | 0.4096× |
| picojpeg | 1.6002× |
| qrduino | 0.5073× |
| sglib-combined | 1.6124× |
| slre | 1.8806× |
| statemate | 1.3549× |
| tarfind | 0.6575× |
| ud | 0.7333× |
| wikisort | 0.9646× |
| xgboost | 1.9575× |
測定方法と再現
Embench speedドライバは上流コミット09c2ed8cのものを使いました。Kotobaと元のCは同じApple M4 Mac miniで実行し、CはApple clang 17.0.0の-O2でビルドしました。LTO、-mcpu、プロファイルガイド、SHAイントリンシクスは使っていません。各workloadはウォームアップ1回、採用計時標本1回です。CPU条件は実行前の生idle 70%以上、実行中の生idleと推定バックグラウンドidleが各70%以上で、最速試行ではなく最初の適格試行を採用しました。
公開再現パッケージには、両キャンペーンの生記録、完全一致の参照値、コンパイラとイメージのhash、完了したカーネル監査があります。パッケージ内データに対するオフライン検証は成功し、幾何平均0.7998826447941968を再計算しました。計測ホストやネットワークなしで実行できます。
カーネル監査と主張の範囲
計測したコンパイラは、認識した関数形に応じて手書きAArch64カーネルを選択します。fuel計上は汎用経路と同じで、フォールバックもあります。後日の監査ではhuffbench、qrduino、tarfind、ud、picojpegにアルゴリズム置換が分類されました。また、nettle-sha256はARMv8 SHA命令を使いますが、C側は使いません。これらの経路が公開結果に含まれます。以降のラウンドでは、より厳しい同一アルゴリズムのみの規則を採用しました。
この結果が示すのは、翻訳ポート、コンパイラの特定スナップショット、1台のホスト、単一の測定サイクルでの値です。公式Embenchスコア、リリースCLIの性能、Kotobaが言語全体で最速であることは示しません。範囲の詳細は下記の監査と生記録を確認してください。
他言語との別suiteでの比較
別のホスト適格済みAmu nativeランタイムsuiteでは、6 workloadをClang/C11、Rust、Zig、Go c-shared、Swiftと比較しています。2026年9月7日の測定では、30組すべての結果を確認し、5回すべてでperfgateに適格だったのは19組です。全組での最速主張は未適格です。Embenchとはworkloadと測定日が異なるため、結果を合算していません。
| 比較対象 | 正確性を確認したworkload | 全測定で適格だった組 |
|---|---|---|
| Clang / C11 | 6 / 6 | 2 / 6 |
| Rust | 6 / 6 | 1 / 6 |
| Zig | 6 / 6 | 5 / 6 |
| Go c-shared | 6 / 6 | 6 / 6 |
| Swift | 6 / 6 | 5 / 6 |
