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 500The 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.