Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions fork.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,9 @@ def:
E=32, K=2880, N=2880|5760, FP32/BF16 shape; `MLX_GPTOSS_MXFP4_DECODE_FAST_TAIL=0`
restores the original route and `MLX_GPTOSS_MXFP4_PREFILL_TILE=m32n32k32` opts into a
separately measured prefill tile (`gptoss_mxfp4_policy.h`). (PR #14)
`fp_quantized.metal` also builds the two m32n32k32 prefill-tile kernels (float and
bfloat16) ahead of time, so CMake builds with the default `MLX_METAL_JIT=OFF` can load
them. (PR #24)
globs:
- "mlx/backend/metal/gptoss_mxfp4_policy.h"
- "mlx/backend/metal/kernels/fp_quantized.h"
Expand Down
4 changes: 4 additions & 0 deletions mlx/backend/metal/kernels/fp_quantized.metal
Original file line number Diff line number Diff line change
Expand Up @@ -226,3 +226,7 @@ instantiate_quantized_types(float16_t)
// Exact GPT-OSS MXFP4 gathered-vector tail experiment.
instantiate_quantized(mxfp4, gather_qmv_fast_tail, float, 32, 4)
instantiate_quantized(mxfp4, gather_qmv_fast_tail, bfloat16_t, 32, 4)

// GPT-OSS MXFP4 prefill tile m32n32k32, selected by MLX_GPTOSS_MXFP4_PREFILL_TILE.
instantiate_gather_qmm_rhs(fp_gather_qmm_rhs, gather_qmm_rhs_nt, float, 32, 32, 32, 2, 2, true, mxfp4, 32, 4)
instantiate_gather_qmm_rhs(fp_gather_qmm_rhs, gather_qmm_rhs_nt, bfloat16_t, 32, 32, 32, 2, 2, true, mxfp4, 32, 4)
Loading