Skip to content

15 October 2026 · Embench IoT · Exploratory

Embench IoT: Kotoba/Amu at 0.7999× C time in one M4 cycle

On 15 October 2026, Kotoba ports compiled by the m93 seed compiler measured a geometric-mean execution-time ratio of 0.7998826447941967 against original Embench C across 19 workloads on one Apple M4 Mac mini. Below 1.0 means lower normalized execution time for Kotoba.

This is not a certified Embench score, a released-toolchain result, or a universal language-speed ranking. It is one sample per workload on one host. A later audit found algorithm-substitution kernels in m93; those optimizations are included in the published 0.7999 result.

The 19 workload results

The ratio is normalized Kotoba execution time divided by original C execution time, then combined as a geometric mean. Results above 1.0 are workloads where Kotoba took longer. All 19 Kotoba runs matched independently derived result, fuel, and arena-state expectations; all C runs exited cleanly with the expected timer record.

One accepted sample per workload. Below 1.0 means lower normalized time for Kotoba; above 1.0 means C was faster. Geometric mean: 0.7998826447941967.
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×

Measurement method and reproduction

The comparison used the upstream Embench speed driver at commit 09c2ed8c. Kotoba and original C ran on the same Apple M4 Mac mini; C used Apple clang 17.0.0 with -O2 and no LTO, -mcpu, profile guidance, or SHA intrinsics. Each workload had one warm-up and one accepted timed sample. CPU admission required at least 70% raw idle before timing and at least 70% raw and estimated background idle during timing; the first qualified attempt was selected, never the fastest.

The public reproduction package contains the raw campaign records, exactness references, compiler and image hashes, and the completed kernel audit. Its offline verifier passed against the packaged records and recomputed the 0.7998826447941968 ratio geometric mean. The verifier does not require a measurement host or network access.

Kernel audit and claim limits

The measured compiler used hand-written AArch64 kernels selected by recognized function shape, with fuel accounting equal to the general path and a fallback. The later audit classifies substitutions in huffbench, qrduino, tarfind, ud, and picojpeg; nettle-sha256 also uses ARMv8 SHA instructions while the C build does not. The published result includes these paths. The project adopted a stricter same-algorithm-only rule for later rounds.

This is evidence about these translated ports, this compiler snapshot, this host, and this one measurement cycle. It does not establish an official Embench score, a result for the released CLI, or that Kotoba is the fastest language overall. The audit and raw records are linked below so readers can inspect the scope directly.

Separate comparisons with other languages

A different, host-qualified Amu native runtime suite compares six workloads with Clang/C11, Rust, Zig, Go c-shared, and Swift. Its 7 September 2026 run verified all 30 result pairs. Nineteen pairs passed perfgate in every one of five runs; the all-pairs fastest claim remains unqualified. These are separate workloads and dates, so their results are not combined with Embench.

Amu native runtime · 7 Sep 2026 · 30 exact pairs; 19 qualify in every run; five runs per pair. Embench is a separate suite: 19 translated ports against original C, one sample per workload, geometric-mean time ratio 0.7999. See each full report independently.
Comparator Exact workloads Pairs qualified in every run
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

Evidence and source