Gap
PR #328 adds the static-cache ONNX Attention export path (is_causal=0 + a phase-split If). Its correctness is covered in CI on two axes, but a third is missing:
Proposed follow-up
Author a synthetic static-cache parity test:
- Build a tiny in-memory synthetic model (same approach
static_cache_decode_test.py uses).
- Export the static-cache variant and a dynamic reference.
- Assert token-id and/or logit parity within tolerance over N decode steps.
- Wire it into a GPU CI tier (static-cache decode requires CUDA).
This complements the runtime-kernel routing test added in #328 — that test checks the right kernel runs; this one would check the numbers are right.
Refs: #328
Gap
PR #328 adds the static-cache ONNX
Attentionexport path (is_causal=0+ a phase-splitIf). Its correctness is covered in CI on two axes, but a third is missing:tests/build_graph_test.py(CPU, runs per-PR).tests/static_cache_decode_test.pyin the integration-fast GPU job (added in Fix Phi-3.5 ONNX Attention (static-cache) + GQA fp16 export bugs #328).tests/synthetic_parity_test.pyonly exercises the dynamic path (is_causal=1). The 20/20 static-path parity validated during Fix Phi-3.5 ONNX Attention (static-cache) + GQA fp16 export bugs #328 development was a manual QA run (parity_llama.json), not a committed test.Proposed follow-up
Author a synthetic static-cache parity test:
static_cache_decode_test.pyuses).This complements the runtime-kernel routing test added in #328 — that test checks the right kernel runs; this one would check the numbers are right.
Refs: #328