noonghunna
fabf9ce1ea
feat(qwen): flip multi-max to fp8/e4m3 KV + weights-conditional Ampere compat
Follow-up to #594 (which flipped dual-max int8-PTH -> fp8). Mirrors it on the
4-card tier and makes the registry/compat model reflect reality:
- multi4/fp8/mtp.yml: KV default int8_per_token_head -> fp8 (+ header, mirrors
dual-max: fp8->e4m3, FlashInfer, scale=1.0, not-e5m2)
- registry kv_format: dual-max + multi-max int8_per_token_head -> fp8_e4m3
(jesse's #594 changed only the compose, leaving the registry stale) + de-stale
the status_notes (fp8 KV, 8-pack 109 ties 107, soak p50 125.5)
- compat.py C5: weights-conditional rule. fp8_e4m3 KV is allowed on Ampere
(sm>=8.6) ONLY for fp8-weights checkpoints (FlashInfer path). Non-fp8 weights
(Gemma W4A16) still route to Triton (needs SM89+) and stay correctly rejected.
No rtx-3090 profile change -> Gemma protection intact via the profile.
- test-launch-compat: assert BOTH directions (Qwen fp8-weights passes, Gemma
gemma-mtp-tp1 still fails C5) so the rule + registry stay in sync.
- DTYPE_MATRIX: cite vLLM's fp8-KV blog (scale=1.0 = near-lossless lower bound;
Qwen3.5-27B matches baseline AUC @1M) + document the weights-conditional rule.
Validated: dual-max + multi-max validate-variant PASS with fp8_e4m3 on 2x/4x
3090; gemma-mtp-tp1 still rejected. 11 compat/registry guards green.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EfF565T9eSLaqGzidyJ1Pm
2026-07-06 14:55:01 +00:00
..
2026-07-02 11:28:31 +00:00
2026-07-06 14:55:01 +00:00
2026-05-14 21:41:06 +00:00
2026-07-03 17:44:17 -07:00
2026-07-06 14:55:01 +00:00
2026-07-05 07:21:34 +00:00
2026-06-02 16:35:48 +05:00
2026-06-13 18:53:54 +05:00
2026-07-04 16:22:48 +00:00
2026-06-18 07:31:02 +05:00
2026-07-05 09:55:54 +00:00
2026-07-05 06:41:07 +00:00
2026-06-24 14:07:06 +00:00
2026-05-14 17:04:38 +00:00
2026-05-14 22:07:00 +00:00
2026-06-05 14:44:21 +00:00
2026-07-04 11:12:32 +00:00
2026-06-18 08:43:00 +00:00
2026-07-05 07:21:34 +00:00
2026-05-31 22:13:52 +05:00
2026-07-05 00:10:57 +00:00
2026-06-18 08:43:00 +00:00
2026-06-13 19:11:35 +05:00
2026-07-02 11:28:31 +00:00
2026-07-04 19:28:03 +00:00
2026-05-24 20:05:52 +00:00
2026-06-03 21:00:16 +05:00
2026-07-05 00:08:03 +00:00
2026-06-30 00:08:52 +00:00
2026-06-24 03:47:18 +00:00
2026-06-24 03:47:18 +00:00
2026-07-02 11:28:31 +00:00
2026-07-02 11:28:31 +00:00
2026-06-15 07:07:26 +05:00
2026-07-02 11:28:31 +00:00
2026-05-13 18:40:43 +00:00
2026-07-05 07:21:34 +00:00
2026-05-03 12:17:04 +00:00
2026-07-02 11:28:31 +00:00
2026-07-04 22:22:54 +00:00
2026-07-02 11:28:31 +00:00