mix bench.native (emily v0.3.2)

Copy Markdown View Source

Build and run the standalone C++ microbenchmarks under bench/native/.

These benchmarks link directly against the vendored MLX, so they isolate MLX/Metal performance from any BEAM/Nx overhead. They are used to de-risk backend features — e.g. M6 (mlx::core::compile wrapping) uses compile_microbench.cpp to check the ≥20% gate before committing to the full Emily.Compiler integration.

Usage

mix bench.native [-- <args passed to the bench binary>]

Example:

mix bench.native -- --warmup 20 --iters 500

The task invokes make bench-native with the same MLX/cache env vars elixir_make uses when building the NIF, so it reuses the existing MLX prebuilt without a second fetch.