Enceladus v0.1.0 · alpha
BenchmarksAll pages
OverviewQuickstartProgramming modelMemory and synchronizationLanguage referenceDebuggingFramework interopPerformanceBenchmarksPorting from Triton

Guides

Benchmarks

The following results compare Enceladus with MLX on one Apple M4 Pro (applegpu_g16s, 16-core GPU, Apple9 family). This GPU isn't Apple10, so matmul2d runs on the regular shader cores. Each bar shows Enceladus throughput relative to MLX in the same run.

Dispatch overhead

3.41 µs@enceladus.jit launch, sustained
1.00 µsNative stream dispatch, sustained
70.67 µsSynchronized round trip, raw metal_kernel
0.37 msCompile time for the vector add, frontend to MSL

Throughput relative to MLX

Enceladus faster MLX faster

Enceladus times use GPU timestamps; MLX times use the wall clock. Values are the minimum over repeated runs; matmul uses 3 interleaved rounds of 10 runs. Matmul rows show the best Enceladus configuration for the shape. The 513³ bar is clipped at +60%. Source: benchmarks/results/2026-09-26-applegpu_g16s-m9.md.

Read the numbers

Two effects are worth knowing when you read these numbers. The float32 mpp matmul at 4096³ is bimodal, with a median of 3.36 TFLOPS against a best of 5.35. The autotuner can pick a configuration within about 5% of the best, because each tuning run is short. To reproduce the results, run uv run python benchmarks/run_all.py.