Muse-Glimmer Text Bring-up and Certification
Muse-Glimmer-30B is a bounded text correctness candidate in CKE v8. The complete checkpoint converts, both 52-layer graphs generate and compile, and three short prefill plus cached-decode trajectories match the pinned PyTorch eager BF16 reference bit for bit. The selected eager attention provider has quadratic prefill scratch, so this result does not certify practical long-context inference or vision.
Recorded evidence
The machine-readable Ryzen certification report is the authoritative snapshot for this run. It records reference and runtime hashes, resolved engine identity, case-level logits and token divergence, and incomplete-run failures. The checked-in report is consumed by the Muse contract tests; it is evidence from one pinned run, not a substitute for rerunning certification when the circuit, lowering, selected providers, conversion, or runtime changes.
| Prompt | Prompt tokens | Finite, bit-exact logit rows | Greedy token divergence |
|---|---|---|---|
| Complete C function | 69 | 128 / 128 | None |
| Standalone SVG | 69 | 128 / 128 | None |
| CKE v8 architecture analysis | 105 | 128 / 128 | None |
All 384 float32 logit rows matched by raw IEEE-754 bit pattern, and all free-running greedy tokens matched.
The runner retains CKE and reference output separately. It preloads the requested engine and uses
dladdr on an engine-owned symbol to verify that libmodel.so resolved the recorded
libckernel_engine.so. This is PyTorch parity; llama.cpp was not used as a Muse oracle.
Frozen reference contract
meta-models/Muse-Glimmer-30B, Hugging Face branch main-30B2BF16 storage and activations
Transformers commit
4177486a9f199bd7be520eff14431071d5d41ec5MuseGlimmerForConditionalGeneration, eager attentionTransformers 5.15.1, PyTorch 2.13.0+cpu, oneDNN 3.12, PyTorch-supplied SLEEF symbols,
OMP_NUM_THREADS=16| Reference file | SHA-256 |
|---|---|
config.json | 5a9df2d8a385b3d361ab6ae68d73586f4e775033933bd0cd863fb7f3820e6a14 |
model.safetensors.index.json | 7d817b4dccb1b123fc6c1939356c65cee3a0ad462a5b821ac88280990a27d1ba |
chat_template.jinja | cfc67e5f349f37690dfd31ed1f18bc4442a9dd32fe39a648f993cb4eb3cae678 |
Implemented text contract
- Independent hidden, query, KV, gate, and MLP dimensions in the
muse_glimmer_textcircuit. - Three sliding-attention layers followed by one full-attention layer, with RoPE only on sliding layers.
- Centered weighted RMSNorm, post-branch RMSNorm, unweighted Q/K normalization, query scaling, attention gating, four normalization sites, output scaling, and tanh logit softcapping.
- Explicit BF16 rounding boundaries through normalization, projections, attention, SwiGLU, residuals, and logits.
- Separate embedding and output-head tensors, strict tensor-family checks, and explicit vision deferral.
- Caller-owned attention and projection tensor scratch declared in kernel maps, with an aggregate lowering-time workspace budget.
Conversion accounts for all 1,436 checkpoint tensors: 627 feed the text circuit and 809 vision tensors are
explicitly deferred. The four attention maps accurately state AVX-512, oneDNN 3.12, SLEEF, serial CKE head
traversal, and external oneDNN threading. Their selection status remains candidate.
Numerical X-ray findings
The complete 59.55 GB checkpoint converted to a 55.5 GiB CKE weight artifact. The first multi-token mismatch came from full-attention cache placement: global layers omit RoPE, and lowering had stored K before Q/K normalization. The corrected graph stores normalized K for those layers.
The remaining layer-1 mismatch came from Q/K normalization. The model spells the reciprocal factor as
torch.pow(value, -0.5), while PyTorch's CPU unary dispatch uses its reciprocal-square-root path for
that exponent. Selecting CKE's existing reciprocal-square-root path reproduced the dispatch. No new BF16
normalization kernel was needed. A 69-token X-ray remained exact through layers 0–50, followed by the
complete-graph certification above.
Attention preserves BF16 QK matmul, BF16 scale rounding, FP32 softmax, BF16 probability storage, and BF16 PV matmul. Synthetic oracles cover multiple KV heads, sliding masks, and decode with cache capacity greater than live KV length. Null, undersized, and overflowing workspace requests fail explicitly.
Memory and allocation boundary
Eager prefill requires 6*T*C + 4*C*D + 2*T*D bytes. Score buffers alone use 6*T*C:
24 GiB at T=C=64K and 96 GiB at T=C=128K. Sliding attention still materializes the
full matrix before masking, so the maps impose a 1 GiB call-workspace gate. A bounded-memory provider needs
separate numerical validation before this gate can expand.
Selected Muse maps make attention and projection tensor scratch caller-owned and contain no explicit C heap allocation for those tensors. This does not establish allocation-free execution. The projection helper creates and destroys oneDNN objects per invocation under a global mutex, and oneDNN may allocate internally. The current repository audit also retains 51 inherited production allocation sites. Muse did not expand that baseline; its workspace ABI reduced mapped allocating providers without scratch contracts from three to two.
Certification envelope
| Gate | State |
|---|---|
| Configuration and complete tensor inventory | Passed |
| Conversion, lowering, generated C, and component contracts | Passed |
| Short real-weight prefill and cached decode | Passed: 384 / 384 finite, bit-exact rows |
| Decode stride beyond live KV length; workspace capacity and overflow | Passed |
| Ordinary nightly compiler and portable BF16 kernel contracts | Passed; oneDNN attention joins this target when selected by the engine build |
| Repeated-call library allocation instrumentation | Not tested |
| 2,047 / 2,048 / 2,049-token window boundaries | Not tested |
| 4K through 128K context | Blocked by eager workspace budget |
| Reset/reuse and concurrent-session isolation | Not tested |
| Quantization | Not tested |
| Vision and image preprocessing | Deferred |
Reproduce the comparison
Generate a pinned reference fixture, then compare it with a converted and compiled CKE runtime:
python version/v8/scripts/certify_muse_glimmer_text_v8.py reference \
--model-dir /path/to/Muse-Glimmer-30B \
--reference-dir /path/to/muse-reference
python version/v8/scripts/certify_muse_glimmer_text_v8.py compare \
--runtime-dir /path/to/Muse-Glimmer-30B-cke \
--reference-dir /path/to/muse-reference \
--sleef-library /path/to/pytorch/lib/libtorch_cpu.so \
--report /path/to/muse-report.json
Rerun this comparison when affected kernels, maps, lowering, conversion, or runtime linkage changes. Coverage should progress through window boundaries, longer histories, repeated sessions, and each supported hardware configuration while reporting passed, failed, skipped, and untested gates separately.
make test-v8-muse-glimmer-contracts is the resource-light nightly lane. Native builds exercise
conversion, lowering, generated C, artifact provenance, allocation contracts, and exact normalization, Q/K,
RoPE, and logits kernels. A USE_ONEDNN=1 engine extends that lane to exact sliding-attention and
cached-decode kernel comparisons.