File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -293,3 +293,24 @@ Everyone else is CPU-only or CUDA. Our Metal kernels are unique.
2932934 . Pre-rotate-queries (from Dejan.ai) is the right architectural approach
2942945 . Codex + roast reviews catch real bugs (buffer clear ordering, stale code, MSL limitations)
2952956 . The ggml_mul_mat approach for Q rotation is clean and correct
296+
297+ ### 2026-03-25: CHANGE 1 — Drop QJL (MSE-only) ✅
298+ - Python validation: cosine 0.9508 → 0.9831, better on 99.3% of real KV vectors
299+ - MoE gen: 51.4 → 62.2 tok/s (73% of q8_0)
300+ - Qwopus gen: 14.6 → 15.5 tok/s (88% of q8_0)
301+ - Qwopus prompt: 83.1 tok/s = 100% of q8_0!
302+
303+ ### 2026-03-25: CHANGE 2 — WHT for Q rotation — NOT NEEDED
304+ - Speed ceiling test: removing Q rotation entirely gives 61.3 tok/s (vs 62.2 with it)
305+ - The dense 128×128 ggml_mul_mat adds <1% overhead — negligible on Metal
306+ - The remaining gap (62.2 vs 85.5 on MoE) is structural:
307+ - Block size 128 (4 blocks per head) vs q8_0 block 32 (4 blocks per head too, but simpler dequant)
308+ - 128 centroid lookups (3-bit unpack + table) vs 32 byte * scale (q8_0)
309+ - This is the irreducible cost of the algorithm
310+
311+ ### FINAL PERFORMANCE
312+
313+ | Model | q8_0 | turbo3 MSE-only | Speed | Compression |
314+ | -------| ------| -----------------| -------| -------------|
315+ | MoE 35B | 85.5 tok/s | ** 62.2 tok/s** | ** 73%** | ** 4.9×** |
316+ | Qwopus 27B | 17.6 tok/s | ** 15.5 tok/s** | ** 88%** | ** 4.9×** |
You can’t perform that action at this time.
0 commit comments