Skip to content

refactor(cli): subprocess architecture - #249

Merged
0xClandestine merged 19 commits into
devfrom
feat/subprocess-rewrite
Jun 1, 2026
Merged

refactor(cli): subprocess architecture#249
0xClandestine merged 19 commits into
devfrom
feat/subprocess-rewrite

Conversation

@0xClandestine

Copy link
Copy Markdown
Owner

Proposed changes

Implements the subprocess rewrite plan for the tile CLI (steps 1–12).
The tile binary is being migrated from an in-process GPU runner to a thin
JSON-Line parser that delegates all GPU/kernel work to a __tile_runner
subprocess. This PR completes the scaffolding and first integration layer.

What changed

Steps 1–2 — Protocol (metaltile-core)

  • Extended ProtocolMessage with BuildResult, Artifact, Inspect,
    updated Start/Done/BenchResult; added ArtifactKind, InspectKind,
    BuildError, ProfileInfo.
  • from_json_line strips trailing \n.

Steps 3–4 — metaltile::runner module + std cleanup

  • New metaltile::runner::{gpu, emit, args, harness} sub-modules.
  • GpuRunner, CompiledKernel, GpuBuffer, BenchStats moved from
    metaltile-std into metaltile::runner::gpu.
  • RunnerHarness orchestrates bench/test/build/inspect, emitting
    ProtocolMessage JSON lines to stdout.
  • RunnerArgs::parse + from_env_args for subprocess arg parsing.
  • Public run_kernel_test / TestOutcome for legacy in-process compat.
  • Deleted metaltile-std/{runner,run_kernel,stats,error,probe} modules;
    all consumers updated to metaltile::runner::*.

Steps 5–8 — CLI scaffolding

  • config.rs: TileConfig + ConfigLoader (figment layers: defaults →
    tile.tomlTILE__* env vars; figment added to workspace).
  • harness.rs: Harness struct owning config; from_config() factory.
  • project_runner.rs: ProjectRunner + RunnerInvocation; Phase 1
    delegates in-process to RunnerHarness::run.
  • cmd/mod.rs: TileCommand trait (fn run(&self, harness: &Harness)).

Steps 9–10 — Command structs + SuitePrinter

  • BenchCommand, TestCommand, BuildCommand, InspectCommand implement
    TileCommand; main.rs dispatches through trait.
  • SuitePrinter::from_harness() reads verbose from config.
  • SuitePrinter::print_bench_result(&ProtoBenchResult) — Phase 2 protocol
    display path using metaltile-core::protocol directly.

Step 11 — Strip metaltile-runtime dep from CLI

  • GpuFamily re-exported via metaltile::runner.
  • cmd/device.rs, cmd/snap.rs updated; metaltile-runtime removed from
    metaltile-cli/Cargo.toml.

Step 12 — tile init

  • Scaffolds Cargo.toml + src/lib.rs (sample #[kernel]/#[bench_kernel])
    • tile.toml in a new project directory.
  • InitCommand implements TileCommand; --force flag for overwrites.

Crates affected

  • metaltile-core (IR types, ops)
  • metaltile-macros (proc macros, body parser)
  • metaltile-codegen (MSL lowering, passes)
  • metaltile-runtime (Metal dispatch)
  • metaltile-std (kernel stdlib, op files)
  • metaltile-cli (tile binary)

Testing

  • cargo check --workspace — clean (0 errors, 0 warnings)
  • cargo clippy --workspace — clean (0 issues after fixes)
  • cargo fmt --all — clean
  • Existing unit tests in metaltile-std and metaltile-core unaffected
  • RunnerArgs parse tests added in metaltile::runner::args
  • TileConfig / ConfigLoader unit tests in config.rs

Checklist

  • PR title uses a conventional-commit prefix (see below)
  • make clippy passes clean
  • make test --workspace passes
  • make fmt-check passes
  • make typos passes (or typos is clean)
  • PR body explains what and why

…:harness

- Delete metaltile-core/src/toolchain/ entirely
- Move bench.rs + test.rs → metaltile/src/harness/{bench,test}.rs
  - KernelBenchEntry, KernelTestEntry, KernelBench, KernelTest now live
    in the facade; inventory::collect! for both entry types in harness/registry.rs
- Move protocol.rs → metaltile-core/src/protocol.rs (stays in core so
  the CLI can import ProtocolMessage without pulling GPU deps)
- Extract KernelEntry + all_kernels() → metaltile-core/src/registry.rs
  (stays in core so metaltile-codegen can use it without a circular dep)
- Delete toolchain/config.rs (will be recreated in CLI in a later step)
- Drop toml dep from metaltile-core/Cargo.toml
- Add inventory + serde deps to metaltile/Cargo.toml
- Update macro type paths: ::metaltile::core::bench::* → ::metaltile::harness::bench::*
  and ::metaltile::core::KernelBenchEntry → ::metaltile::harness::bench::KernelBenchEntry
  (inventory::submit! path via ::metaltile::core::inventory unchanged)
- Update metaltile/src/test.rs to re-export from harness instead of core::bench
- Update metaltile-std/src/lib.rs re-export of all_benches/all_tests/all_kernels
- Update call sites in metaltile-cli and metaltile-std that used
  metaltile_core::all_benches/all_tests to use metaltile::harness::registry
…tile-core

KernelEntry and all_kernels() are runner concerns — the CLI never calls them.
Keeping them in metaltile-core was wrong because core is the only dep the
CLI will have after Step 11.

- Add metaltile-codegen/src/kernel_registry.rs with KernelEntry, collect!,
  and all_kernels() — co-located with KernelInlinePass that uses them
- Add inventory dep to metaltile-codegen/Cargo.toml
- Update KernelInlinePass to import all_kernels from crate::kernel_registry
- Remove registry.rs from metaltile-core entirely
- Update metaltile-core/src/lib.rs: drop pub mod registry and KernelEntry
  re-export; keep pub use inventory for the macro submit! path only
- Update metaltile::harness::registry to re-export KernelEntry + all_kernels
  from metaltile_codegen (single registry surface for the runner)
- Update #[kernel] macro: KernelEntry path is now
  metaltile::harness::registry::KernelEntry (was metaltile::core::KernelEntry)
- Fix metaltile/src/prelude.rs: KernelEntry re-export via harness::registry
Add BuildResult, Artifact, Inspect variants and supporting types
(ArtifactKind, InspectKind, BuildError, ProfileInfo). Update Start
with command/total fields and Done with ok flag. Add profile field
to BenchResult. Full roundtrip tests for all variants.
Move GpuRunner + BenchStats from metaltile-std into metaltile::runner::gpu.
Add RunnerArgs (subprocess arg parsing), emit (ProtocolMessage → stdout),
and RunnerHarness (orchestrates bench/test/build/inspect against the
inventory registries). metaltile-std runner.rs is unchanged for now (Step 4).
…robe/

GpuRunner + BenchStats now live in metaltile::runner::gpu. run_kernel_test
re-exported from metaltile::runner. run_kernel_bench moved inline to
metaltile-cli/cmd/bench.rs (its only caller). metaltile-std drops all
Metal/objc2/metaltile-runtime direct deps.
Steps 5-8: scaffolding
- config.rs: TileConfig + ConfigLoader (figment: defaults → tile.toml → TILE__* env)
- harness.rs: Harness struct owning TileConfig; from_config() factory
- project_runner.rs: ProjectRunner + RunnerInvocation; Phase 1 delegates
  in-process to RunnerHarness::run; RunnerArgs::parse made pub
- cmd/mod.rs: TileCommand trait (fn run(&self, harness: &Harness))

Steps 9-10: command structs + SuitePrinter
- BenchCommand/TestCommand/BuildCommand/InspectCommand implement TileCommand
- main.rs dispatches bench/test/build/inspect through trait
- SuitePrinter::from_harness() factory reads verbose from config
- SuitePrinter::print_bench_result() Phase 2 protocol-message display path

Step 11: strip direct metaltile-runtime dep from CLI
- Re-export GpuFamily through metaltile::runner
- cmd/device.rs, cmd/snap.rs updated to use metaltile::runner::GpuFamily
- metaltile-runtime removed from metaltile-cli Cargo.toml

Step 12: tile init command
- Scaffolds Cargo.toml + src/lib.rs (sample #[kernel]/#[bench_kernel]) + tile.toml
- InitCommand implements TileCommand; --force flag to overwrite
- needless_return: drop return keyword from cfg-gated blocks in
  runner/gpu.rs (read_bytes, read_f32_slice, read_bf16_slice,
  read_f16_slice, measure, supports_simd_matrix)
- map_or_true: replace .map_or(true, |f| …) with .is_none_or(|f| …)
  in runner/harness.rs (4 filter sites)
- too_many_arguments: #[allow] on run_reference (harness.rs) and
  run_reference_bench (bench.rs) — 8-arg helper fns, refactor deferred
- collapsible_if: flatten nested if-let in run_kernel_bench (bench.rs)
- result_large_err: box figment::Error in ConfigLoader::load signature
@github-actions github-actions Bot added the ignore-for-release Hidden from release notes label Jun 1, 2026
@0xClandestine 0xClandestine changed the title refactor(cli): subprocess architecture — steps 1–12 refactor(cli): subprocess architecture Jun 1, 2026
TileConfig gains `runs` (default 10) and `warmup_runs` (default 15).
BenchCommand::run now passes harness.config values to run(), which
threads them through run_kernel_bench/run_reference_bench into
bench_gbps_with() so tile.toml and TILE__ env vars control iteration
counts without recompilation. tile.toml updated to document both fields.
Add bench_gbps_with() accepting explicit warmup/iters so CLI config
can override compile-time defaults. bench_gbps delegates to it.
TileConfig gains runs/warmup_runs fields (defaults 10/15) wired
through to bench_gbps_with via BenchCommand.
Blocking (CI + correctness):
- gpu.rs: #[allow(too_many_arguments)] on bench_gbps_with → unblocks CI
- project_runner.rs: fix --inspect → --kind in build_argv (B1)
- cmd/init.rs: add metaltile = "0.1" to scaffolded Cargo.toml (B2)
- runner/args.rs: add --warmup-runs/--runs flags; RunnerArgs gains
  warmup/iters fields (B3)
- runner/harness.rs: thread warmup/iters through run_bench →
  run_one_bench → bench_gbps_with and run_reference (B3)
- config.rs: fix brittle ConfigLoader test to use explicit provider
  path instead of CWD; assert all default field values (B4)

Quality / correctness:
- runner/emit.rs: log IO errors in emit_stdout instead of discarding (C1)
- harness.rs: eprintln → tracing::warn! for config fallback (C2)
- run_one_bench: emit diagnostic when buffer name not found in setup (C4)

API / naming:
- config.rs: verbose: bool → verbose: u8 (0/1/2 levels); tile.toml
  updated; TILE__VERBOSE doc updated (D2)
- suite_printer.rs: from_harness uses verbose u8 directly (D2)
- harness/bench.rs: add ConstValue::to_le_bytes() (D3)
- runner/harness.rs + cmd/bench.rs: replace duplicate constexpr_bytes
  helpers with ConstValue::to_le_bytes() (D3)
- project_runner.rs: add warmup_runs/runs fields to RunnerInvocation
  so Phase 2 subprocess wiring can pass config values through
- config.rs: drop double-underscore figment split; TILE_FOO now maps to TileConfig.foo
- init.rs: use env!("CARGO_PKG_VERSION") for metaltile/metaltile-std deps; fix verbose=false→0
- tile.toml: update env-var comment to reflect TILE_* prefix

@ekryski ekryski left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed at cb2635c. Nice work — the earlier compile breaks + the audit findings are already addressed and the lib builds clean. A few things still need fixing before CI goes green, plus a couple of gaps to flag.

Blockers (CI red):

  • Test targets don't compile. metaltile-runtime was dropped from metaltile-std's deps, but 28 files in crates/metaltile-std/tests/ still use metaltile_runtime directly (e.g. sdpa_decode_swa_gpu, moe_gather_qmm_mpp_bm8_int8, gated_delta_prep_step, kernel_tests_harness). Clippy + Tests / Suite fail on this. Inline note on the Cargo.toml.
  • Format CI failingcargo fmt hasn't been applied to the latest commits.

Gaps (not blockers):

  • Step 11 "strip GPU from CLI" isn't actually achieved — the CLI still pulls metaltile-runtime transitively via the metaltile facade. Fine for Phase-1-in-process, but the body overstates it. Inline note.
  • protocol::ProfileInfo overlaps PR #247's KernelProfile — should be reconciled into one type. Inline note.
  • FYI: the "subprocess" is still Phase-1 in-process (ProjectRunner delegates to RunnerHarness::run); the real spawn / stream / crash-handling paths aren't exercised yet. Well-documented in code — just flagging so it's not assumed tested.

Crate surgery + protocol versioning look clean. Once the test deps + fmt are sorted it should go green.

objc2-metal.workspace = true
objc2-foundation.workspace = true

[dev-dependencies]

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blocker: dropping metaltile-runtime from std breaks 28 integration tests under tests/ that still use metaltile_runtime directly (sdpa_decode_swa_gpu, moe_gather_qmm_mpp_bm8_int8, gated_delta_prep_step, kernel_tests_harness, …) — the test targets fail to compile, so Clippy + Tests / Suite go red.

Quickest unblock: re-add metaltile-runtime.workspace = true under [dev-dependencies]. Cleaner (matches the std→facade direction): migrate those tests to metaltile::runner::*.

@@ -18,11 +18,11 @@ path = "src/main.rs"
thiserror.workspace = true
metaltile.workspace = true

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Step 11 ("strip metaltile-runtime from CLI") is only cosmetic as-is: the CLI still depends on the metaltile facade here (plus -codegen/-std), and metaltile pulls in metaltile-runtime transitively — so tile still links the GPU stack. Expected while ProjectRunner runs in-process (Phase 1), but the body's "CLI retains only metaltile-core" isn't true yet. Worth rewording now, and dropping the facade dep once the real subprocess spawn lands.

///
/// Populated when the runner is invoked with profiling enabled.
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ProfileInfo {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ProfileInfo overlaps PR #247 (ek/bench-metrics), which independently defines KernelProfile + classify_bottleneck() in metaltile-std/src/profile.rs (latency µs / GFLOP·s / roofline / bottleneck). Same concept, two types. Whichever merges second should make ProfileInfo the serialized form of KernelProfile rather than a parallel definition — otherwise the metric schema diverges across the wire boundary.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we merge this first and I will resolve my PR #247 afterwards.

probe/mma_layout_probe.rs and probe/mpp_matmul_smoke.rs were deleted
in the runner refactor but their integration tests were left behind,
causing E0432/E0433 compile errors under --all-targets clippy.

- Restore src/probe/mma_layout_probe.rs (two #[kernel] MMA probe fns)
- Restore src/probe/mpp_matmul_smoke.rs (CoopTile smoke kernel_ir())
- Add `pub mod probe` to lib.rs
- Add metaltile-runtime to [dev-dependencies] (needed by GPU test files)
- tile bench header now shows "warmup=N runs=N" beside device name
- warmup_runs default: 15 → 3 (faster iteration during development)
- tile.toml and config.rs tests updated to match
@github-actions

github-actions Bot commented Jun 1, 2026

Copy link
Copy Markdown

tile bench vs baselines/apple-paravirtual-device.json

Runner chip: Apple Paravirtual device (slug apple-paravirtual-device) | commit 1163f44

tile diff @ commit `1163f44`
tile diff

  affine                                          │ bits=3 gs=32 n_groups=4096 bf16          │  92% →  — │ removed
  affine                                          │ bits=3 gs=32 n_groups=4096 f16           │ 104% →  — │ removed
  affine                                          │ bits=3 gs=32 n_groups=4096 f32           │  94% →  — │ removed
  affine                                          │ bits=4 gs=64 n_groups=4096 bf16          │  84% →  — │ removed
  affine                                          │ bits=4 gs=64 n_groups=4096 f16           │ 119% →  — │ removed
  affine                                          │ bits=4 gs=64 n_groups=4096 f32           │  92% →  — │ removed
  affine                                          │ bits=5 gs=32 n_groups=4096 bf16          │ 152% →  — │ removed
  affine                                          │ bits=5 gs=32 n_groups=4096 f16           │ 121% →  — │ removed
  affine                                          │ bits=5 gs=32 n_groups=4096 f32           │ 114% →  — │ removed
  affine                                          │ bits=6 gs=32 n_groups=4096 bf16          │ 106% →  — │ removed
  affine                                          │ bits=6 gs=32 n_groups=4096 f16           │ 121% →  — │ removed
  affine                                          │ bits=6 gs=32 n_groups=4096 f32           │ 134% →  — │ removed
  affine                                          │ bits=8 gs=64 n_groups=4096 bf16          │  96% →  — │ removed
  affine                                          │ bits=8 gs=64 n_groups=4096 f16           │ 125% →  — │ removed
  affine                                          │ bits=8 gs=64 n_groups=4096 f32           │ 131% →  — │ removed
  all_reduce                                      │ N=64M bf16                               │ 108% →  — │ removed
  all_reduce                                      │ N=64M f16                                │  90% →  — │ removed
  all_reduce                                      │ N=64M f32                                │  94% →  — │ removed
  arange                                          │ N=64M bf16                               │  98% →  — │ removed
  arange                                          │ N=64M f16                                │ 101% →  — │ removed
  arange                                          │ N=64M f32                                │ 106% →  — │ removed
  arg_reduce                                      │ N=1048576 f32                            │ 691% →  — │ removed
  binary                                          │ N=64M bf16                               │  82% →  — │ removed
  binary                                          │ N=64M f16                                │ 104% →  — │ removed
  binary                                          │ N=64M f32                                │  99% →  — │ removed
  binary_two                                      │ N=64M bf16                               │  — →  — │ removed
  binary_two                                      │ N=64M f16                                │  — →  — │ removed
  binary_two                                      │ N=64M f32                                │  — →  — │ removed
  copy                                            │ N=64M bf16                               │  83% →  — │ removed
  copy                                            │ N=64M f16                                │ 100% →  — │ removed
  copy                                            │ N=64M f32                                │  98% →  — │ removed
  ffai/argmax                                     │ N=256K bf16                              │  — →  — │     new
  ffai/argmax                                     │ N=256K f16                               │  — →  — │     new
  ffai/argmax                                     │ N=256K f32                               │  — →  — │     new
  ffai/audio_conv1d/audio_conv1d                  │ N=4800K bf16                             │  — →  — │     new
  ffai/audio_conv1d/audio_conv1d                  │ N=4800K f16                              │  — →  — │     new
  ffai/audio_conv1d/audio_conv1d                  │ N=4800K f32                              │  — →  — │     new
  ffai/aura_dequant_rotated_int2                  │ N=64K bf16                               │  — →  — │     new
  ffai/aura_dequant_rotated_int2                  │ N=64K f16                                │  — →  — │     new
  ffai/aura_dequant_rotated_int2                  │ N=64K f32                                │  — →  — │     new
  ffai/aura_dequant_rotated_int3                  │ N=64K bf16                               │  — →  — │     new
  ffai/aura_dequant_rotated_int3                  │ N=64K f16                                │  — →  — │     new
  ffai/aura_dequant_rotated_int3                  │ N=64K f32                                │  — →  — │     new
  ffai/aura_dequant_rotated_int4                  │ N=64K bf16                               │  — →  — │     new
  ffai/aura_dequant_rotated_int4                  │ N=64K f16                                │  — →  — │     new
  ffai/aura_dequant_rotated_int4                  │ N=64K f32                                │  — →  — │     new
  ffai/aura_dequant_rotated_int6                  │ N=64K bf16                               │  — →  — │     new
  ffai/aura_dequant_rotated_int6                  │ N=64K f16                                │  — →  — │     new
  ffai/aura_dequant_rotated_int6                  │ N=64K f32                                │  — →  — │     new
  ffai/aura_dequant_rotated_int8                  │ N=64K bf16                               │  — →  — │     new
  ffai/aura_dequant_rotated_int8                  │ N=64K f16                                │  — →  — │     new
  ffai/aura_dequant_rotated_int8                  │ N=64K f32                                │  — →  — │     new
  ffai/aura_encode_int2                           │ N=32K bf16                               │  — →  — │     new
  ffai/aura_encode_int2                           │ N=32K f16                                │  — →  — │     new
  ffai/aura_encode_int2                           │ N=32K f32                                │  — →  — │     new
  ffai/aura_encode_int3                           │ N=32K bf16                               │  — →  — │     new
  ffai/aura_encode_int3                           │ N=32K f16                                │  — →  — │     new
  ffai/aura_encode_int3                           │ N=32K f32                                │  — →  — │     new
  ffai/aura_encode_int4                           │ N=32K bf16                               │  — →  — │     new
  ffai/aura_encode_int4                           │ N=32K f16                                │  — →  — │     new
  ffai/aura_encode_int4                           │ N=32K f32                                │  — →  — │     new
  ffai/aura_encode_int6                           │ N=32K bf16                               │  — →  — │     new
  ffai/aura_encode_int6                           │ N=32K f16                                │  — →  — │     new
  ffai/aura_encode_int6                           │ N=32K f32                                │  — →  — │     new
  ffai/aura_encode_int8                           │ N=32K bf16                               │  — →  — │     new
  ffai/aura_encode_int8                           │ N=32K f16                                │  — →  — │     new
  ffai/aura_encode_int8                           │ N=32K f32                                │  — →  — │     new
  ffai/aura_flash_p1_causal_kb4_vb2_d128          │ N=512K bf16                              │  — →  — │     new
  ffai/aura_flash_p1_causal_kb4_vb2_d128          │ N=512K f16                               │  — →  — │     new
  ffai/aura_flash_p1_causal_kb4_vb2_d128          │ N=512K f32                               │  — →  — │     new
  ffai/aura_flash_p1_causal_kb4_vb2_d64           │ N=256K bf16                              │  — →  — │     new
  ffai/aura_flash_p1_causal_kb4_vb2_d64           │ N=256K f16                               │  — →  — │     new
  ffai/aura_flash_p1_causal_kb4_vb2_d64           │ N=256K f32                               │  — →  — │     new
  ffai/aura_flash_p1_kb4_vb2_d128                 │ N=512K bf16                              │  — →  — │     new
  ffai/aura_flash_p1_kb4_vb2_d128                 │ N=512K f16                               │  — →  — │     new
  ffai/aura_flash_p1_kb4_vb2_d128                 │ N=512K f32                               │  — →  — │     new
  ffai/aura_flash_p1_kb4_vb2_d64                  │ N=256K bf16                              │  — →  — │     new
  ffai/aura_flash_p1_kb4_vb2_d64                  │ N=256K f16                               │  — →  — │     new
  ffai/aura_flash_p1_kb4_vb2_d64                  │ N=256K f32                               │  — →  — │     new
  ffai/aura_flash_p1_kb4_vb4_d128                 │ N=512K bf16                              │  — →  — │     new
  ffai/aura_flash_p1_kb4_vb4_d128                 │ N=512K f16                               │  — →  — │     new
  ffai/aura_flash_p1_kb4_vb4_d128                 │ N=512K f32                               │  — →  — │     new
  ffai/aura_flash_p1_kb4_vb4_d64                  │ N=256K bf16                              │  — →  — │     new
  ffai/aura_flash_p1_kb4_vb4_d64                  │ N=256K f16                               │  — →  — │     new
  ffai/aura_flash_p1_kb4_vb4_d64                  │ N=256K f32                               │  — →  — │     new
  ffai/aura_flash_pass2_d128                      │ N=64K bf16                               │  — →  — │     new
  ffai/aura_flash_pass2_d128                      │ N=64K f16                                │  — →  — │     new
  ffai/aura_flash_pass2_d128                      │ N=64K f32                                │  — →  — │     new
  ffai/aura_flash_pass2_d256                      │ N=128K bf16                              │  — →  — │     new
  ffai/aura_flash_pass2_d256                      │ N=128K f16                               │  — →  — │     new
  ffai/aura_flash_pass2_d256                      │ N=128K f32                               │  — →  — │     new
  ffai/aura_flash_pass2_d512                      │ N=256K bf16                              │  — →  — │     new
  ffai/aura_flash_pass2_d512                      │ N=256K f16                               │  — →  — │     new
  ffai/aura_flash_pass2_d512                      │ N=256K f32                               │  — →  — │     new
  ffai/aura_flash_pass2_d64                       │ N=32K bf16                               │  — →  — │     new
  ffai/aura_flash_pass2_d64                       │ N=32K f16                                │  — →  — │     new
  ffai/aura_flash_pass2_d64                       │ N=32K f32                                │  — →  — │     new
  ffai/aura_flash_pass2_d80                       │ N=40K bf16                               │  — →  — │     new
  ffai/aura_flash_pass2_d80                       │ N=40K f16                                │  — →  — │     new
  ffai/aura_flash_pass2_d80                       │ N=40K f32                                │  — →  — │     new
  ffai/aura_flash_pass2_d96                       │ N=48K bf16                               │  — →  — │     new
  ffai/aura_flash_pass2_d96                       │ N=48K f16                                │  — →  — │     new
  ffai/aura_flash_pass2_d96                       │ N=48K f32                                │  — →  — │     new
  ffai/aura_flash_sdpa_kb4_vb2_d128               │ N=64K bf16                               │  — →  — │     new
  ffai/aura_flash_sdpa_kb4_vb2_d128               │ N=64K f16                                │  — →  — │     new
  ffai/aura_flash_sdpa_kb4_vb2_d128               │ N=64K f32                                │  — →  — │     new
  ffai/aura_flash_sdpa_kb4_vb2_d64                │ N=32K bf16                               │  — →  — │     new
  ffai/aura_flash_sdpa_kb4_vb2_d64                │ N=32K f16                                │  — →  — │     new
  ffai/aura_flash_sdpa_kb4_vb2_d64                │ N=32K f32                                │  — →  — │     new
  ffai/aura_flash_sdpa_kb4_vb4_d128               │ N=64K bf16                               │  — →  — │     new
  ffai/aura_flash_sdpa_kb4_vb4_d128               │ N=64K f16                                │  — →  — │     new
  ffai/aura_flash_sdpa_kb4_vb4_d128               │ N=64K f32                                │  — →  — │     new
  ffai/aura_flash_sdpa_kb4_vb4_d64                │ N=32K bf16                               │  — →  — │     new
  ffai/aura_flash_sdpa_kb4_vb4_d64                │ N=32K f16                                │  — →  — │     new
  ffai/aura_flash_sdpa_kb4_vb4_d64                │ N=32K f32                                │  — →  — │     new
  ffai/aura_score_int2                            │ N=256K bf16                              │  — →  — │     new
  ffai/aura_score_int2                            │ N=256K f16                               │  — →  — │     new
  ffai/aura_score_int2                            │ N=256K f32                               │  — →  — │     new
  ffai/aura_score_int3                            │ N=384K bf16                              │  — →  — │     new
  ffai/aura_score_int3                            │ N=384K f16                               │  — →  — │     new
  ffai/aura_score_int3                            │ N=384K f32                               │  — →  — │     new
  ffai/aura_score_int4                            │ N=512K bf16                              │  — →  — │     new
  ffai/aura_score_int4                            │ N=512K f16                               │  — →  — │     new
  ffai/aura_score_int4                            │ N=512K f32                               │  — →  — │     new
  ffai/aura_score_int6                            │ N=768K bf16                              │  — →  — │     new
  ffai/aura_score_int6                            │ N=768K f16                               │  — →  — │     new
  ffai/aura_score_int6                            │ N=768K f32                               │  — →  — │     new
  ffai/aura_score_int8                            │ N=1M bf16                                │  — →  — │     new
  ffai/aura_score_int8                            │ N=1M f16                                 │  — →  — │     new
  ffai/aura_score_int8                            │ N=1M f32                                 │  — →  — │     new
  ffai/aura_value_int2                            │ N=256K bf16                              │  — →  — │     new
  ffai/aura_value_int2                            │ N=256K f16                               │  — →  — │     new
  ffai/aura_value_int2                            │ N=256K f32                               │  — →  — │     new
  ffai/aura_value_int3                            │ N=384K bf16                              │  — →  — │     new
  ffai/aura_value_int3                            │ N=384K f16                               │  — →  — │     new
  ffai/aura_value_int3                            │ N=384K f32                               │  — →  — │     new
  ffai/aura_value_int4                            │ N=512K bf16                              │  — →  — │     new
  ffai/aura_value_int4                            │ N=512K f16                               │  — →  — │     new
  ffai/aura_value_int4                            │ N=512K f32                               │  — →  — │     new
  ffai/aura_value_int6                            │ N=768K bf16                              │  — →  — │     new
  ffai/aura_value_int6                            │ N=768K f16                               │  — →  — │     new
  ffai/aura_value_int6                            │ N=768K f32                               │  — →  — │     new
  ffai/aura_value_int8                            │ N=1M bf16                                │  — →  — │     new
  ffai/aura_value_int8                            │ N=1M f16                                 │  — →  — │     new
  ffai/aura_value_int8                            │ N=1M f32                                 │  — →  — │     new
  ffai/batched_4_qgemv_fast                       │ N=256K bf16                              │  — →  — │     new
  ffai/batched_4_qgemv_fast                       │ N=256K f16                               │  — →  — │     new
  ffai/batched_4_qgemv_fast                       │ N=256K f32                               │  — →  — │     new
  ffai/batched_4_qmm_fast                         │ N=512K bf16                              │  — →  — │     new
  ffai/batched_4_qmm_fast                         │ N=512K f16                               │  — →  — │     new
  ffai/batched_4_qmm_fast                         │ N=512K f32                               │  — →  — │     new
  ffai/batched_qkv_qgemv                          │ N=2M bf16                                │  — →  — │     new
  ffai/batched_qkv_qgemv                          │ N=2M f16                                 │  — →  — │     new
  ffai/batched_qkv_qgemv                          │ N=2M f32                                 │  — →  — │     new
  ffai/batched_qkv_qgemv_fast                     │ N=2M bf16                                │  — →  — │     new
  ffai/batched_qkv_qgemv_fast                     │ N=2M f16                                 │  — →  — │     new
  ffai/batched_qkv_qgemv_fast                     │ N=2M f32                                 │  — →  — │     new
  ffai/batched_qkv_qmm_fast                       │ N=2M bf16                                │  — →  — │     new
  ffai/batched_qkv_qmm_fast                       │ N=2M f16                                 │  — →  — │     new
  ffai/batched_qkv_qmm_fast                       │ N=2M f32                                 │  — →  — │     new
  ffai/conv1d_causal_step                         │ N=6K bf16                                │  — →  — │     new
  ffai/conv1d_causal_step                         │ N=6K f16                                 │  — →  — │     new
  ffai/conv1d_causal_step                         │ N=6K f32                                 │  — →  — │     new
  ffai/conv2d/generic                             │ N=186624 bf16                            │  — →  — │     new
  ffai/conv2d/generic                             │ N=186624 f16                             │  — →  — │     new
  ffai/conv2d/generic                             │ N=186624 f32                             │  — →  — │     new
  ffai/conv2d/grouped                             │ N=196K bf16                              │  — →  — │     new
  ffai/conv2d/grouped                             │ N=196K f16                               │  — →  — │     new
  ffai/conv2d/grouped                             │ N=196K f32                               │  — →  — │     new
  ffai/conv2d/mma                                 │ N=1M bf16                                │  — →  — │     new
  ffai/conv2d/mma                                 │ N=1M f16                                 │  — →  — │     new
  ffai/conv2d/mma                                 │ N=1M f32                                 │  — →  — │     new
  ffai/conv2d/patch14                             │ N=588K bf16                              │  — →  — │     new
  ffai/conv2d/patch14                             │ N=588K f16                               │  — →  — │     new
  ffai/conv2d/patch14                             │ N=588K f32                               │  — →  — │     new
  ffai/conv2d/patch16                             │ N=576K bf16                              │  — →  — │     new
  ffai/conv2d/patch16                             │ N=576K f16                               │  — →  — │     new
  ffai/conv2d/patch16                             │ N=576K f32                               │  — →  — │     new
  ffai/conv2d/winograd_3x3                        │ N=196K bf16                              │  — →  — │     new
  ffai/conv2d/winograd_3x3                        │ N=196K f16                               │  — →  — │     new
  ffai/conv2d/winograd_3x3                        │ N=196K f32                               │  — →  — │     new
  ffai/conv2d/winograd_3x3_split                  │ N=196K bf16                              │  — →  — │     new
  ffai/conv2d/winograd_3x3_split                  │ N=196K f16                               │  — →  — │     new
  ffai/conv2d/winograd_3x3_split                  │ N=196K f32                               │  — →  — │     new
  ffai/conv2d/winograd_filter_transform_3x3       │ N=1M bf16                                │  — →  — │     new
  ffai/conv2d/winograd_filter_transform_3x3       │ N=1M f16                                 │  — →  — │     new
  ffai/conv2d/winograd_filter_transform_3x3       │ N=1M f32                                 │  — →  — │     new
  ffai/conv3d/generic                             │ N=403200 bf16                            │  — →  — │     new
  ffai/conv3d/generic                             │ N=403200 f16                             │  — →  — │     new
  ffai/conv3d/generic                             │ N=403200 f32                             │  — →  — │     new
  ffai/conv3d/grouped                             │ N=512K bf16                              │  — →  — │     new
  ffai/conv3d/grouped                             │ N=512K f16                               │  — →  — │     new
  ffai/conv3d/grouped                             │ N=512K f32                               │  — →  — │     new
  ffai/conv3d/mma                                 │ N=1M bf16                                │  — →  — │     new
  ffai/conv3d/mma                                 │ N=1M f16                                 │  — →  — │     new
  ffai/conv3d/mma                                 │ N=1M f32                                 │  — →  — │     new
  ffai/depthwise_conv2d/depthwise_conv2d          │ N=784K bf16                              │  — →  — │     new
  ffai/depthwise_conv2d/depthwise_conv2d          │ N=784K f16                               │  — →  — │     new
  ffai/depthwise_conv2d/depthwise_conv2d          │ N=784K f32                               │  — →  — │     new
  ffai/dequant_gather/int2                        │ N=1M bf16                                │  — →  — │     new
  ffai/dequant_gather/int2                        │ N=1M f16                                 │  — →  — │     new
  ffai/dequant_gather/int2                        │ N=1M f32                                 │  — →  — │     new
  ffai/dequant_gather/int3                        │ N=1536K bf16                             │  — →  — │     new
  ffai/dequant_gather/int3                        │ N=1536K f16                              │  — →  — │     new
  ffai/dequant_gather/int3                        │ N=1536K f32                              │  — →  — │     new
  ffai/dequant_gather/int4                        │ N=2M bf16                                │  — →  — │     new
  ffai/dequant_gather/int4                        │ N=2M f16                                 │  — →  — │     new
  ffai/dequant_gather/int4                        │ N=2M f32                                 │  — →  — │     new
  ffai/dequant_gather/int5                        │ N=2560K bf16                             │  — →  — │     new
  ffai/dequant_gather/int5                        │ N=2560K f16                              │  — →  — │     new
  ffai/dequant_gather/int5                        │ N=2560K f32                              │  — →  — │     new
  ffai/dequant_gather/int6                        │ N=3M bf16                                │  — →  — │     new
  ffai/dequant_gather/int6                        │ N=3M f16                                 │  — →  — │     new
  ffai/dequant_gather/int6                        │ N=3M f32                                 │  — →  — │     new
  ffai/dequant_gather/int8                        │ N=4M bf16                                │  — →  — │     new
  ffai/dequant_gather/int8                        │ N=4M f16                                 │  — →  — │     new
  ffai/dequant_gather/int8                        │ N=4M f32                                 │  — →  — │     new
  ffai/dequant_gemv/int2                          │ N=1M bf16                                │  — →  — │     new
  ffai/dequant_gemv/int2                          │ N=1M f16                                 │  — →  — │     new
  ffai/dequant_gemv/int2                          │ N=1M f32                                 │  — →  — │     new
  ffai/dequant_gemv/int3                          │ N=1536K bf16                             │  — →  — │     new
  ffai/dequant_gemv/int3                          │ N=1536K f16                              │  — →  — │     new
  ffai/dequant_gemv/int3                          │ N=1536K f32                              │  — →  — │     new
  ffai/dequant_gemv/int4                          │ N=2M bf16                                │  — →  — │     new
  ffai/dequant_gemv/int4                          │ N=2M f16                                 │  — →  — │     new
  ffai/dequant_gemv/int4                          │ N=2M f32                                 │  — →  — │     new
  ffai/dequant_gemv/int4_fast                     │ N=2M bf16                                │  — →  — │     new
  ffai/dequant_gemv/int4_fast                     │ N=2M f16                                 │  — →  — │     new
  ffai/dequant_gemv/int4_fast                     │ N=2M f32                                 │  — →  — │     new
  ffai/dequant_gemv/int5                          │ N=2560K bf16                             │  — →  — │     new
  ffai/dequant_gemv/int5                          │ N=2560K f16                              │  — →  — │     new
  ffai/dequant_gemv/int5                          │ N=2560K f32                              │  — →  — │     new
  ffai/dequant_gemv/int6                          │ N=3M bf16                                │  — →  — │     new
  ffai/dequant_gemv/int6                          │ N=3M f16                                 │  — →  — │     new
  ffai/dequant_gemv/int6                          │ N=3M f32                                 │  — →  — │     new
  ffai/dequant_gemv/int8                          │ N=4M bf16                                │  — →  — │     new
  ffai/dequant_gemv/int8                          │ N=4M f16                                 │  — →  — │     new
  ffai/dequant_gemv/int8                          │ N=4M f32                                 │  — →  — │     new
  ffai/dequant_gemv_expert_indexed/int4           │ N=16M bf16                               │  — →  — │     new
  ffai/dequant_gemv_expert_indexed/int4           │ N=16M f16                                │  — →  — │     new
  ffai/dequant_gemv_expert_indexed/int4           │ N=16M f32                                │  — →  — │     new
  ffai/fishspeech_conv1d/conv1d_dilated           │ N=768K bf16                              │  — →  — │     new
  ffai/fishspeech_conv1d/conv1d_dilated           │ N=768K f16                               │  — →  — │     new
  ffai/fishspeech_conv1d/conv1d_dilated           │ N=768K f32                               │  — →  — │     new
  ffai/fishspeech_conv1d/conv1d_transpose         │ N=512K bf16                              │  — →  — │     new
  ffai/fishspeech_conv1d/conv1d_transpose         │ N=512K f16                               │  — →  — │     new
  ffai/fishspeech_conv1d/conv1d_transpose         │ N=512K f32                               │  — →  — │     new
  ffai/flash_quantized_sdpa_b4_d128               │ N=64K bf16                               │  — →  — │     new
  ffai/flash_quantized_sdpa_b4_d128               │ N=64K f16                                │  — →  — │     new
  ffai/flash_quantized_sdpa_b4_d128               │ N=64K f32                                │  — →  — │     new
  ffai/flash_quantized_sdpa_b4_d256               │ N=128K bf16                              │  — →  — │     new
  ffai/flash_quantized_sdpa_b4_d256               │ N=128K f16                               │  — →  — │     new
  ffai/flash_quantized_sdpa_b4_d256               │ N=128K f32                               │  — →  — │     new
  ffai/flash_quantized_sdpa_b4_d512               │ N=256K bf16                              │  — →  — │     new
  ffai/flash_quantized_sdpa_b4_d512               │ N=256K f16                               │  — →  — │     new
  ffai/flash_quantized_sdpa_b4_d512               │ N=256K f32                               │  — →  — │     new
  ffai/flash_quantized_sdpa_b4_d64                │ N=32K bf16                               │  — →  — │     new
  ffai/flash_quantized_sdpa_b4_d64                │ N=32K f16                                │  — →  — │     new
  ffai/flash_quantized_sdpa_b4_d64                │ N=32K f32                                │  — →  — │     new
  ffai/flash_quantized_sdpa_b4_d96                │ N=48K bf16                               │  — →  — │     new
  ffai/flash_quantized_sdpa_b4_d96                │ N=48K f16                                │  — →  — │     new
  ffai/flash_quantized_sdpa_b4_d96                │ N=48K f32                                │  — →  — │     new
  ffai/flash_quantized_sdpa_b8_d128               │ N=128K bf16                              │  — →  — │     new
  ffai/flash_quantized_sdpa_b8_d128               │ N=128K f16                               │  — →  — │     new
  ffai/flash_quantized_sdpa_b8_d128               │ N=128K f32                               │  — →  — │     new
  ffai/flash_quantized_sdpa_b8_d256               │ N=256K bf16                              │  — →  — │     new
  ffai/flash_quantized_sdpa_b8_d256               │ N=256K f16                               │  — →  — │     new
  ffai/flash_quantized_sdpa_b8_d256               │ N=256K f32                               │  — →  — │     new
  ffai/flash_quantized_sdpa_b8_d512               │ N=512K bf16                              │  — →  — │     new
  ffai/flash_quantized_sdpa_b8_d512               │ N=512K f16                               │  — →  — │     new
  ffai/flash_quantized_sdpa_b8_d512               │ N=512K f32                               │  — →  — │     new
  ffai/flash_quantized_sdpa_b8_d64                │ N=64K bf16                               │  — →  — │     new
  ffai/flash_quantized_sdpa_b8_d64                │ N=64K f16                                │  — →  — │     new
  ffai/flash_quantized_sdpa_b8_d64                │ N=64K f32                                │  — →  — │     new
  ffai/flash_quantized_sdpa_b8_d96                │ N=96K bf16                               │  — →  — │     new
  ffai/flash_quantized_sdpa_b8_d96                │ N=96K f16                                │  — →  — │     new
  ffai/flash_quantized_sdpa_b8_d96                │ N=96K f32                                │  — →  — │     new
  ffai/flash_quantized_sdpa_bool_mask_b4_d128     │ N=64K bf16                               │  — →  — │     new
  ffai/flash_quantized_sdpa_bool_mask_b4_d128     │ N=64K f16                                │  — →  — │     new
  ffai/flash_quantized_sdpa_bool_mask_b4_d128     │ N=64K f32                                │  — →  — │     new
  ffai/flash_quantized_sdpa_bool_mask_b4_d256     │ N=128K bf16                              │  — →  — │     new
  ffai/flash_quantized_sdpa_bool_mask_b4_d256     │ N=128K f16                               │  — →  — │     new
  ffai/flash_quantized_sdpa_bool_mask_b4_d256     │ N=128K f32                               │  — →  — │     new
  ffai/flash_quantized_sdpa_bool_mask_b4_d64      │ N=32K bf16                               │  — →  — │     new
  ffai/flash_quantized_sdpa_bool_mask_b4_d64      │ N=32K f16                                │  — →  — │     new
  ffai/flash_quantized_sdpa_bool_mask_b4_d64      │ N=32K f32                                │  — →  — │     new
  ffai/flash_quantized_sdpa_bool_mask_b8_d128     │ N=128K bf16                              │  — →  — │     new
  ffai/flash_quantized_sdpa_bool_mask_b8_d128     │ N=128K f16                               │  — →  — │     new
  ffai/flash_quantized_sdpa_bool_mask_b8_d128     │ N=128K f32                               │  — →  — │     new
  ffai/flash_quantized_sdpa_bool_mask_b8_d256     │ N=256K bf16                              │  — →  — │     new
  ffai/flash_quantized_sdpa_bool_mask_b8_d256     │ N=256K f16                               │  — →  — │     new
  ffai/flash_quantized_sdpa_bool_mask_b8_d256     │ N=256K f32                               │  — →  — │     new
  ffai/flash_quantized_sdpa_bool_mask_b8_d64      │ N=64K bf16                               │  — →  — │     new
  ffai/flash_quantized_sdpa_bool_mask_b8_d64      │ N=64K f16                                │  — →  — │     new
  ffai/flash_quantized_sdpa_bool_mask_b8_d64      │ N=64K f32                                │  — →  — │     new
  ffai/flash_quantized_sdpa_float_mask_b4_d128    │ N=64K bf16                               │  — →  — │     new
  ffai/flash_quantized_sdpa_float_mask_b4_d128    │ N=64K f16                                │  — →  — │     new
  ffai/flash_quantized_sdpa_float_mask_b4_d128    │ N=64K f32                                │  — →  — │     new
  ffai/flash_quantized_sdpa_float_mask_b4_d256    │ N=128K bf16                              │  — →  — │     new
  ffai/flash_quantized_sdpa_float_mask_b4_d256    │ N=128K f16                               │  — →  — │     new
  ffai/flash_quantized_sdpa_float_mask_b4_d256    │ N=128K f32                               │  — →  — │     new
  ffai/flash_quantized_sdpa_float_mask_b4_d64     │ N=32K bf16                               │  — →  — │     new
  ffai/flash_quantized_sdpa_float_mask_b4_d64     │ N=32K f16                                │  — →  — │     new
  ffai/flash_quantized_sdpa_float_mask_b4_d64     │ N=32K f32                                │  — →  — │     new
  ffai/flash_quantized_sdpa_float_mask_b8_d128    │ N=128K bf16                              │  — →  — │     new
  ffai/flash_quantized_sdpa_float_mask_b8_d128    │ N=128K f16                               │  — →  — │     new
  ffai/flash_quantized_sdpa_float_mask_b8_d128    │ N=128K f32                               │  — →  — │     new
  ffai/flash_quantized_sdpa_float_mask_b8_d256    │ N=256K bf16                              │  — →  — │     new
  ffai/flash_quantized_sdpa_float_mask_b8_d256    │ N=256K f16                               │  — →  — │     new
  ffai/flash_quantized_sdpa_float_mask_b8_d256    │ N=256K f32                               │  — →  — │     new
  ffai/flash_quantized_sdpa_float_mask_b8_d64     │ N=64K bf16                               │  — →  — │     new
  ffai/flash_quantized_sdpa_float_mask_b8_d64     │ N=64K f16                                │  — →  — │     new
  ffai/flash_quantized_sdpa_float_mask_b8_d64     │ N=64K f32                                │  — →  — │     new
  ffai/gated_delta_chunk                          │ N=8K bf16                                │  — →  — │     new
  ffai/gated_delta_chunk                          │ N=8K f16                                 │  — →  — │     new
  ffai/gated_delta_chunk                          │ N=8K f32                                 │  — →  — │     new
  ffai/gated_delta_prep_chunk                     │ N=18K bf16                               │  — →  — │     new
  ffai/gated_delta_prep_chunk                     │ N=18K f16                                │  — →  — │     new
  ffai/gated_delta_prep_chunk                     │ N=18K f32                                │  — →  — │     new
  ffai/gated_delta_prep_step                      │ N=32K bf16                               │  — →  — │     new
  ffai/gated_delta_prep_step                      │ N=32K f16                                │  — →  — │     new
  ffai/gated_delta_prep_step                      │ N=32K f32                                │  — →  — │     new
  ffai/gated_delta_record                         │ N=4K bf16                                │  — →  — │     new
  ffai/gated_delta_record                         │ N=4K f16                                 │  — →  — │     new
  ffai/gated_delta_record                         │ N=4K f32                                 │  — →  — │     new
  ffai/gated_delta_record_d192_128_4_4            │ N=96K bf16                               │  — →  — │     new
  ffai/gated_delta_record_d192_128_4_4            │ N=96K f16                                │  — →  — │     new
  ffai/gated_delta_record_d192_128_4_4            │ N=96K f32                                │  — →  — │     new
  ffai/gated_delta_replay                         │ N=4K bf16                                │  — →  — │     new
  ffai/gated_delta_replay                         │ N=4K f16                                 │  — →  — │     new
  ffai/gated_delta_replay                         │ N=4K f32                                 │  — →  — │     new
  ffai/gated_delta_replay_d192_128_4_4            │ N=96K bf16                               │  — →  — │     new
  ffai/gated_delta_replay_d192_128_4_4            │ N=96K f16                                │  — →  — │     new
  ffai/gated_delta_replay_d192_128_4_4            │ N=96K f32                                │  — →  — │     new
  ffai/gated_delta_step                           │ N=128K bf16                              │  — →  — │     new
  ffai/gated_delta_step                           │ N=128K f16                               │  — →  — │     new
  ffai/gated_delta_step                           │ N=128K f32                               │  — →  — │     new
  ffai/gated_delta_wy_chunk                       │ N=512 bf16                               │  — →  — │     new
  ffai/gated_delta_wy_chunk                       │ N=512 f16                                │  — →  — │     new
  ffai/gated_delta_wy_chunk                       │ N=512 f32                                │  — →  — │     new
  ffai/gated_rms_norm_qgemv_int4_fast             │ N=512K bf16                              │  — →  — │     new
  ffai/gated_rms_norm_qgemv_int4_fast             │ N=512K f16                               │  — →  — │     new
  ffai/gated_rms_norm_qgemv_int4_fast             │ N=512K f32                               │  — →  — │     new
  ffai/gated_rmsnorm/gated_rmsnorm                │ N=16M bf16                               │  — →  — │     new
  ffai/gated_rmsnorm/gated_rmsnorm                │ N=16M f16                                │  — →  — │     new
  ffai/gated_rmsnorm/gated_rmsnorm                │ N=16M f32                                │  — →  — │     new
  ffai/gather/gather                              │ N=32M bf16                               │  — →  — │     new
  ffai/gather/gather                              │ N=32M f16                                │  — →  — │     new
  ffai/gather/gather                              │ N=32M f32                                │  — →  — │     new
  ffai/gemm/gemm                                  │ N=16M bf16                               │  — →  — │     new
  ffai/gemm/gemm                                  │ N=16M f16                                │  — →  — │     new
  ffai/gemm/gemm                                  │ N=16M f32                                │  — →  — │     new
  ffai/kokoro/adain1d                             │ N=2M bf16                                │  — →  — │     new
  ffai/kokoro/adain1d                             │ N=2M f16                                 │  — →  — │     new
  ffai/kokoro/adain1d                             │ N=2M f32                                 │  — →  — │     new
  ffai/kokoro/lstm_cell                           │ N=512K bf16                              │  — →  — │     new
  ffai/kokoro/lstm_cell                           │ N=512K f16                               │  — →  — │     new
  ffai/kokoro/lstm_cell                           │ N=512K f32                               │  — →  — │     new
  ffai/kv_cache/bulk_dequant_fp8_e4m3             │ N=1M bf16                                │  — →  — │     new
  ffai/kv_cache/bulk_dequant_fp8_e4m3             │ N=1M f16                                 │  — →  — │     new
  ffai/kv_cache/bulk_dequant_fp8_e4m3             │ N=1M f32                                 │  — →  — │     new
  ffai/kv_cache/bulk_dequant_fp8_e5m2             │ N=1M bf16                                │  — →  — │     new
  ffai/kv_cache/bulk_dequant_fp8_e5m2             │ N=1M f16                                 │  — →  — │     new
  ffai/kv_cache/bulk_dequant_fp8_e5m2             │ N=1M f32                                 │  — →  — │     new
  ffai/kv_cache/bulk_dequant_int4                 │ N=1M bf16                                │  — →  — │     new
  ffai/kv_cache/bulk_dequant_int4                 │ N=1M f16                                 │  — →  — │     new
  ffai/kv_cache/bulk_dequant_int4                 │ N=1M f32                                 │  — →  — │     new
  ffai/kv_cache/bulk_dequant_int8                 │ N=1M bf16                                │  — →  — │     new
  ffai/kv_cache/bulk_dequant_int8                 │ N=1M f16                                 │  — →  — │     new
  ffai/kv_cache/bulk_dequant_int8                 │ N=1M f32                                 │  — →  — │     new
  ffai/kv_cache/quantize_fp8_e4m3                 │ N=256K bf16                              │  — →  — │     new
  ffai/kv_cache/quantize_fp8_e4m3                 │ N=256K f16                               │  — →  — │     new
  ffai/kv_cache/quantize_fp8_e4m3                 │ N=256K f32                               │  — →  — │     new
  ffai/kv_cache/quantize_fp8_e5m2                 │ N=256K bf16                              │  — →  — │     new
  ffai/kv_cache/quantize_fp8_e5m2                 │ N=256K f16                               │  — →  — │     new
  ffai/kv_cache/quantize_fp8_e5m2                 │ N=256K f32                               │  — →  — │     new
  ffai/kv_cache/quantize_int4                     │ N=128K bf16                              │  — →  — │     new
  ffai/kv_cache/quantize_int4                     │ N=128K f16                               │  — →  — │     new
  ffai/kv_cache/quantize_int4                     │ N=128K f32                               │  — →  — │     new
  ffai/kv_cache/quantize_int8                     │ N=256K bf16                              │  — →  — │     new
  ffai/kv_cache/quantize_int8                     │ N=256K f16                               │  — →  — │     new
  ffai/kv_cache/quantize_int8                     │ N=256K f32                               │  — →  — │     new
  ffai/kv_cache/update                            │ N=1M bf16                                │  — →  — │     new
  ffai/kv_cache/update                            │ N=1M f16                                 │  — →  — │     new
  ffai/kv_cache/update                            │ N=1M f32                                 │  — →  — │     new
  ffai/kv_cache/update_many                       │ N=4M bf16                                │  — →  — │     new
  ffai/kv_cache/update_many                       │ N=4M f16                                 │  — →  — │     new
  ffai/kv_cache/update_many                       │ N=4M f32                                 │  — →  — │     new
  ffai/logits_processors/min_p_mask               │ N=297K bf16                              │  — →  — │     new
  ffai/logits_processors/min_p_mask               │ N=297K f16                               │  — →  — │     new
  ffai/logits_processors/min_p_mask               │ N=297K f32                               │  — →  — │     new
  ffai/logits_processors/repetition_penalty       │ N=152064 bf16                            │  — →  — │     new
  ffai/logits_processors/repetition_penalty       │ N=152064 f16                             │  — →  — │     new
  ffai/logits_processors/repetition_penalty       │ N=152064 f32                             │  — →  — │     new
  ffai/logits_processors/temperature              │ N=152064 bf16                            │  — →  — │     new
  ffai/logits_processors/temperature              │ N=152064 f16                             │  — →  — │     new
  ffai/logits_processors/temperature              │ N=152064 f32                             │  — →  — │     new
  ffai/logits_processors/top_p_mask               │ N=297K bf16                              │  — →  — │     new
  ffai/logits_processors/top_p_mask               │ N=297K f16                               │  — →  — │     new
  ffai/logits_processors/top_p_mask               │ N=297K f32                               │  — →  — │     new
  ffai/logits_processors/topk_mask                │ N=152064 bf16                            │  — →  — │     new
  ffai/logits_processors/topk_mask                │ N=152064 f16                             │  — →  — │     new
  ffai/logits_processors/topk_mask                │ N=152064 f32                             │  — →  — │     new
  ffai/mel_spectrogram/filterbank                 │ N=1200000 bf16                           │  — →  — │     new
  ffai/mel_spectrogram/filterbank                 │ N=1200000 f16                            │  — →  — │     new
  ffai/mel_spectrogram/filterbank                 │ N=1200000 f32                            │  — →  — │     new
  ffai/mel_spectrogram/mel_spectrogram            │ N=480240 bf16                            │  — →  — │     new
  ffai/mel_spectrogram/mel_spectrogram            │ N=480240 f16                             │  — →  — │     new
  ffai/mel_spectrogram/mel_spectrogram            │ N=480240 f32                             │  — →  — │     new
  ffai/mel_spectrogram/stft_window                │ N=1200000 bf16                           │  — →  — │     new
  ffai/mel_spectrogram/stft_window                │ N=1200000 f16                            │  — →  — │     new
  ffai/mel_spectrogram/stft_window                │ N=1200000 f32                            │  — →  — │     new
  ffai/moe/gather_qmm_b3                          │ T64 m256 k2048 E128 bf16                 │  — →  — │     new
  ffai/moe/gather_qmm_b3                          │ T64 m256 k2048 E128 f16                  │  — →  — │     new
  ffai/moe/gather_qmm_b3                          │ T64 m256 k2048 E128 f32                  │  — →  — │     new
  ffai/moe/gather_qmm_b5                          │ T64 m256 k2048 E128 bf16                 │  — →  — │     new
  ffai/moe/gather_qmm_b5                          │ T64 m256 k2048 E128 f16                  │  — →  — │     new
  ffai/moe/gather_qmm_b5                          │ T64 m256 k2048 E128 f32                  │  — →  — │     new
  ffai/moe/gather_qmm_b6                          │ T64 m256 k2048 E128 bf16                 │  — →  — │     new
  ffai/moe/gather_qmm_b6                          │ T64 m256 k2048 E128 f16                  │  — →  — │     new
  ffai/moe/gather_qmm_b6                          │ T64 m256 k2048 E128 f32                  │  — →  — │     new
  ffai/moe/gather_qmm_b8                          │ T64 m256 k2048 E128 bf16                 │  — →  — │     new
  ffai/moe/gather_qmm_b8                          │ T64 m256 k2048 E128 f16                  │  — →  — │     new
  ffai/moe/gather_qmm_b8                          │ T64 m256 k2048 E128 f32                  │  — →  — │     new
  ffai/moe/gather_qmm_int4                        │ T64 m256 k2048 E128 bf16                 │  — →  — │     new
  ffai/moe/gather_qmm_int4                        │ T64 m256 k2048 E128 f16                  │  — →  — │     new
  ffai/moe/gather_qmm_int4                        │ T64 m256 k2048 E128 f32                  │  — →  — │     new
  ffai/moe/gather_qmm_int4_m16                    │ T64 m256 k2048 E128 bf16                 │  — →  — │     new
  ffai/moe/gather_qmm_int4_m16                    │ T64 m256 k2048 E128 f16                  │  — →  — │     new
  ffai/moe/gather_qmm_int4_m16                    │ T64 m256 k2048 E128 f32                  │  — →  — │     new
  ffai/moe/gather_qmm_int4_m32                    │ T64 m256 k2048 E128 bf16                 │  — →  — │     new
  ffai/moe/gather_qmm_int4_m32                    │ T64 m256 k2048 E128 f16                  │  — →  — │     new
  ffai/moe/gather_qmm_int4_m32                    │ T64 m256 k2048 E128 f32                  │  — →  — │     new
  ffai/moe/gather_qmm_int4_m8                     │ T64 m256 k2048 E128 bf16                 │  — →  — │     new
  ffai/moe/gather_qmm_int4_m8                     │ T64 m256 k2048 E128 f16                  │  — →  — │     new
  ffai/moe/gather_qmm_int4_m8                     │ T64 m256 k2048 E128 f32                  │  — →  — │     new
  ffai/moe/gather_qmm_mma_b3                      │ M1024 N256 K2048 E128 bf16               │  — →  — │     new
  ffai/moe/gather_qmm_mma_b3                      │ M1024 N256 K2048 E128 f16                │  — →  — │     new
  ffai/moe/gather_qmm_mma_b3                      │ M1024 N256 K2048 E128 f32                │  — →  — │     new
  ffai/moe/gather_qmm_mma_b5                      │ M1024 N256 K2048 E128 bf16               │  — →  — │     new
  ffai/moe/gather_qmm_mma_b5                      │ M1024 N256 K2048 E128 f16                │  — →  — │     new
  ffai/moe/gather_qmm_mma_b5                      │ M1024 N256 K2048 E128 f32                │  — →  — │     new
  ffai/moe/gather_qmm_mma_b6                      │ M1024 N256 K2048 E128 bf16               │  — →  — │     new
  ffai/moe/gather_qmm_mma_b6                      │ M1024 N256 K2048 E128 f16                │  — →  — │     new
  ffai/moe/gather_qmm_mma_b6                      │ M1024 N256 K2048 E128 f32                │  — →  — │     new
  ffai/moe/gather_qmm_mma_b8                      │ M1024 N256 K2048 E128 bf16               │  — →  — │     new
  ffai/moe/gather_qmm_mma_b8                      │ M1024 N256 K2048 E128 f16                │  — →  — │     new
  ffai/moe/gather_qmm_mma_b8                      │ M1024 N256 K2048 E128 f32                │  — →  — │     new
  ffai/moe/gather_qmm_mma_int4                    │ M1024 N256 K2048 E128 bf16               │  — →  — │     new
  ffai/moe/gather_qmm_mma_int4                    │ M1024 N256 K2048 E128 f16                │  — →  — │     new
  ffai/moe/gather_qmm_mma_int4                    │ M1024 N256 K2048 E128 f32                │  — →  — │     new
  ffai/moe/gather_qmm_mma_int4_bm16               │ M1024 N256 K2048 E128 bf16               │  — →  — │     new
  ffai/moe/gather_qmm_mma_int4_bm16               │ M1024 N256 K2048 E128 f16                │  — →  — │     new
  ffai/moe/gather_qmm_mma_int4_bm16               │ M1024 N256 K2048 E128 f32                │  — →  — │     new
  ffai/moe/gather_qmm_mma_int8                    │ M1024 N256 K2048 E128 bf16               │  — →  — │     new
  ffai/moe/gather_qmm_mma_int8                    │ M1024 N256 K2048 E128 f16                │  — →  — │     new
  ffai/moe/gather_qmm_mma_int8                    │ M1024 N256 K2048 E128 f32                │  — →  — │     new
  ffai/moe/permute                                │ rows4096 h2048 bf16                      │  — →  — │     new
  ffai/moe/permute                                │ rows4096 h2048 f16                       │  — →  — │     new
  ffai/moe/permute                                │ rows4096 h2048 f32                       │  — →  — │     new
  ffai/moe/router_topk                            │ BT4096 E128 k8 bf16                      │  — →  — │     new
  ffai/moe/router_topk                            │ BT4096 E128 k8 f16                       │  — →  — │     new
  ffai/moe/router_topk                            │ BT4096 E128 k8 f32                       │  — →  — │     new
  ffai/moe/unpermute                              │ BT512 h2048 k8 bf16                      │  — →  — │     new
  ffai/moe/unpermute                              │ BT512 h2048 k8 f16                       │  — →  — │     new
  ffai/moe/unpermute                              │ BT512 h2048 k8 f32                       │  — →  — │     new
  ffai/moe_down_swiglu_accum/int4_chain8          │ in768 out2048 E128 k8 bf16               │  — →  — │     new
  ffai/moe_down_swiglu_accum/int4_chain8          │ in768 out2048 E128 k8 f16                │  — →  — │     new
  ffai/moe_down_swiglu_accum/int4_chain8          │ in768 out2048 E128 k8 f32                │  — →  — │     new
  ffai/moe_mpp/gather_qmm_mma_int4_bm16           │ M1024 N256 K2048 E128 bf16               │  — →  — │     new
  ffai/moe_mpp/gather_qmm_mma_int4_bm16           │ M1024 N256 K2048 E128 f16                │  — →  — │     new
  ffai/moe_mpp/gather_qmm_mma_int4_bm16           │ M1024 N256 K2048 E128 f32                │  — →  — │     new
  ffai/moe_mpp/gather_qmm_mma_int4_bm64           │ M1024 N256 K2048 E128 bf16               │  — →  — │     new
  ffai/moe_mpp/gather_qmm_mma_int4_bm64           │ M1024 N256 K2048 E128 f16                │  — →  — │     new
  ffai/moe_mpp/gather_qmm_mma_int4_bm64           │ M1024 N256 K2048 E128 f32                │  — →  — │     new
  ffai/moe_mpp/gather_qmm_mma_int4_bm8            │ M1024 N256 K2048 E128 bf16               │  — →  — │     new
  ffai/moe_mpp/gather_qmm_mma_int4_bm8            │ M1024 N256 K2048 E128 f16                │  — →  — │     new
  ffai/moe_mpp/gather_qmm_mma_int4_bm8            │ M1024 N256 K2048 E128 f32                │  — →  — │     new
  ffai/moe_mpp/gather_qmm_mma_int8_bm16           │ M1024 N256 K2048 E128 bf16               │  — →  — │     new
  ffai/moe_mpp/gather_qmm_mma_int8_bm16           │ M1024 N256 K2048 E128 f16                │  — →  — │     new
  ffai/moe_mpp/gather_qmm_mma_int8_bm16           │ M1024 N256 K2048 E128 f32                │  — →  — │     new
  ffai/moe_mpp/gather_qmm_mma_int8_bm64           │ M1024 N256 K2048 E128 bf16               │  — →  — │     new
  ffai/moe_mpp/gather_qmm_mma_int8_bm64           │ M1024 N256 K2048 E128 f16                │  — →  — │     new
  ffai/moe_mpp/gather_qmm_mma_int8_bm64           │ M1024 N256 K2048 E128 f32                │  — →  — │     new
  ffai/moe_mpp/gather_qmm_mma_int8_bm8            │ M1024 N256 K2048 E128 bf16               │  — →  — │     new
  ffai/moe_mpp/gather_qmm_mma_int8_bm8            │ M1024 N256 K2048 E128 f16                │  — →  — │     new
  ffai/moe_mpp/gather_qmm_mma_int8_bm8            │ M1024 N256 K2048 E128 f32                │  — →  — │     new
  ffai/mt_ssm_step                                │ N=32K bf16                               │  — →  — │     new
  ffai/mt_ssm_step                                │ N=32K f16                                │  — →  — │     new
  ffai/mt_ssm_step                                │ N=32K f32                                │  — →  — │     new
  ffai/patch_embed/mma                            │ N=1M bf16                                │  — →  — │     new
  ffai/patch_embed/mma                            │ N=1M f16                                 │  — →  — │     new
  ffai/patch_embed/mma                            │ N=1M f32                                 │  — →  — │     new
  ffai/patch_embed/patch_embed                    │ N=588K bf16                              │  — →  — │     new
  ffai/patch_embed/patch_embed                    │ N=588K f16                               │  — →  — │     new
  ffai/patch_embed/patch_embed                    │ N=588K f32                               │  — →  — │     new
  ffai/rms_norm_qgemv                             │ N=2M bf16                                │  — →  — │     new
  ffai/rms_norm_qgemv                             │ N=2M f16                                 │  — →  — │     new
  ffai/rms_norm_qgemv                             │ N=2M f32                                 │  — →  — │     new
  ffai/rms_norm_qgemv_fast                        │ N=2M bf16                                │  — →  — │     new
  ffai/rms_norm_qgemv_fast                        │ N=2M f16                                 │  — →  — │     new
  ffai/rms_norm_qgemv_fast                        │ N=2M f32                                 │  — →  — │     new
  ffai/rms_norm_qgemv_int8_fast                   │ N=4M bf16                                │  — →  — │     new
  ffai/rms_norm_qgemv_int8_fast                   │ N=4M f16                                 │  — →  — │     new
  ffai/rms_norm_qgemv_int8_fast                   │ N=4M f32                                 │  — →  — │     new
  ffai/rms_norm_residual/rms_norm_residual        │ N=16M bf16                               │  — →  — │     new
  ffai/rms_norm_residual/rms_norm_residual        │ N=16M f16                                │  — →  — │     new
  ffai/rms_norm_residual/rms_norm_residual        │ N=16M f32                                │  — →  — │     new
  ffai/rms_norm_rope/rms_norm_rope                │ N=512K bf16                              │  — →  — │     new
  ffai/rms_norm_rope/rms_norm_rope                │ N=512K f16                               │  — →  — │     new
  ffai/rms_norm_rope/rms_norm_rope                │ N=512K f32                               │  — →  — │     new
  ffai/rope/rope_2d                               │ tok1024 h16 d64 bf16                     │  — →  — │     new
  ffai/rope/rope_2d                               │ tok1024 h16 d64 f16                      │  — →  — │     new
  ffai/rope/rope_2d                               │ tok1024 h16 d64 f32                      │  — →  — │     new
  ffai/rope/rope_llama                            │ N=4K bf16                                │  — →  — │     new
  ffai/rope/rope_llama                            │ N=4K f16                                 │  — →  — │     new
  ffai/rope/rope_llama                            │ N=4K f32                                 │  — →  — │     new
  ffai/rope/rope_llama_many                       │ T512 h32 d128 bf16                       │  — →  — │     new
  ffai/rope/rope_llama_many                       │ T512 h32 d128 f16                        │  — →  — │     new
  ffai/rope/rope_llama_many                       │ T512 h32 d128 f32                        │  — →  — │     new
  ffai/rope/rope_yarn                             │ N=4K bf16                                │  — →  — │     new
  ffai/rope/rope_yarn                             │ N=4K f16                                 │  — →  — │     new
  ffai/rope/rope_yarn                             │ N=4K f32                                 │  — →  — │     new
  ffai/sampling/softmax_categorical_sample        │ N=152064 bf16                            │  — →  — │     new
  ffai/sampling/softmax_categorical_sample        │ N=152064 f16                             │  — →  — │     new
  ffai/sampling/softmax_categorical_sample        │ N=152064 f32                             │  — →  — │     new
  ffai/sdpa_bidirectional_d128_relpos             │ N=512K bf16                              │  — →  — │     new
  ffai/sdpa_bidirectional_d128_relpos             │ N=512K f16                               │  — →  — │     new
  ffai/sdpa_bidirectional_d128_relpos             │ N=512K f32                               │  — →  — │     new
  ffai/sdpa_bidirectional_d32                     │ N=1026K bf16                             │  — →  — │     new
  ffai/sdpa_bidirectional_d32                     │ N=1026K f16                              │  — →  — │     new
  ffai/sdpa_bidirectional_d32                     │ N=1026K f32                              │  — →  — │     new
  ffai/sdpa_bidirectional_d64                     │ N=2052K bf16                             │  — →  — │     new
  ffai/sdpa_bidirectional_d64                     │ N=2052K f16                              │  — →  — │     new
  ffai/sdpa_bidirectional_d64                     │ N=2052K f32                              │  — →  — │     new
  ffai/sdpa_bidirectional_d72                     │ N=2363904 bf16                           │  — →  — │     new
  ffai/sdpa_bidirectional_d72                     │ N=2363904 f16                            │  — →  — │     new
  ffai/sdpa_bidirectional_d72                     │ N=2363904 f32                            │  — →  — │     new
  ffai/sdpa_bidirectional_d80                     │ N=2565K bf16                             │  — →  — │     new
  ffai/sdpa_bidirectional_d80                     │ N=2565K f16                              │  — →  — │     new
  ffai/sdpa_bidirectional_d80                     │ N=2565K f32                              │  — →  — │     new
  ffai/sdpa_bidirectional_d96                     │ N=3078K bf16                             │  — →  — │     new
  ffai/sdpa_bidirectional_d96                     │ N=3078K f16                              │  — →  — │     new
  ffai/sdpa_bidirectional_d96                     │ N=3078K f32                              │  — →  — │     new
  ffai/sdpa_decode                                │ N=4M bf16                                │  — →  — │     new
  ffai/sdpa_decode                                │ N=4M f16                                 │  — →  — │     new
  ffai/sdpa_decode                                │ N=4M f32                                 │  — →  — │     new
  ffai/sdpa_decode_2pass_pass1                    │ N=4M bf16                                │  — →  — │     new
  ffai/sdpa_decode_2pass_pass1                    │ N=4M f16                                 │  — →  — │     new
  ffai/sdpa_decode_2pass_pass1                    │ N=4M f32                                 │  — →  — │     new
  ffai/sdpa_decode_2pass_pass1_d256               │ N=8M bf16                                │  — →  — │     new
  ffai/sdpa_decode_2pass_pass1_d256               │ N=8M f16                                 │  — →  — │     new
  ffai/sdpa_decode_2pass_pass1_d256               │ N=8M f32                                 │  — →  — │     new
  ffai/sdpa_decode_2pass_pass1_d64                │ N=2M bf16                                │  — →  — │     new
  ffai/sdpa_decode_2pass_pass1_d64                │ N=2M f16                                 │  — →  — │     new
  ffai/sdpa_decode_2pass_pass1_d64                │ N=2M f32                                 │  — →  — │     new
  ffai/sdpa_decode_2pass_pass1_d96                │ N=3M bf16                                │  — →  — │     new
  ffai/sdpa_decode_2pass_pass1_d96                │ N=3M f16                                 │  — →  — │     new
  ffai/sdpa_decode_2pass_pass1_d96                │ N=3M f32                                 │  — →  — │     new
  ffai/sdpa_decode_2pass_pass2                    │ N=128K bf16                              │  — →  — │     new
  ffai/sdpa_decode_2pass_pass2                    │ N=128K f16                               │  — →  — │     new
  ffai/sdpa_decode_2pass_pass2                    │ N=128K f32                               │  — →  — │     new
  ffai/sdpa_decode_2pass_pass2_d256               │ N=256K bf16                              │  — →  — │     new
  ffai/sdpa_decode_2pass_pass2_d256               │ N=256K f16                               │  — →  — │     new
  ffai/sdpa_decode_2pass_pass2_d256               │ N=256K f32                               │  — →  — │     new
  ffai/sdpa_decode_2pass_pass2_d64                │ N=64K bf16                               │  — →  — │     new
  ffai/sdpa_decode_2pass_pass2_d64                │ N=64K f16                                │  — →  — │     new
  ffai/sdpa_decode_2pass_pass2_d64                │ N=64K f32                                │  — →  — │     new
  ffai/sdpa_decode_2pass_pass2_d96                │ N=96K bf16                               │  — →  — │     new
  ffai/sdpa_decode_2pass_pass2_d96                │ N=96K f16                                │  — →  — │     new
  ffai/sdpa_decode_2pass_pass2_d96                │ N=96K f32                                │  — →  — │     new
  ffai/sdpa_decode_batched_q2                     │ N=4M bf16                                │  — →  — │     new
  ffai/sdpa_decode_batched_q2                     │ N=4M f16                                 │  — →  — │     new
  ffai/sdpa_decode_batched_q2                     │ N=4M f32                                 │  — →  — │     new
  ffai/sdpa_decode_batched_q4                     │ N=4M bf16                                │  — →  — │     new
  ffai/sdpa_decode_batched_q4                     │ N=4M f16                                 │  — →  — │     new
  ffai/sdpa_decode_batched_q4                     │ N=4M f32                                 │  — →  — │     new
  ffai/sdpa_decode_batched_q8                     │ N=4M bf16                                │  — →  — │     new
  ffai/sdpa_decode_batched_q8                     │ N=4M f16                                 │  — →  — │     new
  ffai/sdpa_decode_batched_q8                     │ N=4M f32                                 │  — →  — │     new
  ffai/sdpa_decode_d256                           │ N=8M bf16                                │  — →  — │     new
  ffai/sdpa_decode_d256                           │ N=8M f16                                 │  — →  — │     new
  ffai/sdpa_decode_d256                           │ N=8M f32                                 │  — →  — │     new
  ffai/sdpa_decode_d512                           │ N=16M bf16                               │  — →  — │     new
  ffai/sdpa_decode_d512                           │ N=16M f16                                │  — →  — │     new
  ffai/sdpa_decode_d512                           │ N=16M f32                                │  — →  — │     new
  ffai/sdpa_decode_d64                            │ N=2M bf16                                │  — →  — │     new
  ffai/sdpa_decode_d64                            │ N=2M f16                                 │  — →  — │     new
  ffai/sdpa_decode_d64                            │ N=2M f32                                 │  — →  — │     new
  ffai/sdpa_decode_d96                            │ N=3M bf16                                │  — →  — │     new
  ffai/sdpa_decode_d96                            │ N=3M f16                                 │  — →  — │     new
  ffai/sdpa_decode_d96                            │ N=3M f32                                 │  — →  — │     new
  ffai/sdpa_multi                                 │ N=4104K bf16                             │  — →  — │     new
  ffai/sdpa_multi                                 │ N=4104K f16                              │  — →  — │     new
  ffai/sdpa_multi                                 │ N=4104K f32                              │  — →  — │     new
  ffai/sdpa_multi_d256                            │ N=8208K bf16                             │  — →  — │     new
  ffai/sdpa_multi_d256                            │ N=8208K f16                              │  — →  — │     new
  ffai/sdpa_multi_d256                            │ N=8208K f32                              │  — →  — │     new
  ffai/sdpa_multi_tree_mask                       │ N=4104K bf16                             │  — →  — │     new
  ffai/sdpa_multi_tree_mask                       │ N=4104K f16                              │  — →  — │     new
  ffai/sdpa_multi_tree_mask                       │ N=4104K f32                              │  — →  — │     new
  ffai/ssm/conv1d_causal_step_silu_cast_many      │ N=1M bf16                                │  — →  — │     new
  ffai/ssm/conv1d_causal_step_silu_cast_many      │ N=1M f16                                 │  — →  — │     new
  ffai/ssm/conv1d_causal_step_silu_cast_many      │ N=1M f32                                 │  — →  — │     new
  ffai/ssm_record                                 │ N=32K bf16                               │  — →  — │     new
  ffai/ssm_record                                 │ N=32K f16                                │  — →  — │     new
  ffai/ssm_record                                 │ N=32K f32                                │  — →  — │     new
  ffai/ssm_record_d128_128_32                     │ N=4M bf16                                │  — →  — │     new
  ffai/ssm_record_d128_128_32                     │ N=4M f16                                 │  — →  — │     new
  ffai/ssm_record_d128_128_32                     │ N=4M f32                                 │  — →  — │     new
  ffai/ssm_replay                                 │ N=32K bf16                               │  — →  — │     new
  ffai/ssm_replay                                 │ N=32K f16                                │  — →  — │     new
  ffai/ssm_replay                                 │ N=32K f32                                │  — →  — │     new
  ffai/ssm_replay_d128_128_32                     │ N=4M bf16                                │  — →  — │     new
  ffai/ssm_replay_d128_128_32                     │ N=4M f16                                 │  — →  — │     new
  ffai/ssm_replay_d128_128_32                     │ N=4M f32                                 │  — →  — │     new
  ffai/ssm_step                                   │ N=32K bf16                               │  — →  — │     new
  ffai/ssm_step                                   │ N=32K f16                                │  — →  — │     new
  ffai/ssm_step                                   │ N=32K f32                                │  — →  — │     new
  ffai/ssm_step_a2d                               │ N=32K bf16                               │  — →  — │     new
  ffai/ssm_step_a2d                               │ N=32K f16                                │  — →  — │     new
  ffai/ssm_step_a2d                               │ N=32K f32                                │  — →  — │     new
  ffai/vocoder/istft                              │ N=22K bf16                               │  — →  — │     new
  ffai/vocoder/istft                              │ N=22K f16                                │  — →  — │     new
  ffai/vocoder/istft                              │ N=22K f32                                │  — →  — │     new
  fp_quantized                                    │ N=1M f32 gs32                            │ 114% →  — │ removed
  gemv                                            │ B=4096 N=4096 bf16                       │  — →  — │ removed
  gemv                                            │ B=4096 N=4096 f16                        │  — →  — │ removed
  gemv                                            │ B=4096 N=4096 f32                        │  — →  — │ removed
  gemv_masked                                     │ B=4096 N=4096 bf16                       │  — →  — │ removed
  gemv_masked                                     │ B=4096 N=4096 f16                        │  — →  — │ removed
  gemv_masked                                     │ B=4096 N=4096 f32                        │  — →  — │ removed
  layer_norm                                      │ B=1024 N=4096 bf16                       │  94% →  — │ removed
  layer_norm                                      │ B=1024 N=4096 f16                        │  84% →  — │ removed
  layer_norm                                      │ B=1024 N=4096 f32                        │ 108% →  — │ removed
  logsumexp                                       │ B=1024 N=4096 bf16                       │ 117% →  — │ removed
  logsumexp                                       │ B=1024 N=4096 f16                        │ 108% →  — │ removed
  logsumexp                                       │ B=1024 N=4096 f32                        │ 101% →  — │ removed
  mlx/affine/dequantize_int2                      │ N=4M bf16                                │  — →  — │     new
  mlx/affine/dequantize_int2                      │ N=4M f16                                 │  — →  — │     new
  mlx/affine/dequantize_int2                      │ N=4M f32                                 │  — →  — │     new
  mlx/affine/dequantize_int3                      │ N=2M bf16                                │  — →  — │     new
  mlx/affine/dequantize_int3                      │ N=2M f16                                 │  — →  — │     new
  mlx/affine/dequantize_int3                      │ N=2M f32                                 │  — →  — │     new
  mlx/affine/dequantize_int4                      │ N=4M bf16                                │  — →  — │     new
  mlx/affine/dequantize_int4                      │ N=4M f16                                 │  — →  — │     new
  mlx/affine/dequantize_int4                      │ N=4M f32                                 │  — →  — │     new
  mlx/affine/dequantize_int5                      │ N=2M bf16                                │  — →  — │     new
  mlx/affine/dequantize_int5                      │ N=2M f16                                 │  — →  — │     new
  mlx/affine/dequantize_int5                      │ N=2M f32                                 │  — →  — │     new
  mlx/affine/dequantize_int6                      │ N=2M bf16                                │  — →  — │     new
  mlx/affine/dequantize_int6                      │ N=2M f16                                 │  — →  — │     new
  mlx/affine/dequantize_int6                      │ N=2M f32                                 │  — →  — │     new
  mlx/affine/dequantize_int8                      │ N=4M bf16                                │  — →  — │     new
  mlx/affine/dequantize_int8                      │ N=4M f16                                 │  — →  — │     new
  mlx/affine/dequantize_int8                      │ N=4M f32                                 │  — →  — │     new
  mlx/affine/quantize_int2                        │ N=4M bf16                                │  — →  — │     new
  mlx/affine/quantize_int2                        │ N=4M f16                                 │  — →  — │     new
  mlx/affine/quantize_int2                        │ N=4M f32                                 │  — →  — │     new
  mlx/affine/quantize_int3                        │ N=2M bf16                                │  — →  — │     new
  mlx/affine/quantize_int3                        │ N=2M f16                                 │  — →  — │     new
  mlx/affine/quantize_int3                        │ N=2M f32                                 │  — →  — │     new
  mlx/affine/quantize_int4                        │ N=4M bf16                                │  — →  — │     new
  mlx/affine/quantize_int4                        │ N=4M f16                                 │  — →  — │     new
  mlx/affine/quantize_int4                        │ N=4M f32                                 │  — →  — │     new
  mlx/affine/quantize_int5                        │ N=2M bf16                                │  — →  — │     new
  mlx/affine/quantize_int5                        │ N=2M f16                                 │  — →  — │     new
  mlx/affine/quantize_int5                        │ N=2M f32                                 │  — →  — │     new
  mlx/affine/quantize_int6                        │ N=2M bf16                                │  — →  — │     new
  mlx/affine/quantize_int6                        │ N=2M f16                                 │  — →  — │     new
  mlx/affine/quantize_int6                        │ N=2M f32                                 │  — →  — │     new
  mlx/affine/quantize_int8                        │ N=4M bf16                                │  — →  — │     new
  mlx/affine/quantize_int8                        │ N=4M f16                                 │  — →  — │     new
  mlx/affine/quantize_int8                        │ N=4M f32                                 │  — →  — │     new
  mlx/all_reduce/max                              │ N=16M bf16                               │  — → 107% │     new
  mlx/all_reduce/max                              │ N=16M f16                                │  — → 104% │     new
  mlx/all_reduce/max                              │ N=16M f32                                │  — → 109% │     new
  mlx/all_reduce/min                              │ N=16M bf16                               │  — → 110% │     new
  mlx/all_reduce/min                              │ N=16M f16                                │  — → 104% │     new
  mlx/all_reduce/min                              │ N=16M f32                                │  — → 115% │     new
  mlx/all_reduce/prod                             │ N=16M bf16                               │  — → 115% │     new
  mlx/all_reduce/prod                             │ N=16M f16                                │  — → 101% │     new
  mlx/all_reduce/prod                             │ N=16M f32                                │  — →  89% │     new
  mlx/all_reduce/sum                              │ N=16M bf16                               │  — →  — │     new
  mlx/all_reduce/sum                              │ N=16M f16                                │  — →  — │     new
  mlx/all_reduce/sum                              │ N=16M f32                                │  — → 105% │     new
  mlx/arange                                      │ N=64M bf16                               │  — →  97% │     new
  mlx/arange                                      │ N=64M f16                                │  — →  92% │     new
  mlx/arange                                      │ N=64M f32                                │  — → 101% │     new
  mlx/arg_reduce/argmax                           │ N=256K bf16                              │  — →  77% │     new
  mlx/arg_reduce/argmax                           │ N=256K f16                               │  — → 114% │     new
  mlx/arg_reduce/argmax                           │ N=256K f32                               │  — →  79% │     new
  mlx/arg_reduce/argmin                           │ N=256K bf16                              │  — →  84% │     new
  mlx/arg_reduce/argmin                           │ N=256K f16                               │  — →  77% │     new
  mlx/arg_reduce/argmin                           │ N=256K f32                               │  — →  67% │     new
  mlx/binary/add                                  │ N=64M bf16                               │  — → 111% │     new
  mlx/binary/add                                  │ N=64M f16                                │  — → 118% │     new
  mlx/binary/add                                  │ N=64M f32                                │  — → 105% │     new
  mlx/binary/atan2                                │ N=64M bf16                               │  — → 119% │     new
  mlx/binary/atan2                                │ N=64M f16                                │  — → 116% │     new
  mlx/binary/atan2                                │ N=64M f32                                │  — → 104% │     new
  mlx/binary/div                                  │ N=64M bf16                               │  — → 110% │     new
  mlx/binary/div                                  │ N=64M f16                                │  — → 109% │     new
  mlx/binary/div                                  │ N=64M f32                                │  — → 105% │     new
  mlx/binary/logaddexp                            │ N=64M bf16                               │  — → 116% │     new
  mlx/binary/logaddexp                            │ N=64M f16                                │  — → 109% │     new
  mlx/binary/logaddexp                            │ N=64M f32                                │  — →  95% │     new
  mlx/binary/maximum                              │ N=64M bf16                               │  — → 108% │     new
  mlx/binary/maximum                              │ N=64M f16                                │  — → 111% │     new
  mlx/binary/maximum                              │ N=64M f32                                │  — → 113% │     new
  mlx/binary/minimum                              │ N=64M bf16                               │  — → 111% │     new
  mlx/binary/minimum                              │ N=64M f16                                │  — → 109% │     new
  mlx/binary/minimum                              │ N=64M f32                                │  — → 104% │     new
  mlx/binary/mul                                  │ N=64M bf16                               │  — → 110% │     new
  mlx/binary/mul                                  │ N=64M f16                                │  — → 111% │     new
  mlx/binary/mul                                  │ N=64M f32                                │  — → 105% │     new
  mlx/binary/pow                                  │ N=64M bf16                               │  — → 110% │     new
  mlx/binary/pow                                  │ N=64M f16                                │  — → 109% │     new
  mlx/binary/pow                                  │ N=64M f32                                │  — →  96% │     new
  mlx/binary/remainder                            │ N=64M bf16                               │  — → 109% │     new
  mlx/binary/remainder                            │ N=64M f16                                │  — → 113% │     new
  mlx/binary/remainder                            │ N=64M f32                                │  — → 103% │     new
  mlx/binary/sub                                  │ N=64M bf16                               │  — → 110% │     new
  mlx/binary/sub                                  │ N=64M f16                                │  — → 108% │     new
  mlx/binary/sub                                  │ N=64M f32                                │  — → 103% │     new
  mlx/binary_two/add_mul                          │ N=64M bf16                               │  — →  — │     new
  mlx/binary_two/add_mul                          │ N=64M f16                                │  — →  — │     new
  mlx/binary_two/add_mul                          │ N=64M f32                                │  — →  — │     new
  mlx/col_reduce/max                              │ N=16M bf16                               │  — →  — │     new
  mlx/col_reduce/max                              │ N=16M f16                                │  — →  — │     new
  mlx/col_reduce/max                              │ N=16M f32                                │  — →  — │     new
  mlx/col_reduce/min                              │ N=16M bf16                               │  — →  — │     new
  mlx/col_reduce/min                              │ N=16M f16                                │  — →  — │     new
  mlx/col_reduce/min                              │ N=16M f32                                │  — →  — │     new
  mlx/col_reduce/prod                             │ N=16M bf16                               │  — →  — │     new
  mlx/col_reduce/prod                             │ N=16M f16                                │  — →  — │     new
  mlx/col_reduce/prod                             │ N=16M f32                                │  — →  — │     new
  mlx/col_reduce/sum                              │ N=16M bf16                               │  — →  — │     new
  mlx/col_reduce/sum                              │ N=16M f16                                │  — →  — │     new
  mlx/col_reduce/sum                              │ N=16M f32                                │  — →  — │     new
  mlx/copy                                        │ N=64M bf16                               │  — → 106% │     new
  mlx/copy                                        │ N=64M f16                                │  — → 105% │     new
  mlx/copy                                        │ N=64M f32                                │  — →  99% │     new
  mlx/fft/bluestein_chirp_filter                  │ M=1024 f32                               │  — →  — │     new
  mlx/fft/bluestein_cmul                          │ M=1024 rows=64 bf16                      │  — →  — │     new
  mlx/fft/bluestein_cmul                          │ M=1024 rows=64 f16                       │  — →  — │     new
  mlx/fft/bluestein_cmul                          │ M=1024 rows=64 f32                       │  — →  — │     new
  mlx/fft/bluestein_postprocess                   │ N=480 M=1024 bf16                        │  — →  — │     new
  mlx/fft/bluestein_postprocess                   │ N=480 M=1024 f16                         │  — →  — │     new
  mlx/fft/bluestein_postprocess                   │ N=480 M=1024 f32                         │  — →  — │     new
  mlx/fft/bluestein_preprocess                    │ N=480 M=1024 bf16                        │  — →  — │     new
  mlx/fft/bluestein_preprocess                    │ N=480 M=1024 f16                         │  — →  — │     new
  mlx/fft/bluestein_preprocess                    │ N=480 M=1024 f32                         │  — →  — │     new
  mlx/fft/n1024                                   │ N=8M bf16                                │  — →  — │     new
  mlx/fft/n1024                                   │ N=8M f16                                 │  — →  — │     new
  mlx/fft/n1024                                   │ N=8M f32                                 │  — →  — │     new
  mlx/fft/n128                                    │ N=1M bf16                                │  — →  — │     new
  mlx/fft/n128                                    │ N=1M f16                                 │  — →  — │     new
  mlx/fft/n128                                    │ N=1M f32                                 │  — →  — │     new
  mlx/fft/n256                                    │ N=2M bf16                                │  — →  — │     new
  mlx/fft/n256                                    │ N=2M f16                                 │  — →  — │     new
  mlx/fft/n256                                    │ N=2M f32                                 │  — →  — │     new
  mlx/fft/n32                                     │ N=256K bf16                              │  — →  — │     new
  mlx/fft/n32                                     │ N=256K f16                               │  — →  — │     new
  mlx/fft/n32                                     │ N=256K f32                               │  — →  — │     new
  mlx/fft/n512                                    │ N=4M bf16                                │  — →  — │     new
  mlx/fft/n512                                    │ N=4M f16                                 │  — →  — │     new
  mlx/fft/n512                                    │ N=4M f32                                 │  — →  — │     new
  mlx/fft/n64                                     │ N=512K bf16                              │  — →  — │     new
  mlx/fft/n64                                     │ N=512K f16                               │  — →  — │     new
  mlx/fft/n64                                     │ N=512K f32                               │  — →  — │     new
  mlx/fp_quantized/fp4                            │ N=64M f32                                │  — → 117% │     new
  mlx/fp_quantized/fp4_qmm_mma                    │ m32 n4096 k4096 bf16                     │  — →  — │     new
  mlx/fp_quantized/fp4_qmm_mma                    │ m32 n4096 k4096 f16                      │  — →  — │     new
  mlx/fp_quantized/fp4_qmm_mma                    │ m32 n4096 k4096 f32                      │  — →  — │     new
  mlx/fp_quantized/fp8_e4m3                       │ N=64M f32                                │  — →  — │     new
  mlx/fp_quantized/fp8_e4m3_qmm_mma               │ m32 n4096 k4096 bf16                     │  — →  — │     new
  mlx/fp_quantized/fp8_e4m3_qmm_mma               │ m32 n4096 k4096 f16                      │  — →  — │     new
  mlx/fp_quantized/fp8_e4m3_qmm_mma               │ m32 n4096 k4096 f32                      │  — →  — │     new
  mlx/fp_quantized/fp8_e5m2                       │ N=64M f32                                │  — →  — │     new
  mlx/fp_quantized/fp_qmm_nax                     │ m32 n4096 k4096 bf16                     │  — →  — │     new
  mlx/fp_quantized/fp_qmm_nax                     │ m32 n4096 k4096 f16                      │  — →  — │     new
  mlx/fp_quantized/fp_qmm_nax                     │ m32 n4096 k4096 f32                      │  — →  — │     new
  mlx/fused_gate/clipped_swiglu                   │ N=64M bf16                               │  — →  — │     new
  mlx/fused_gate/clipped_swiglu                   │ N=64M f16                                │  — →  — │     new
  mlx/fused_gate/clipped_swiglu                   │ N=64M f32                                │  — →  — │     new
  mlx/fused_gate/gelu_approx                      │ N=64M bf16                               │  — →  — │     new
  mlx/fused_gate/gelu_approx                      │ N=64M f16                                │  — →  — │     new
  mlx/fused_gate/gelu_approx                      │ N=64M f32                                │  — →  — │     new
  mlx/gemv                                        │ N=16M bf16                               │  — → 103% │     new
  mlx/gemv                                        │ N=16M f16                                │  — →  97% │     new
  mlx/gemv                                        │ N=16M f32                                │  — → 109% │     new
  mlx/gemv_masked                                 │ N=16M bf16                               │  — →  — │     new
  mlx/gemv_masked                                 │ N=16M f16                                │  — →  — │     new
  mlx/gemv_masked                                 │ N=16M f32                                │  — →  — │     new
  mlx/hadamard/n1024                              │ N=8M bf16                                │  — →  — │     new
  mlx/hadamard/n1024                              │ N=8M f16                                 │  — →  — │     new
  mlx/hadamard/n1024                              │ N=8M f32                                 │  — →  — │     new
  mlx/hadamard/n128                               │ N=1M bf16                                │  — →  — │     new
  mlx/hadamard/n128                               │ N=1M f16                                 │  — →  — │     new
  mlx/hadamard/n128                               │ N=1M f32                                 │  — →  — │     new
  mlx/hadamard/n256                               │ N=2M bf16                                │  — →  — │     new
  mlx/hadamard/n256                               │ N=2M f16                                 │  — →  — │     new
  mlx/hadamard/n256                               │ N=2M f32                                 │  — →  — │     new
  mlx/hadamard/n512                               │ N=4M bf16                                │  — →  — │     new
  mlx/hadamard/n512                               │ N=4M f16                                 │  — →  — │     new
  mlx/hadamard/n512                               │ N=4M f32                                 │  — →  — │     new
  mlx/hadamard/n64                                │ N=512K bf16                              │  — →  — │     new
  mlx/hadamard/n64                                │ N=512K f16                               │  — →  — │     new
  mlx/hadamard/n64                                │ N=512K f32                               │  — →  — │     new
  mlx/hadamard_m/m12                              │ N=192K bf16                              │  — →  — │     new
  mlx/hadamard_m/m12                              │ N=192K f16                               │  — →  — │     new
  mlx/hadamard_m/m12                              │ N=192K f32                               │  — →  — │     new
  mlx/hadamard_m/m20                              │ N=320K bf16                              │  — →  — │     new
  mlx/hadamard_m/m20                              │ N=320K f16                               │  — →  — │     new
  mlx/hadamard_m/m20                              │ N=320K f32                               │  — →  — │     new
  mlx/hadamard_m/m28                              │ N=448K bf16                              │  — →  — │     new
  mlx/hadamard_m/m28                              │ N=448K f16                               │  — →  — │     new
  mlx/hadamard_m/m28                              │ N=448K f32                               │  — →  — │     new
  mlx/indexing/gather_axis                        │ N=16M bf16                               │  — →  — │     new
  mlx/indexing/gather_axis                        │ N=16M f16                                │  — →  — │     new
  mlx/indexing/gather_axis                        │ N=16M f32                                │  — →  — │     new
  mlx/indexing/gather_front                       │ N=2M bf16                                │  — →  — │     new
  mlx/indexing/gather_front                       │ N=2M f16                                 │  — →  — │     new
  mlx/indexing/gather_front                       │ N=2M f32                                 │  — →  — │     new
  mlx/indexing/masked_scatter                     │ N=8M bf16                                │  — →  — │     new
  mlx/indexing/masked_scatter                     │ N=8M f16                                 │  — →  — │     new
  mlx/indexing/masked_scatter                     │ N=8M f32                                 │  — →  — │     new
  mlx/indexing/scatter                            │ N=2M bf16                                │  — →  — │     new
  mlx/indexing/scatter                            │ N=2M f16                                 │  — →  — │     new
  mlx/indexing/scatter                            │ N=2M f32                                 │  — →  — │     new
  mlx/indexing/scatter_axis                       │ N=16M bf16                               │  — →  — │     new
  mlx/indexing/scatter_axis                       │ N=16M f16                                │  — →  — │     new
  mlx/indexing/scatter_axis                       │ N=16M f32                                │  — →  — │     new
  mlx/layer_norm                                  │ N=16M bf16                               │  — → 143% │     new
  mlx/layer_norm                                  │ N=16M f16                                │  — → 113% │     new
  mlx/layer_norm                                  │ N=16M f32                                │  — → 104% │     new
  mlx/logsumexp                                   │ N=4M bf16                                │  — → 258% │     new
  mlx/logsumexp                                   │ N=4M f16                                 │  — → 233% │     new
  mlx/logsumexp                                   │ N=4M f32                                 │  — → 184% │     new
  mlx/quantized/qmm                               │ m4 n4096 k4096 bf16                      │  — → 189% │     new
  mlx/quantized/qmm                               │ m4 n4096 k4096 f16                       │  — → 138% │     new
  mlx/quantized/qmm                               │ m4 n4096 k4096 f32                       │  — → 134% │     new
  mlx/quantized/qmm_b3                            │ m4 n4096 k4096 bf16                      │  — →  — │     new
  mlx/quantized/qmm_b3                            │ m4 n4096 k4096 f16                       │  — →  — │     new
  mlx/quantized/qmm_b3                            │ m4 n4096 k4096 f32                       │  — →  — │     new
  mlx/quantized/qmm_b4                            │ m4 n4096 k4096 bf16                      │  — →  — │     new
  mlx/quantized/qmm_b4                            │ m4 n4096 k4096 f16                       │  — →  — │     new
  mlx/quantized/qmm_b4                            │ m4 n4096 k4096 f32                       │  — →  — │     new
  mlx/quantized/qmm_b5                            │ m4 n4096 k4096 bf16                      │  — →  — │     new
  mlx/quantized/qmm_b5                            │ m4 n4096 k4096 f16                       │  — →  — │     new
  mlx/quantized/qmm_b5                            │ m4 n4096 k4096 f32                       │  — →  — │     new
  mlx/quantized/qmm_b6                            │ m4 n4096 k4096 bf16                      │  — →  — │     new
  mlx/quantized/qmm_b6                            │ m4 n4096 k4096 f16                       │  — →  — │     new
  mlx/quantized/qmm_b6                            │ m4 n4096 k4096 f32                       │  — →  — │     new
  mlx/quantized/qmm_b8                            │ m4 n4096 k4096 bf16                      │  — →  — │     new
  mlx/quantized/qmm_b8                            │ m4 n4096 k4096 f16                       │  — →  — │     new
  mlx/quantized/qmm_b8                            │ m4 n4096 k4096 f32                       │  — →  — │     new
  mlx/quantized/qmm_bm2                           │ m8 n4096 k4096 bf16                      │  — → 183% │     new
  mlx/quantized/qmm_bm2                           │ m8 n4096 k4096 f16                       │  — → 127% │     new
  mlx/quantized/qmm_bm2                           │ m8 n4096 k4096 f32                       │  — → 129% │     new
  mlx/quantized/qmm_bm2_int8_fast                 │ m8 n4096 k4096 bf16                      │  — →  96% │     new
  mlx/quantized/qmm_bm2_int8_fast                 │ m8 n4096 k4096 f16                       │  — →  75% │     new
  mlx/quantized/qmm_bm2_int8_fast                 │ m8 n4096 k4096 f32                       │  — →  74% │     new
  mlx/quantized/qmm_bm4                           │ m8 n4096 k4096 bf16                      │  — → 179% │     new
  mlx/quantized/qmm_bm4                           │ m8 n4096 k4096 f16                       │  — → 148% │     new
  mlx/quantized/qmm_bm4                           │ m8 n4096 k4096 f32                       │  — → 140% │     new
  mlx/quantized/qmm_bm4_int8_fast                 │ m8 n4096 k4096 bf16                      │  — → 142% │     new
  mlx/quantized/qmm_bm4_int8_fast                 │ m8 n4096 k4096 f16                       │  — → 104% │     new
  mlx/quantized/qmm_bm4_int8_fast                 │ m8 n4096 k4096 f32                       │  — → 130% │     new
  mlx/quantized/qmm_int8_fast                     │ m4 n4096 k4096 bf16                      │  — → 101% │     new
  mlx/quantized/qmm_int8_fast                     │ m4 n4096 k4096 f16                       │  — →  71% │     new
  mlx/quantized/qmm_int8_fast                     │ m4 n4096 k4096 f32                       │  — →  80% │     new
  mlx/quantized/qmm_mma                           │ m32 n4096 k4096 bf16                     │  — → 130% │     new
  mlx/quantized/qmm_mma                           │ m32 n4096 k4096 f16                      │  — →  96% │     new
  mlx/quantized/qmm_mma                           │ m32 n4096 k4096 f32                      │  — → 115% │     new
  mlx/quantized/qmm_mma_b3                        │ m32 n4096 k4096 bf16                     │  — →  — │     new
  mlx/quantized/qmm_mma_b3                        │ m32 n4096 k4096 f16                      │  — →  — │     new
  mlx/quantized/qmm_mma_b3                        │ m32 n4096 k4096 f32                      │  — →  — │     new
  mlx/quantized/qmm_mma_b5                        │ m32 n4096 k4096 bf16                     │  — →  — │     new
  mlx/quantized/qmm_mma_b5                        │ m32 n4096 k4096 f16                      │  — →  — │     new
  mlx/quantized/qmm_mma_b5                        │ m32 n4096 k4096 f32                      │  — →  — │     new
  mlx/quantized/qmm_mma_b6                        │ m32 n4096 k4096 bf16                     │  — →  — │     new
  mlx/quantized/qmm_mma_b6                        │ m32 n4096 k4096 f16                      │  — →  — │     new
  mlx/quantized/qmm_mma_b6                        │ m32 n4096 k4096 f32                      │  — →  — │     new
  mlx/quantized/qmm_mma_int2                      │ m32 n4096 k4096 bf16                     │  — → 112% │     new
  mlx/quantized/qmm_mma_int2                      │ m32 n4096 k4096 f16                      │  — → 103% │     new
  mlx/quantized/qmm_mma_int2                      │ m32 n4096 k4096 f32                      │  — →  97% │     new
  mlx/quantized/qmm_mma_int8                      │ m32 n4096 k4096 bf16                     │  — → 113% │     new
  mlx/quantized/qmm_mma_int8                      │ m32 n4096 k4096 f16                      │  — → 103% │     new
  mlx/quantized/qmm_mma_int8                      │ m32 n4096 k4096 f32                      │  — → 117% │     new
  mlx/quantized/qmm_mma_m16                       │ m16 n4096 k4096 bf16                     │  — → 166% │     new
  mlx/quantized/qmm_mma_m16                       │ m16 n4096 k4096 f16                      │  — → 126% │     new
  mlx/quantized/qmm_mma_m16                       │ m16 n4096 k4096 f32                      │  — → 151% │     new
  mlx/quantized/qmm_mma_m16_int8                  │ m16 n4096 k4096 bf16                     │  — → 133% │     new
  mlx/quantized/qmm_mma_m16_int8                  │ m16 n4096 k4096 f16                      │  — → 113% │     new
  mlx/quantized/qmm_mma_m16_int8                  │ m16 n4096 k4096 f32                      │  — → 145% │     new
  mlx/quantized/qmm_mma_mpp                       │ m32 n4096 k4096 bf16                     │  — →  — │     new
  mlx/quantized/qmm_mma_mpp                       │ m32 n4096 k4096 f16                      │  — →  — │     new
  mlx/quantized/qmm_mma_mpp                       │ m32 n4096 k4096 f32                      │  — →  — │     new
  mlx/quantized/qmm_mma_mpp_int8                  │ m32 n4096 k4096 bf16                     │  — →  — │     new
  mlx/quantized/qmm_mma_mpp_int8                  │ m32 n4096 k4096 f16                      │  — →  — │     new
  mlx/quantized/qmm_mma_mpp_int8                  │ m32 n4096 k4096 f32                      │  — →  — │     new
  mlx/quantized/qmm_nax                           │ m32 n4096 k4096 bf16                     │  — →  — │     new
  mlx/quantized/qmm_nax                           │ m32 n4096 k4096 f16                      │  — →  — │     new
  mlx/quantized/qmm_nax                           │ m32 n4096 k4096 f32                      │  — →  — │     new
  mlx/quantized/qmm_nax_int8                      │ m32 n4096 k4096 bf16                     │  — →  — │     new
  mlx/quantized/qmm_nax_int8                      │ m32 n4096 k4096 f16                      │  — →  — │     new
  mlx/quantized/qmm_nax_int8                      │ m32 n4096 k4096 f32                      │  — →  — │     new
  mlx/quantized/qmv                               │ m1 n4096 k4096 bf16                      │  — →  93% │     new
  mlx/quantized/qmv                               │ m1 n4096 k4096 f16                       │  — → 130% │     new
  mlx/quantized/qmv                               │ m1 n4096 k4096 f32                       │  — → 112% │     new
  mlx/quantized/qmv_b3                            │ m1 n4096 k4096 bf16                      │  — →  — │     new
  mlx/quantized/qmv_b3                            │ m1 n4096 k4096 f16                       │  — →  — │     new
  mlx/quantized/qmv_b3                            │ m1 n4096 k4096 f32                       │  — →  — │     new
  mlx/quantized/qmv_b4                            │ m1 n4096 k4096 bf16                      │  — →  — │     new
  mlx/quantized/qmv_b4                            │ m1 n4096 k4096 f16                       │  — →  — │     new
  mlx/quantized/qmv_b4                            │ m1 n4096 k4096 f32                       │  — →  — │     new
  mlx/quantized/qmv_b5                            │ m1 n4096 k4096 bf16                      │  — →  — │     new
  mlx/quantized/qmv_b5                            │ m1 n4096 k4096 f16                       │  — →  — │     new
  mlx/quantized/qmv_b5                            │ m1 n4096 k4096 f32                       │  — →  — │     new
  mlx/quantized/qmv_b6                            │ m1 n4096 k4096 bf16                      │  — →  — │     new
  mlx/quantized/qmv_b6                            │ m1 n4096 k4096 f16                       │  — →  — │     new
  mlx/quantized/qmv_b6                            │ m1 n4096 k4096 f32                       │  — →  — │     new
  mlx/quantized/qmv_b8                            │ m1 n4096 k4096 bf16                      │  — →  — │     new
  mlx/quantized/qmv_b8                            │ m1 n4096 k4096 f16                       │  — →  — │     new
  mlx/quantized/qmv_b8                            │ m1 n4096 k4096 f32                       │  — →  — │     new
  mlx/quantized/qmv_int8_fast                     │ m1 n4096 k4096 bf16                      │  — → 105% │     new
  mlx/quantized/qmv_int8_fast                     │ m1 n4096 k4096 f16                       │  — → 112% │     new
  mlx/quantized/qmv_int8_fast                     │ m1 n4096 k4096 f32                       │  — →  91% │     new
  mlx/quantized/qvm_b3                            │ m1 n4096 k4096 bf16                      │  — →  — │     new
  mlx/quantized/qvm_b3                            │ m1 n4096 k4096 f16                       │  — →  — │     new
  mlx/quantized/qvm_b3                            │ m1 n4096 k4096 f32                       │  — →  — │     new
  mlx/quantized/qvm_b4                            │ m1 n4096 k4096 bf16                      │  — →  — │     new
  mlx/quantized/qvm_b4                            │ m1 n4096 k4096 f16                       │  — →  — │     new
  mlx/quantized/qvm_b4                            │ m1 n4096 k4096 f32                       │  — →  — │     new
  mlx/quantized/qvm_b5                            │ m1 n4096 k4096 bf16                      │  — →  — │     new
  mlx/quantized/qvm_b5                            │ m1 n4096 k4096 f16                       │  — →  — │     new
  mlx/quantized/qvm_b5                            │ m1 n4096 k4096 f32                       │  — →  — │     new
  mlx/quantized/qvm_b6                            │ m1 n4096 k4096 bf16                      │  — →  — │     new
  mlx/quantized/qvm_b6                            │ m1 n4096 k4096 f16                       │  — →  — │     new
  mlx/quantized/qvm_b6                            │ m1 n4096 k4096 f32                       │  — →  — │     new
  mlx/quantized/qvm_b8                            │ m1 n4096 k4096 bf16                      │  — →  — │     new
  mlx/quantized/qvm_b8                            │ m1 n4096 k4096 f16                       │  — →  — │     new
  mlx/quantized/qvm_b8                            │ m1 n4096 k4096 f32                       │  — →  — │     new
  mlx/quantized/qvm_int4_fast                     │ n4096 k4096 bf16                         │  — →  — │     new
  mlx/quantized/qvm_int4_fast                     │ n4096 k4096 f16                          │  — →  — │     new
  mlx/quantized/qvm_int4_fast                     │ n4096 k4096 f32                          │  — →  — │     new
  mlx/random/random_hash                          │ N=64M f32                                │  — →  — │     new
  mlx/rms_norm                                    │ N=16M bf16                               │  — → 102% │     new
  mlx/rms_norm                                    │ N=16M f16                                │  — → 108% │     new
  mlx/rms_norm                                    │ N=16M f32                                │  — → 100% │     new
  mlx/rms_norm/gated_mixer_norm                   │ N=2M bf16                                │  — →  — │     new
  mlx/rms_norm/gated_mixer_norm                   │ N=2M f16                                 │  — →  — │     new
  mlx/rms_norm/gated_mixer_norm                   │ N=2M f32                                 │  — →  — │     new
  mlx/rms_norm/rms_norm_small                     │ N=64K bf16                               │  — → 153% │     new
  mlx/rms_norm/rms_norm_small                     │ N=64K f16                                │  — → 203% │     new
  mlx/rms_norm/rms_norm_small                     │ N=64K f32                                │  — → 148% │     new
  mlx/rms_norm/rms_norm_wide                      │ N=21M bf16                               │  — →  — │     new
  mlx/rms_norm/rms_norm_wide                      │ N=21M f16                                │  — →  — │     new
  mlx/rms_norm/rms_norm_wide                      │ N=21M f32                                │  — →  — │     new
  mlx/rope                                        │ N=2M bf16                                │  — → 101% │     new
  mlx/rope                                        │ N=2M f16                                 │  — →  90% │     new
  mlx/rope                                        │ N=2M f32                                 │  — → 114% │     new
  mlx/row_reduce/max                              │ N=16M bf16                               │  — → 182% │     new
  mlx/row_reduce/max                              │ N=16M f16                                │  — → 181% │     new
  mlx/row_reduce/max                              │ N=16M f32                                │  — → 146% │     new
  mlx/row_reduce/min                              │ N=16M bf16                               │  — → 190% │     new
  mlx/row_reduce/min                              │ N=16M f16                                │  — → 171% │     new
  mlx/row_reduce/min                              │ N=16M f32                                │  — → 154% │     new
  mlx/row_reduce/prod                             │ N=16M bf16                               │  — → 205% │     new
  mlx/row_reduce/prod                             │ N=16M f16                                │  — → 168% │     new
  mlx/row_reduce/prod                             │ N=16M f32                                │  — → 143% │     new
  mlx/row_reduce/sum                              │ N=16M bf16                               │  — → 189% │     new
  mlx/row_reduce/sum                              │ N=16M f16                                │  — → 137% │     new
  mlx/row_reduce/sum                              │ N=16M f32                                │  — → 135% │     new
  mlx/scan/max                                    │ N=4M bf16                                │  — →  — │     new
  mlx/scan/max                                    │ N=4M f16                                 │  — →  — │     new
  mlx/scan/max                                    │ N=4M f32                                 │  — →  — │     new
  mlx/scan/max_exclusive                          │ N=4M bf16                                │  — →  — │     new
  mlx/scan/max_exclusive                          │ N=4M f16                                 │  — →  — │     new
  mlx/scan/max_exclusive                          │ N=4M f32                                 │  — →  — │     new
  mlx/scan/min                                    │ N=4M bf16                                │  — →  — │     new
  mlx/scan/min                                    │ N=4M f16                                 │  — →  — │     new
  mlx/scan/min                                    │ N=4M f32                                 │  — →  — │     new
  mlx/scan/min_exclusive                          │ N=4M bf16                                │  — →  — │     new
  mlx/scan/min_exclusive                          │ N=4M f16                                 │  — →  — │     new
  mlx/scan/min_exclusive                          │ N=4M f32                                 │  — →  — │     new
  mlx/scan/prod                                   │ N=4M bf16                                │  — →  — │     new
  mlx/scan/prod                                   │ N=4M f16                                 │  — →  — │     new
  mlx/scan/prod                                   │ N=4M f32                                 │  — →  — │     new
  mlx/scan/prod_exclusive                         │ N=4M bf16                                │  — →  — │     new
  mlx/scan/prod_exclusive                         │ N=4M f16                                 │  — →  — │     new
  mlx/scan/prod_exclusive                         │ N=4M f32                                 │  — →  — │     new
  mlx/scan/sum                                    │ N=4M bf16                                │  — → 102% │     new
  mlx/scan/sum                                    │ N=4M f16                                 │  — → 102% │     new
  mlx/scan/sum                                    │ N=4M f32                                 │  — →  88% │     new
  mlx/scan/sum_exclusive                          │ N=4M bf16                                │  — →  — │     new
  mlx/scan/sum_exclusive                          │ N=4M f16                                 │  — →  — │     new
  mlx/scan/sum_exclusive                          │ N=4M f32                                 │  — →  — │     new
  mlx/sdpa/sdpa                                   │ h128 kv4096 nh32 bf16                    │  — →  — │     new
  mlx/sdpa/sdpa                                   │ h128 kv4096 nh32 f16                     │  — →  — │     new
  mlx/sdpa/sdpa                                   │ h128 kv4096 nh32 f32                     │  — →  — │     new
  mlx/sdpa/sdpa_prefill                           │ N=2M bf16                                │  — →  32% │     new
  mlx/sdpa/sdpa_prefill                           │ N=2M f16                                 │  — →  30% │     new
  mlx/sdpa/sdpa_prefill                           │ N=2M f32                                 │  — →  39% │     new
  mlx/sdpa/sdpa_prefill_mma                       │ N=2M bf16                                │  — →  60% │     new
  mlx/sdpa/sdpa_prefill_mma                       │ N=2M f16                                 │  — →  93% │     new
  mlx/sdpa/sdpa_prefill_mma                       │ N=2M f32                                 │  — →  73% │     new
  mlx/sdpa/sdpa_prefill_mma_bf16                  │ N=2M bf16                                │  — →  85% │     new
  mlx/sdpa/sdpa_prefill_mma_bf16                  │ N=2M f16                                 │  — →  88% │     new
  mlx/sdpa/sdpa_prefill_mma_bf16                  │ N=2M f32                                 │  — → 114% │     new
  mlx/sdpa/sdpa_prefill_nax                       │ N=512K bf16                              │  — →  — │     new
  mlx/sdpa/sdpa_prefill_nax                       │ N=512K f16                               │  — →  — │     new
  mlx/sdpa/sdpa_prefill_nax                       │ N=512K f32                               │  — →  — │     new
  mlx/sdpa/vector_d128                            │ h128 kv4096 nq32 bf16                    │  — →  — │     new
  mlx/sdpa/vector_d128                            │ h128 kv4096 nq32 f16                     │  — →  — │     new
  mlx/sdpa/vector_d128                            │ h128 kv4096 nq32 f32                     │  — →  — │     new
  mlx/sdpa/vector_d192                            │ h192 kv4096 nq32 bf16                    │  — →  — │     new
  mlx/sdpa/vector_d192                            │ h192 kv4096 nq32 f16                     │  — →  — │     new
  mlx/sdpa/vector_d192                            │ h192 kv4096 nq32 f32                     │  — →  — │     new
  mlx/sdpa/vector_d256                            │ h256 kv4096 nq32 bf16                    │  — →  — │     new
  mlx/sdpa/vector_d256                            │ h256 kv4096 nq32 f16                     │  — →  — │     new
  mlx/sdpa/vector_d256                            │ h256 kv4096 nq32 f32                     │  — →  — │     new
  mlx/sdpa/vector_d64                             │ h64 kv4096 nq32 bf16                     │  — →  — │     new
  mlx/sdpa/vector_d64                             │ h64 kv4096 nq32 f16                      │  — →  — │     new
  mlx/sdpa/vector_d64                             │ h64 kv4096 nq32 f32                      │  — →  — │     new
  mlx/sdpa/vector_d96                             │ h96 kv4096 nq32 bf16                     │  — →  — │     new
  mlx/sdpa/vector_d96                             │ h96 kv4096 nq32 f16                      │  — →  — │     new
  mlx/sdpa/vector_d96                             │ h96 kv4096 nq32 f32                      │  — →  — │     new
  mlx/seg_reduce/max                              │ N=16M bf16                               │  — →  — │     new
  mlx/seg_reduce/max                              │ N=16M f16                                │  — →  — │     new
  mlx/seg_reduce/max                              │ N=16M f32                                │  — →  — │     new
  mlx/seg_reduce/min                              │ N=16M bf16                               │  — →  — │     new
  mlx/seg_reduce/min                              │ N=16M f16                                │  — →  — │     new
  mlx/seg_reduce/min                              │ N=16M f32                                │  — →  — │     new
  mlx/seg_reduce/prod                             │ N=16M bf16                               │  — →  — │     new
  mlx/seg_reduce/prod                             │ N=16M f16                                │  — →  — │     new
  mlx/seg_reduce/prod                             │ N=16M f32                                │  — →  — │     new
  mlx/seg_reduce/sum                              │ N=16M bf16                               │  — →  — │     new
  mlx/seg_reduce/sum                              │ N=16M f16                                │  — →  — │     new
  mlx/seg_reduce/sum                              │ N=16M f32                                │  — →  — │     new
  mlx/select                                      │ N=64M bf16                               │  — →  99% │     new
  mlx/select                                      │ N=64M f16                                │  — → 103% │     new
  mlx/select                                      │ N=64M f32                                │  — →  96% │     new
  mlx/sgload/smoke                                │ N=64 f16                                 │  — →  — │     new
  mlx/sgload/smoke                                │ N=64 f32                                 │  — →  — │     new
  mlx/softmax                                     │ N=4M bf16                                │  — → 287% │     new
  mlx/softmax                                     │ N=4M f16                                 │  — → 208% │     new
  mlx/softmax                                     │ N=4M f32                                 │  — → 152% │     new
  mlx/sort                                        │ N=16M bf16                               │  — →  77% │     new
  mlx/sort                                        │ N=16M f16                                │  — →  84% │     new
  mlx/sort                                        │ N=16M f32                                │  — →  78% │     new
  mlx/sort/merge                                  │ N=16M bf16                               │  — →  — │     new
  mlx/sort/merge                                  │ N=16M f16                                │  — →  — │     new
  mlx/sort/merge                                  │ N=16M f32                                │  — →  — │     new
  mlx/sort/segmented                              │ N=16M bf16                               │  — →  — │     new
  mlx/sort/segmented                              │ N=16M f16                                │  — →  — │     new
  mlx/sort/segmented                              │ N=16M f32                                │  — →  — │     new
  mlx/steel_gemm/fused_nax                        │ m4096 n4096 k4096 bf16                   │  — →  — │     new
  mlx/steel_gemm/fused_nax                        │ m4096 n4096 k4096 f16                    │  — →  — │     new
  mlx/steel_gemm/fused_nax                        │ m4096 n4096 k4096 f32                    │  — →  — │     new
  mlx/steel_gemm/gather_nax                       │ m4096 n4096 k4096 bf16                   │  — →  — │     new
  mlx/steel_gemm/gather_nax                       │ m4096 n4096 k4096 f16                    │  — →  — │     new
  mlx/steel_gemm/gather_nax                       │ m4096 n4096 k4096 f32                    │  — →  — │     new
  mlx/steel_gemm/splitk_accum_nax                 │ m4096 n4096 split4 bf16                  │  — →  — │     new
  mlx/steel_gemm/splitk_accum_nax                 │ m4096 n4096 split4 f16                   │  — →  — │     new
  mlx/steel_gemm/splitk_accum_nax                 │ m4096 n4096 split4 f32                   │  — →  — │     new
  mlx/steel_gemm/splitk_nax                       │ m4096 n4096 k4096 split4 bf16            │  — →  — │     new
  mlx/steel_gemm/splitk_nax                       │ m4096 n4096 k4096 split4 f16             │  — →  — │     new
  mlx/steel_gemm/splitk_nax                       │ m4096 n4096 k4096 split4 f32             │  — →  — │     new
  mlx/steel_gemm_fused/bm32_bn32_bk16_wm1_wn2     │ m4096 n4096 k4096 bf16                   │  — →  — │     new
  mlx/steel_gemm_fused/bm32_bn32_bk16_wm1_wn2     │ m4096 n4096 k4096 f16                    │  — →  — │     new
  mlx/steel_gemm_fused/bm32_bn32_bk16_wm1_wn2     │ m4096 n4096 k4096 f32                    │  — →  — │     new
  mlx/steel_gemm_fused/bm32_bn32_bk16_wm2_wn2     │ m4096 n4096 k4096 bf16                   │  — →  — │     new
  mlx/steel_gemm_fused/bm32_bn32_bk16_wm2_wn2     │ m4096 n4096 k4096 f16                    │  — →  — │     new
  mlx/steel_gemm_fused/bm32_bn32_bk16_wm2_wn2     │ m4096 n4096 k4096 f32                    │  — →  — │     new
  mlx/steel_gemm_fused/bm32_bn64_bk16_wm1_wn2     │ m4096 n4096 k4096 bf16                   │  — →  — │     new
  mlx/steel_gemm_fused/bm32_bn64_bk16_wm1_wn2     │ m4096 n4096 k4096 f16                    │  — →  — │     new
  mlx/steel_gemm_fused/bm32_bn64_bk16_wm1_wn2     │ m4096 n4096 k4096 f32                    │  — →  — │     new
  mlx/steel_gemm_fused/bm64_bn32_bk16_wm1_wn2     │ m4096 n4096 k4096 bf16                   │  — →  — │     new
  mlx/steel_gemm_fused/bm64_bn32_bk16_wm1_wn2     │ m4096 n4096 k4096 f16                    │  — →  — │     new
  mlx/steel_gemm_fused/bm64_bn32_bk16_wm1_wn2     │ m4096 n4096 k4096 f32                    │  — →  — │     new
  mlx/steel_gemm_fused/bm64_bn64_bk16_wm1_wn2     │ m4096 n4096 k4096 bf16                   │  — →  — │     new
  mlx/steel_gemm_fused/bm64_bn64_bk16_wm1_wn2     │ m4096 n4096 k4096 f16                    │  — →  — │     new
  mlx/steel_gemm_fused/bm64_bn64_bk16_wm1_wn2     │ m4096 n4096 k4096 f32                    │  — →  — │     new
  mlx/steel_gemm_fused/bm64_bn64_bk16_wm2_wn2     │ m4096 n4096 k4096 bf16                   │  — →  — │     new
  mlx/steel_gemm_fused/bm64_bn64_bk16_wm2_wn2     │ m4096 n4096 k4096 f16                    │  — →  — │     new
  mlx/steel_gemm_fused/bm64_bn64_bk16_wm2_wn2     │ m4096 n4096 k4096 f32                    │  — →  — │     new
  mlx/steel_gemm_fused/bm64_bn64_bk16_wm4_wn2     │ m4096 n4096 k4096 bf16                   │  — →  — │     new
  mlx/steel_gemm_fused/bm64_bn64_bk16_wm4_wn2     │ m4096 n4096 k4096 f16                    │  — →  — │     new
  mlx/steel_gemm_fused/bm64_bn64_bk16_wm4_wn2     │ m4096 n4096 k4096 f32                    │  — →  — │     new
  mlx/steel_gemm_gather/bm32_bn32_bk16_wm2_wn2    │ m4096 n4096 k4096 bf16                   │  — →  — │     new
  mlx/steel_gemm_gather/bm32_bn32_bk16_wm2_wn2    │ m4096 n4096 k4096 f16                    │  — →  — │     new
  mlx/steel_gemm_gather/bm32_bn32_bk16_wm2_wn2    │ m4096 n4096 k4096 f32                    │  — →  — │     new
  mlx/steel_gemm_gather/bm64_bn64_bk16_wm2_wn2    │ m4096 n4096 k4096 bf16                   │  — →  — │     new
  mlx/steel_gemm_gather/bm64_bn64_bk16_wm2_wn2    │ m4096 n4096 k4096 f16                    │  — →  — │     new
  mlx/steel_gemm_gather/bm64_bn64_bk16_wm2_wn2    │ m4096 n4096 k4096 f32                    │  — →  — │     new
  mlx/steel_gemm_masked/bm32_bn32_bk16_wm2_wn2    │ m4096 n4096 k4096 bf16                   │  — →  — │     new
  mlx/steel_gemm_masked/bm32_bn32_bk16_wm2_wn2    │ m4096 n4096 k4096 f16                    │  — →  — │     new
  mlx/steel_gemm_masked/bm32_bn32_bk16_wm2_wn2    │ m4096 n4096 k4096 f32                    │  — →  — │     new
  mlx/steel_gemm_masked/bm64_bn64_bk16_wm2_wn2    │ m4096 n4096 k4096 bf16                   │  — →  — │     new
  mlx/steel_gemm_masked/bm64_bn64_bk16_wm2_wn2    │ m4096 n4096 k4096 f16                    │  — →  — │     new
  mlx/steel_gemm_masked/bm64_bn64_bk16_wm2_wn2    │ m4096 n4096 k4096 f32                    │  — →  — │     new
  mlx/steel_gemm_segmented/bm32_bn32_bk16_wm2_wn2 │ m2048 n2048 k4096 seg4 bf16              │  — →  — │     new
  mlx/steel_gemm_segmented/bm32_bn32_bk16_wm2_wn2 │ m2048 n2048 k4096 seg4 f16               │  — →  — │     new
  mlx/steel_gemm_segmented/bm32_bn32_bk16_wm2_wn2 │ m2048 n2048 k4096 seg4 f32               │  — →  — │     new
  mlx/steel_gemm_segmented/bm64_bn64_bk16_wm2_wn2 │ m2048 n2048 k4096 seg4 bf16              │  — →  — │     new
  mlx/steel_gemm_segmented/bm64_bn64_bk16_wm2_wn2 │ m2048 n2048 k4096 seg4 f16               │  — →  — │     new
  mlx/steel_gemm_segmented/bm64_bn64_bk16_wm2_wn2 │ m2048 n2048 k4096 seg4 f32               │  — →  — │     new
  mlx/steel_gemm_splitk/accum                     │ m4096 n4096 split4 bf16                  │  — →  86% │     new
  mlx/steel_gemm_splitk/accum                     │ m4096 n4096 split4 f16                   │  — →  87% │     new
  mlx/steel_gemm_splitk/accum                     │ m4096 n4096 split4 f32                   │  — → 105% │     new
  mlx/steel_gemm_splitk/accum_axpby               │ m4096 n4096 split4 bf16                  │  — → 111% │     new
  mlx/steel_gemm_splitk/accum_axpby               │ m4096 n4096 split4 f16                   │  — → 120% │     new
  mlx/steel_gemm_splitk/accum_axpby               │ m4096 n4096 split4 f32                   │  — →  95% │     new
  mlx/steel_gemm_splitk/bm32_bn32_bk16_wm2_wn2    │ m4096 n4096 k4096 split4 bf16            │  — →  — │     new
  mlx/steel_gemm_splitk/bm32_bn32_bk16_wm2_wn2    │ m4096 n4096 k4096 split4 f16             │  — →  — │     new
  mlx/steel_gemm_splitk/bm32_bn32_bk16_wm2_wn2    │ m4096 n4096 k4096 split4 f32             │  — →  — │     new
  mlx/steel_gemm_splitk/bm64_bn64_bk16_wm2_wn2    │ m4096 n4096 k4096 split4 bf16            │  — →  — │     new
  mlx/steel_gemm_splitk/bm64_bn64_bk16_wm2_wn2    │ m4096 n4096 k4096 split4 f16             │  — →  — │     new
  mlx/steel_gemm_splitk/bm64_bn64_bk16_wm2_wn2    │ m4096 n4096 k4096 split4 f32             │  — →  — │     new
  mlx/strided_copy/strided_copy                   │ 1024×4096 pad128 bf16                   │  — → 100% │     new
  mlx/strided_copy/strided_copy                   │ 1024×4096 pad128 f16                    │  — →  84% │     new
  mlx/strided_copy/strided_copy                   │ 1024×4096 pad128 f32                    │  — → 113% │     new
  mlx/strided_copy/strided_copy_nd                │ 1024×4096 transpose bf16                │  — →  — │     new
  mlx/strided_copy/strided_copy_nd                │ 1024×4096 transpose f16                 │  — →  — │     new
  mlx/strided_copy/strided_copy_nd                │ 1024×4096 transpose f32                 │  — →  — │     new
  mlx/swiglu                                      │ N=1M bf16                                │  — →  — │     new
  mlx/swiglu                                      │ N=1M f16                                 │  — →  — │     new
  mlx/swiglu                                      │ N=1M f32                                 │  — →  — │     new
  mlx/unary/abs                                   │ N=64M bf16                               │  — → 102% │     new
  mlx/unary/abs                                   │ N=64M f16                                │  — → 106% │     new
  mlx/unary/abs                                   │ N=64M f32                                │  — →  87% │     new
  mlx/unary/acos                                  │ N=64M bf16                               │  — →  99% │     new
  mlx/unary/acos                                  │ N=64M f16                                │  — → 110% │     new
  mlx/unary/acos                                  │ N=64M f32                                │  — →  86% │     new
  mlx/unary/acosh                                 │ N=64M bf16                               │  — → 153% │     new
  mlx/unary/acosh                                 │ N=64M f16                                │  — → 183% │     new
  mlx/unary/acosh                                 │ N=64M f32                                │  — → 107% │     new
  mlx/unary/add_rms_norm                          │ N=16M bf16                               │  — →  — │     new
  mlx/unary/add_rms_norm                          │ N=16M f16                                │  — →  — │     new
  mlx/unary/add_rms_norm                          │ N=16M f32                                │  — →  — │     new
  mlx/unary/asin                                  │ N=64M bf16                               │  — → 112% │     new
  mlx/unary/asin                                  │ N=64M f16                                │  — → 111% │     new
  mlx/unary/asin                                  │ N=64M f32                                │  — → 110% │     new
  mlx/unary/asinh                                 │ N=64M bf16                               │  — → 117% │     new
  mlx/unary/asinh                                 │ N=64M f16                                │  — → 138% │     new
  mlx/unary/asinh                                 │ N=64M f32                                │  — → 108% │     new
  mlx/unary/atan                                  │ N=64M bf16                               │  — → 104% │     new
  mlx/unary/atan                                  │ N=64M f16                                │  — → 101% │     new
  mlx/unary/atan                                  │ N=64M f32                                │  — →  88% │     new
  mlx/unary/atanh                                 │ N=64M bf16                               │  — → 114% │     new
  mlx/unary/atanh                                 │ N=64M f16                                │  — → 107% │     new
  mlx/unary/atanh                                 │ N=64M f32                                │  — →  99% │     new
  mlx/unary/cast_to_f32                           │ N=64M bf16                               │  — →  — │     new
  mlx/unary/cast_to_f32                           │ N=64M f16                                │  — →  — │     new
  mlx/unary/cast_to_f32                           │ N=64M f32                                │  — →  — │     new
  mlx/unary/ceil                                  │ N=64M bf16                               │  — →  97% │     new
  mlx/unary/ceil                                  │ N=64M f16                                │  — →  84% │     new
  mlx/unary/ceil                                  │ N=64M f32                                │  — →  89% │     new
  mlx/unary/cos                                   │ N=64M bf16                               │  — → 100% │     new
  mlx/unary/cos                                   │ N=64M f16                                │  — → 106% │     new
  mlx/unary/cos                                   │ N=64M f32                                │  — →  96% │     new
  mlx/unary/cosh                                  │ N=64M bf16                               │  — → 100% │     new
  mlx/unary/cosh                                  │ N=64M f16                                │  — →  97% │     new
  mlx/unary/cosh                                  │ N=64M f32                                │  — →  85% │     new
  mlx/unary/erf                                   │ N=64M bf16                               │  — →  99% │     new
  mlx/unary/erf                                   │ N=64M f16                                │  — → 112% │     new
  mlx/unary/erf                                   │ N=64M f32                                │  — →  91% │     new
  mlx/unary/erfinv                                │ N=64M bf16                               │  — →  97% │     new
  mlx/unary/erfinv                                │ N=64M f16                                │  — → 102% │     new
  mlx/unary/erfinv                                │ N=64M f32                                │  — → 101% │     new
  mlx/unary/exp                                   │ N=64M bf16                               │  — → 101% │     new
  mlx/unary/exp                                   │ N=64M f16                                │  — → 107% │     new
  mlx/unary/exp                                   │ N=64M f32                                │  — →  99% │     new
  mlx/unary/exp2                                  │ N=64M bf16                               │  — →  — │     new
  mlx/unary/exp2                                  │ N=64M f16                                │  — →  — │     new
  mlx/unary/exp2                                  │ N=64M f32                                │  — →  — │     new
  mlx/unary/expm1                                 │ N=64M bf16                               │  — → 101% │     new
  mlx/unary/expm1                                 │ N=64M f16                                │  — → 116% │     new
  mlx/unary/expm1                                 │ N=64M f32                                │  — → 100% │     new
  mlx/unary/floor                                 │ N=64M bf16                               │  — → 100% │     new
  mlx/unary/floor                                 │ N=64M f16                                │  — → 109% │     new
  mlx/unary/floor                                 │ N=64M f32                                │  — →  87% │     new
  mlx/unary/gelu                                  │ N=64M bf16                               │  — →  — │     new
  mlx/unary/gelu                                  │ N=64M f16                                │  — →  — │     new
  mlx/unary/gelu                                  │ N=64M f32                                │  — →  — │     new
  mlx/unary/log                                   │ N=64M bf16                               │  — → 103% │     new
  mlx/unary/log                                   │ N=64M f16                                │  — → 104% │     new
  mlx/unary/log                                   │ N=64M f32                                │  — → 102% │     new
  mlx/unary/log10                                 │ N=64M bf16                               │  — → 102% │     new
  mlx/unary/log10                                 │ N=64M f16                                │  — → 102% │     new
  mlx/unary/log10                                 │ N=64M f32                                │  — →  91% │     new
  mlx/unary/log1p                                 │ N=64M bf16                               │  — →  94% │     new
  mlx/unary/log1p                                 │ N=64M f16                                │  — →  88% │     new
  mlx/unary/log1p                                 │ N=64M f32                                │  — →  97% │     new
  mlx/unary/log2                                  │ N=64M bf16                               │  — → 101% │     new
  mlx/unary/log2                                  │ N=64M f16                                │  — →  87% │     new
  mlx/unary/log2                                  │ N=64M f32                                │  — → 103% │     new
  mlx/unary/neg                                   │ N=64M bf16                               │  — →  93% │     new
  mlx/unary/neg                                   │ N=64M f16                                │  — → 101% │     new
  mlx/unary/neg                                   │ N=64M f32                                │  — →  85% │     new
  mlx/unary/recip                                 │ N=64M bf16                               │  — →  — │     new
  mlx/unary/recip                                 │ N=64M f16                                │  — →  — │     new
  mlx/unary/recip                                 │ N=64M f32                                │  — →  — │     new
  mlx/unary/relu                                  │ N=64M bf16                               │  — →  — │     new
  mlx/unary/relu                                  │ N=64M f16                                │  — →  — │     new
  mlx/unary/relu                                  │ N=64M f32                                │  — →  — │     new
  mlx/unary/round                                 │ N=64M bf16                               │  — →  94% │     new
  mlx/unary/round                                 │ N=64M f16                                │  — →  93% │     new
  mlx/unary/round                                 │ N=64M f32                                │  — →  87% │     new
  mlx/unary/rsqrt                                 │ N=64M bf16                               │  — → 102% │     new
  mlx/unary/rsqrt                                 │ N=64M f16                                │  — → 121% │     new
  mlx/unary/rsqrt                                 │ N=64M f32                                │  — →  98% │     new
  mlx/unary/scalar_fma                            │ N=64M bf16                               │  — →  — │     new
  mlx/unary/scalar_fma                            │ N=64M f16                                │  — →  — │     new
  mlx/unary/scalar_fma                            │ N=64M f32                                │  — →  — │     new
  mlx/unary/scalar_fma_chain8                     │ N=16M bf16                               │  — →  — │     new
  mlx/unary/scalar_fma_chain8                     │ N=16M f16                                │  — →  — │     new
  mlx/unary/scalar_fma_chain8                     │ N=16M f32                                │  — →  — │     new
  mlx/unary/sigmoid                               │ N=64M bf16                               │  — → 114% │     new
  mlx/unary/sigmoid                               │ N=64M f16                                │  — → 100% │     new
  mlx/unary/sigmoid                               │ N=64M f32                                │  — →  93% │     new
  mlx/unary/sigmoid_mul                           │ N=64M bf16                               │  — →  — │     new
  mlx/unary/sigmoid_mul                           │ N=64M f16                                │  — →  — │     new
  mlx/unary/sigmoid_mul                           │ N=64M f32                                │  — →  — │     new
  mlx/unary/sigmoid_scalar_fma                    │ N=64M bf16                               │  — →  — │     new
  mlx/unary/sigmoid_scalar_fma                    │ N=64M f16                                │  — →  — │     new
  mlx/unary/sigmoid_scalar_fma                    │ N=64M f32                                │  — →  — │     new
  mlx/unary/sigmoid_scalar_fma_residual           │ N=64M bf16                               │  — →  — │     new
  mlx/unary/sigmoid_scalar_fma_residual           │ N=64M f16                                │  — →  — │     new
  mlx/unary/sigmoid_scalar_fma_residual           │ N=64M f32                                │  — →  — │     new
  mlx/unary/sign                                  │ N=64M bf16                               │  — → 102% │     new
  mlx/unary/sign                                  │ N=64M f16                                │  — → 102% │     new
  mlx/unary/sign                                  │ N=64M f32                                │  — →  99% │     new
  mlx/unary/silu                                  │ N=64M bf16                               │  — →  — │     new
  mlx/unary/silu                                  │ N=64M f16                                │  — →  — │     new
  mlx/unary/silu                                  │ N=64M f32                                │  — →  — │     new
  mlx/unary/silu_cast_to_f32                      │ N=64M bf16                               │  — →  — │     new
  mlx/unary/silu_cast_to_f32                      │ N=64M f16                                │  — →  — │     new
  mlx/unary/sin                                   │ N=64M bf16                               │  — → 123% │     new
  mlx/unary/sin                                   │ N=64M f16                                │  — → 102% │     new
  mlx/unary/sin                                   │ N=64M f32                                │  — →  92% │     new
  mlx/unary/sinh                                  │ N=64M bf16                               │  — → 104% │     new
  mlx/unary/sinh                                  │ N=64M f16                                │  — → 104% │     new
  mlx/unary/sinh                                  │ N=64M f32                                │  — → 102% │     new
  mlx/unary/softplus                              │ N=64M bf16                               │  — →  — │     new
  mlx/unary/softplus                              │ N=64M f16                                │  — →  — │     new
  mlx/unary/softplus                              │ N=64M f32                                │  — →  — │     new
  mlx/unary/sqrt                                  │ N=64M bf16                               │  — → 104% │     new
  mlx/unary/sqrt                                  │ N=64M f16                                │  — →  91% │     new
  mlx/unary/sqrt                                  │ N=64M f32                                │  — →  98% │     new
  mlx/unary/square                                │ N=64M bf16                               │  — →  99% │     new
  mlx/unary/square                                │ N=64M f16                                │  — → 107% │     new
  mlx/unary/square                                │ N=64M f32                                │  — →  98% │     new
  mlx/unary/tan                                   │ N=64M bf16                               │  — → 114% │     new
  mlx/unary/tan                                   │ N=64M f16                                │  — → 112% │     new
  mlx/unary/tan                                   │ N=64M f32                                │  — →  89% │     new
  mlx/unary/tanh                                  │ N=64M bf16                               │  — → 120% │     new
  mlx/unary/tanh                                  │ N=64M f16                                │  — → 118% │     new
  mlx/unary/tanh                                  │ N=64M f32                                │  — →  86% │     new
  mlx/unary/trunc                                 │ N=64M bf16                               │  — →  — │     new
  mlx/unary/trunc                                 │ N=64M f16                                │  — →  — │     new
  mlx/unary/trunc                                 │ N=64M f32                                │  — →  — │     new
  quantized                                       │ M=14336 K=5120 f16 gs64 b4               │ 100% →  — │ removed
  quantized                                       │ M=14336 K=5120 f32 gs64 b4               │  92% →  — │ removed
  quantized                                       │ M=16 N=14336 K=5120 f16 gs64 b4          │ 149% →  — │ removed
  quantized                                       │ M=16 N=14336 K=5120 f32 gs64 b4          │ 156% →  — │ removed
  quantized                                       │ M=16 N=27648 K=5120 f16 gs64 b4          │ 135% →  — │ removed
  quantized                                       │ M=16 N=27648 K=5120 f32 gs64 b4          │ 139% →  — │ removed
  quantized                                       │ M=16 N=4096 K=4096 f16 gs64 b4           │ 124% →  — │ removed
  quantized                                       │ M=16 N=4096 K=4096 f32 gs64 b4           │ 136% →  — │ removed
  quantized                                       │ M=16 N=5120 K=14336 f16 gs64 b4          │ 155% →  — │ removed
  quantized                                       │ M=16 N=5120 K=14336 f32 gs64 b4          │ 157% →  — │ removed
  quantized                                       │ M=16 N=5120 K=5120 f16 gs64 b4           │ 107% →  — │ removed
  quantized                                       │ M=16 N=5120 K=5120 f32 gs64 b4           │ 139% →  — │ removed
  quantized                                       │ M=27648 K=5120 f16 gs64 b4               │  99% →  — │ removed
  quantized                                       │ M=27648 K=5120 f32 gs64 b4               │ 106% →  — │ removed
  quantized                                       │ M=32 N=14336 K=5120 f16 gs64 b4          │  98% →  — │ removed
  quantized                                       │ M=32 N=14336 K=5120 f32 gs64 b4          │ 105% →  — │ removed
  quantized                                       │ M=32 N=27648 K=5120 f16 gs64 b4          │ 103% →  — │ removed
  quantized                                       │ M=32 N=27648 K=5120 f32 gs64 b4          │ 104% →  — │ removed
  quantized                                       │ M=32 N=4096 K=4096 f16 gs64 b4           │  89% →  — │ removed
  quantized                                       │ M=32 N=4096 K=4096 f32 gs64 b4           │  87% →  — │ removed
  quantized                                       │ M=32 N=5120 K=14336 f16 gs64 b4          │ 103% →  — │ removed
  quantized                                       │ M=32 N=5120 K=14336 f32 gs64 b4          │ 105% →  — │ removed
  quantized                                       │ M=32 N=5120 K=5120 f16 gs64 b4           │  98% →  — │ removed
  quantized                                       │ M=32 N=5120 K=5120 f32 gs64 b4           │  95% →  — │ removed
  quantized                                       │ M=4 N=14336 K=5120 f16 gs64 b4           │  69% →  — │ removed
  quantized                                       │ M=4 N=14336 K=5120 f32 gs64 b4           │  70% →  — │ removed
  quantized                                       │ M=4 N=27648 K=5120 f16 gs64 b4           │  69% →  — │ removed
  quantized                                       │ M=4 N=27648 K=5120 f32 gs64 b4           │  86% →  — │ removed
  quantized                                       │ M=4 N=4096 K=4096 f16 gs64 b4            │ 114% →  — │ removed
  quantized                                       │ M=4 N=4096 K=4096 f32 gs64 b4            │  96% →  — │ removed
  quantized                                       │ M=4 N=5120 K=14336 f16 gs64 b4           │  81% →  — │ removed
  quantized                                       │ M=4 N=5120 K=14336 f32 gs64 b4           │  83% →  — │ removed
  quantized                                       │ M=4 N=5120 K=5120 f16 gs64 b4            │ 107% →  — │ removed
  quantized                                       │ M=4 N=5120 K=5120 f32 gs64 b4            │  69% →  — │ removed
  quantized                                       │ M=4096 K=4096 f16 gs64 b4                │  79% →  — │ removed
  quantized                                       │ M=4096 K=4096 f32 gs64 b4                │  93% →  — │ removed
  quantized                                       │ M=5120 K=14336 f16 gs64 b4               │ 102% →  — │ removed
  quantized                                       │ M=5120 K=14336 f32 gs64 b4               │ 104% →  — │ removed
  quantized                                       │ M=5120 K=5120 f16 gs64 b4                │  87% →  — │ removed
  quantized                                       │ M=5120 K=5120 f32 gs64 b4                │ 117% →  — │ removed
  quantized                                       │ M=8 N=14336 K=5120 f16 gs64 b4           │ 134% →  — │ removed
  quantized                                       │ M=8 N=14336 K=5120 f32 gs64 b4           │ 139% →  — │ removed
  quantized                                       │ M=8 N=27648 K=5120 f16 gs64 b4           │ 149% →  — │ removed
  quantized                                       │ M=8 N=27648 K=5120 f32 gs64 b4           │ 150% →  — │ removed
  quantized                                       │ M=8 N=4096 K=4096 f16 gs64 b4            │ 118% →  — │ removed
  quantized                                       │ M=8 N=4096 K=4096 f32 gs64 b4            │ 133% →  — │ removed
  quantized                                       │ M=8 N=5120 K=14336 f16 gs64 b4           │ 157% →  — │ removed
  quantized                                       │ M=8 N=5120 K=14336 f32 gs64 b4           │ 139% →  — │ removed
  quantized                                       │ M=8 N=5120 K=5120 f16 gs64 b4            │ 115% →  — │ removed
  quantized                                       │ M=8 N=5120 K=5120 f32 gs64 b4            │ 114% →  — │ removed
  random                                          │ 1M u32                                   │  98% →  — │ removed
  rms_norm                                        │ B=1024 N=4096 bf16                       │  96% →  — │ removed
  rms_norm                                        │ B=1024 N=4096 f16                        │ 108% →  — │ removed
  rms_norm                                        │ B=1024 N=4096 f32                        │  96% →  — │ removed
  rms_norm                                        │ B=1024 N=64 bf16                         │ 243% →  — │ removed
  rms_norm                                        │ B=1024 N=64 f16                          │ 183% →  — │ removed
  rms_norm                                        │ B=1024 N=64 f32                          │ 141% →  — │ removed
  rope                                            │ B1H32L512D128 f16                        │ 109% →  — │ removed
  row_reduce                                      │ B=1024 N=4096 bf16                       │ 153% →  — │ removed
  row_reduce                                      │ B=1024 N=4096 f16                        │ 120% →  — │ removed
  row_reduce                                      │ B=1024 N=4096 f32                        │ 120% →  — │ removed
  scan                                            │ B=1024 N=4096 f32                        │ 100% →  — │ removed
  sdpa                                            │ B=1 H=32 T=512/512 D=128 gqa=4 bf16      │ 140% →  — │ removed
  sdpa                                            │ B=1 H=32 T=512/512 D=128 gqa=4 f16       │ 106% →  — │ removed
  sdpa                                            │ B=1 H=32 T=512/512 D=128 gqa=4 f32       │ 137% →  — │ removed
  sdpa                                            │ H=32 N=4096 D=128 bf16                   │  — →  — │ removed
  sdpa                                            │ H=32 N=4096 D=128 f16                    │ 124% →  — │ removed
  sdpa                                            │ H=32 N=4096 D=128 f32                    │  87% →  — │ removed
  sdpa                                            │ H=32 N=4096 D=128 gqa=4 bf16             │  86% →  — │ removed
  sdpa                                            │ H=32 N=4096 D=128 gqa=4 blocks=32 bf16   │  81% →  — │ removed
  sdpa                                            │ H=32 N=4096 D=128 gqa=4 blocks=32 f16    │  84% →  — │ removed
  sdpa                                            │ H=32 N=4096 D=128 gqa=4 blocks=32 f32    │  80% →  — │ removed
  sdpa                                            │ H=32 N=4096 D=128 gqa=4 f16              │ 115% →  — │ removed
  sdpa                                            │ H=32 N=4096 D=128 gqa=4 f32              │ 106% →  — │ removed
  sdpa                                            │ H=8 N=2048 D=128 bf16                    │  — →  — │ removed
  sdpa                                            │ H=8 N=2048 D=128 f16                     │  87% →  — │ removed
  sdpa                                            │ H=8 N=2048 D=128 f32                     │ 112% →  — │ removed
  sdpa                                            │ K=16 H=32 N=4096 D=128 gqa=4 causal bf16 │  — →  — │ removed
  sdpa                                            │ K=16 H=32 N=4096 D=128 gqa=4 causal f16  │  — →  — │ removed
  sdpa                                            │ K=16 H=32 N=4096 D=128 gqa=4 causal f32  │  — →  — │ removed
  sdpa                                            │ K=8 H=32 N=4096 D=128 gqa=4 causal bf16  │  — →  — │ removed
  sdpa                                            │ K=8 H=32 N=4096 D=128 gqa=4 causal f16   │  — →  — │ removed
  sdpa                                            │ K=8 H=32 N=4096 D=128 gqa=4 causal f32   │  — →  — │ removed
  select                                          │ N=64M bf16                               │ 101% →  — │ removed
  select                                          │ N=64M f16                                │ 106% →  — │ removed
  select                                          │ N=64M f32                                │  99% →  — │ removed
  softmax                                         │ B=1024 N=4096 bf16                       │ 106% →  — │ removed
  softmax                                         │ B=1024 N=4096 f16                        │ 111% →  — │ removed
  softmax                                         │ B=1024 N=4096 f32                        │ 102% →  — │ removed
  sort                                            │ B=1024 N=1024 bf16                       │  85% →  — │ removed
  sort                                            │ B=1024 N=1024 f16                        │  90% →  — │ removed
  sort                                            │ B=1024 N=1024 f32                        │  73% →  — │ removed
  steel_gemm_fused                                │ M=4096 N=4096 K=4096 BM=64 BN=64 bf16    │  90% →  — │ removed
  steel_gemm_fused                                │ M=4096 N=4096 K=4096 BM=64 BN=64 f16     │  90% →  — │ removed
  steel_gemm_fused                                │ M=4096 N=4096 K=4096 BM=64 BN=64 f32     │ 103% →  — │ removed
  strided_copy                                    │ M=1024 N=4096+128 bf16                   │  — →  — │ removed
  strided_copy                                    │ M=1024 N=4096+128 f16                    │  — →  — │ removed
  strided_copy                                    │ M=1024 N=4096+128 f32                    │  — →  — │ removed
  swiglu                                          │ N=64M bf16                               │  — →  — │ removed
  swiglu                                          │ N=64M f16                                │  — →  — │ removed
  swiglu                                          │ N=64M f32                                │  — →  — │ removed
  unary                                           │ N=64M bf16                               │  — →  — │ removed
  unary                                           │ N=64M f16                                │  — →  — │ removed
  unary                                           │ N=64M f32                                │  — →  — │ removed

  1221 new  ·  148 removed

@0xClandestine
0xClandestine merged commit 224170d into dev Jun 1, 2026
7 checks passed
@0xClandestine
0xClandestine deleted the feat/subprocess-rewrite branch June 1, 2026 21:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ignore-for-release Hidden from release notes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants