Papers

Notes from building open source MLX libraries on Apple Silicon. Most of them start from something that broke, or from a number that turned out to mean something other than what it looked like. Every paper here also lives in the repository it came out of, and each byline links to that copy.

Shows papers matching any selected topic, so picking a second one widens the list.

Measuring a macOS process tree honestly

How macOS actually charges a process tree for memory, where the obvious measurement lies, and what an external supervisor must do to get a number it can act on.

memorytestingRead →

Why the memory limit must live outside the process

What an in-process memory guard cannot promise on Apple unified memory, and the external supervisor built for the outer ring — the last line of defense must sit outside.

memorytrainingRead →

How to measure what quantization actually costs

The design of an honest quantization-fidelity measurement — why the obvious harness buries damage, measures the wrong quantity, or passes without exercising the feature.

quantizationbenchmarkingtestingRead →

Low-bit KV caches on MLX: what exists and what is missing

What mlx-lm's QuantizedKVCache ships on Apple Silicon today, what it measurably costs at 8-bit and 4-bit, and where KIVI-style asymmetric layouts are still missing.

quantizationcachingmemoryRead →

Why byte-exact parity is a poor MLX integration oracle

A byte-exact fixture gate failed 5 of 5 FLUX.1-dev prompts while the math was correct — why golden files make poor MLX oracles, and the four tests that replaced it.

testingdiffusionRead →

Qwen-Image Mixed Precision on a 32 GB Mac

A case study from mlx-teacache: diagnosing a cracked-skin artifact in a uniform 4-bit Qwen-Image build on a 32 GB Mac, and the mixed-precision recipe that cleared it.

diffusionquantizationmemoryRead →

When an MLX Memory Cap Is Not a Safety Boundary

A kernel-panic incident on a 32 GB M1 Max: why an MLX wired limit and soft memory guideline don't stop an over-budget GPU allocation, and the watchdog added afterward.

memorytrainingRead →

Why the TeaCache Gate Did Not Engage on Short Distilled FLUX Schedules

A negative result from mlx-teacache: the TeaCache gate skipped zero steps on FLUX.2 Klein's distilled 8-step schedules — correct behavior, and the practice it forced.

diffusioncachingbenchmarkingRead →

How MLX Packs Metal Command Buffers

How MLX 0.32.0 decides when to commit a Metal command buffer — operation and element thresholds on an M1 Max — and why a whole-chain duration guard used the wrong unit.

Metal kernelsbenchmarkingRead →

When the Bottleneck Moved: From Fused Cross-Entropy to FlashAttention on MLX

Removing the logits matrix freed memory but did not extend training context on a 32 GB Mac: the peak had moved to attention backward. A Metal FlashAttention path for MLX.

Metal kernelsattentionmemorytrainingRead →

A fused linear cross-entropy forward kernel for Apple GPUs

A fused MLX and Metal forward kernel computes language-model cross-entropy in vocabulary tiles, never materializing the full (N, V) logits matrix. Measured on an M1 Max.

Metal kernelstrainingmemoryRead →
Buy me a coffee