Skip to content

v0.9.0

@robertelee78 robertelee78 tagged this 16 May 14:03
50 commits since v0.8.1. Pre-1.0 minor bump — contains a real Rust
semver break in addition to two big perf wins and a new dispatch
pre-bake infrastructure.

Breaking:
- SdpaParams gains do_causal: bool (ADR-030 iter-87, c24beb4).
  Struct is not #[non_exhaustive], so callers using fully-explicit
  construction will fail to compile with "missing field do_causal".
  An impl Default for SdpaParams was added (default = true,
  matching pre-iter-87 causal behavior), so callers using
  `SdpaParams { ..Default::default() }` are unaffected. The flag
  flips to false at the DFlash drafter full_attention layer to
  enable bidirectional block-diffusion. GPU params layout grew
  28 → 32 bytes accordingly (39a9e68).

Perf wins (default-on):
- MoE routing V3 — parallel SG-tournament top-K (5119eee), +11.5%
  measured wall, with safety hardening (93a3083 lex-on-tie +
  OOR-shuffle guard) and batched prefill counterpart (720e763),
  V3↔V2 divergence closed to byte-identical via tree-reduce in
  the batched softmax (9496c22).
- Precompiled .metallib (3378f86 infra + 7fd679f default-on after
  multi-regime validation), +5.89% (b32b81e dispatch_tracked
  migration, 536210e empirical bench).
- Env-flag caching wave at hot-path sites (step 1ao→1bb), ~1%
  cumulative wall.

ADR-029 dispatch pre-bake:
- DispatchRecord type (1f86fbd)
- build_q6k_id_nr2_m1_record (5d0a140), build_q8_0_id_decode_record
  (12d3259), build_rms_norm_decode_record (5d75def)

ADR-030 — new prefill / cache kernels:
- F16 D=256 resume dispatcher (a37ed31)
- F16 D=512 resume + validate_buffer_size (b55ba4e)
- BF16 D=512 resume dispatcher (42350bc)
- BF16 → BF16 head-major KV cache copy + byte-identity test
  (83cb002, bf1befd)
- SDPA do_causal flag (c24beb4) — see Breaking above

Defense — dtype coherence guards (non-breaking, tightens behavior):
- rms_norm weight + output (f865e34)
- sdpa Q/K/V/output (f13ec33)
- rms_norm fused + no_scale (0ea781a)
- softmax / gelu / softcap / rope (245d34c)
- transpose input/output (146ddce)

Correctness:
- HF2Q_PIPELINE_TG_MULT_HINT runtime safety check (cddf39e)
  caught a silent corruption bug in qwen3.6; e7a6b33 unblocks
  the universal hint by fixing ssm_conv tg=255 + label panic.

Plus: README refreshed for v0.7.0–v0.9.0 surface (previous commit).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Assets 2
Loading