GB300 GLM 5.3 Testing
Current-state profile of full GLM-5.3 NVFP4 on one DGX Station GB300.
Current public recipe: GLM-5.3-NVFP4-One-GB300. E1 v2 receipts and analysis directory: 2026-09-08-e1-v2-live. It is an experimental recipe, not a quality-approved default.
Current-state verdict, September 9: keep K=1. A matched-window K=2 continuation on the same 512K slot-cache recipe failed both gates that matter: greedy bit-exact 9/20 (required 20/20) and 512-token median 47.127 tok/s versus a 48.034 tok/s bar. K2 bought about 21% more accepted tokens per step and paid about 44% more expert-cache misses. Offline LRU/static/prefetch replay on the same 79k-token corpus cannot find a 15% miss cut at equal HBM, so we are not spending another live window on cache policy. masked_row_copy remains about half of decode GPU. No promotion.
September 8 E1 v2 (kept as history): correction: my first cut misattributed prefill bypass kernels to decode and was corrected the same day; I also misread backend=eager as eager execution. The corrected decode-only view is GPU-bound at about 40.1 ms/verification step wall and 43.1 ms/step aggregate GPU. Decode is CUDA-graph captured. masked_row_copy is 20.10 ms/step, 46.6% of decode aggregate GPU and about half of decode wall; routed MoE decode GEMMs are 5.38 ms/step. The bookkeeping hypothesis still fails at 1.56 ms/step.
Measured scope: E1 v2 ran September 8, 2026 11:10–12:07 CDT on the single GB300 with the GLM-5.3 NVFP4 full model, vLLM v0.28.0, 512K context, max-num-seqs=1, MTP K=1, and slot-cache expert offload. Nsight Systems 2025.6.3 captured a 4-request × 64-token probe: 140 verification steps, 8.22 s full-profile wall, 256 completion tokens at 45.648 tok/s, and 1.6% profiler slowdown. Separating the prefill rows by instance count gives decode wall 40.1 ms/step and decode aggregate GPU 43.1 ms/step; kernel sums can exceed wall because they aggregate overlapped GPU work.
masked_row_copy share of decode GPU; ~50% of decode wallK=2 continuation: measured, then closed
The September 9 continuation is measurement-only. It does not authorize promotion. Cache counters below are raw matched-window observations, not campaign-valid until a later receipt says otherwise.
| Metric | K=1 (C1 / canary) | K=2 (C2) | Read |
|---|---|---|---|
| Greedy vs incumbent | 20/20 | 9/20 | Hard fail |
| 512-token median decode | 45.747 tok/s | 47.127 tok/s | +3.0%; gate needed ≥48.034 |
| Accepted tokens / step | ~1.97 of max 2 | 2.39 of max 3 | ~0.4 extra tokens realized |
| Routes, steps 100→164 | 75,600 | 115,200 | +52%, as expected |
| Misses / layer-step (raw) | 4.24 | 6.02 | +42% |
| Expert-cache hit rate (raw) | 73.5% | 74.9% | Flat |
The offline simulator reproduced live K=1 misses/layer-step within 0.81% on the frozen 79,119-token routing corpus. The best equal-HBM policy/allocation candidate from the September 7 replay still cuts misses by only 0.083%. That is not a live window.
Nsight on the K2 profiled window now GPU-projects 634/634 spec_verify NVTX ranges onto exact dynamic trace IDs. No expert_fetch NVTX class was emitted. Kernel time in that window is still dominated by masked_row_copy at 46.2% (94,500 instances), with routed MoE GEMMs at 26%. Same picture as the September 8 K=1 decode profile: miss copies, not MoE math.
A future live release now has to pass a dummy system-scope restore-timer contract on real systemd before the incumbent is stopped. That is a process gate, not a speed claim.
E1 v2: the first valid profile of this lane
The important result is negative in the useful way, with a same-day attribution correction. I expected slot-cache bookkeeping and scalar gather to clear the 2.0 ms/step gate and justify a gather-compaction kernel. It did not. The measured sum is 1.558 ms/step, below the gate. Separately, the first bucket cut was too broad: it divided the whole capture by decode steps and included prompt bypass kernels.
The corrected decode-only cost picture is row movement first. Measured: masked_row_copy is 20.098 ms/step, dense GEMMs are 9.415 ms/step, routed MoE decode GEMMs are 5.38 ms/step, fused bookkeeping is 1.054 ms/step, and the residual other bucket is 7.18 ms/step. Inferred from source plus trace ordering: the row-copy path is 75 cached layers × four launches per cached layer: w13 rows, w2 rows, and two scale tensors. That is 300 launches per verification step.
| Bucket | Label | ms/step | % decode GPU | Evidence / notes |
|---|---|---|---|---|
| masked_row_copy | Measured bucket; launch count inferred | 20.10 | 46.6% | 42,900 instances in summary; source + last 140 inferred slot-cache steps give 75 cached layers × 4 launches = 300/step. |
| dense_gemm | Measured | 9.41 | 21.8% | Dense GEMM bucket in the decode-only table. |
| other | Measured residual | 7.18 | 16.6% | Includes scalar gather at about 0.50 ms/step and MLA attention at about 0.32 ms/step. |
| routed_moe | Measured decode rows only | 5.38 | 12.5% | Decode-path Instances == 10725 routed rows; the earlier 22.1 ms figure included prompt/prefill bypass rows. |
| fused_bookkeeping | Measured | 1.05 | 2.4% | Part of the falsified bookkeeping hypothesis. |
Measured and inferred row-copy shape: masked_row_copy has p50 34 µs, p95 214 µs, and max 519 µs over the full trace. Inferred: w13 copy-duration quantization gives about 4.4 missed experts per layer-step, an implied hit rate around 0.73, and byte movement of roughly 18 ms/step out of the 20.1 ms/step bucket. That makes the row-copy bucket about 90% C2C bandwidth and only about 2 ms/step launch/empty-program overhead. Only 2.4% of w13 launches are below 10 µs; the earlier near-empty read was dominated by the small scale-tensor launches.
| K=1 comparator lane | Restored incumbent | Patched K=1 tree | Read |
|---|---|---|---|
| Prose C1 throughput | 45.75–46.33 tok/s | 45.6–47.1 tok/s | Matched within noise. |
| Code C1 throughput | 42.95 tok/s | 42.89 tok/s | Matched within noise. |
| Weighted K=1 accepted length | 1.827 | 1.820 | Matched within noise. |
What the v2 runner does differently from v1: it pins the candidate image by digest, snapshots the executed source before profiling, restores the incumbent before offline analysis, uses an independent failsafe, and gives the full-model cold-load path a 40-minute readiness budget. That matters because v1's 10-minute readiness window was enough to manufacture an inconclusive launch failure, not enough to profile the lane.
Measured CUDA API read: decode is CUDA-graph captured. The GPU kernel summary has about 4,400 decode kernel instances per step, while the API trace shows about 189 kernel-launch API calls per step plus 3.06 cudaGraphLaunch calls per step. That means roughly 4,200 kernels/step replay inside CUDA graphs, with 189 eager launches/step left as the non-captured remainder. The 5.5 ms/step launch-API time is mostly overlapped and is not a first-order lever. The 29.9 ms/step in cudaEventSynchronize is host wait time consistent with GPU-bound decode, not a new overhead bucket to optimize first.
Contract status: inconclusive by design. This was a collection-only run; the analysis happened offline after the incumbent had already been restored and proven. The profile is valid for attribution, but it is not a release-promotion gate.
Ranked next experiments
- Reduce miss bytes by improving hit rate and slot budget. First-order target, confidence medium. Inferred: about 4.4 missed experts per layer-step, implied hit rate about 0.73, and about 18 ms/step of C2C byte movement inside the 20.1 ms/step row-copy bucket.
- Amortize miss bytes across more accepted tokens per step, especially MTP K=2. First-order if quality holds, confidence medium/low. The byte cost is per layer-step, so more accepted tokens per step can amortize it.
- Skip empty masks or coalesce row-copy launches. Estimated save ≤2 ms/step, confidence low/medium. This is demoted because row-copy cost is mostly C2C bytes; only 2.4% of w13 launches are below 10 µs.
- Fuse or remove remaining non-GEMM
otherkernels. Estimated save 1–2 ms/step, confidence low/medium. Evidence: the corrected decode residual is 7.18 ms/step, including scalar gather and MLA attention. - MoE grouped-GEMM shape/tuning pass. Low priority for decode. Evidence: routed MoE decode GEMMs are 5.38 ms/step after separating prefill bypass kernels, not 22.1 ms/step.
- Enable CUDA graph replay. Not a current experiment. Decode is already graph-captured; the 189 eager launches/step are the non-captured remainder.
Separate TTFT note: the prefill bypass path costs about 7.8 ms/layer across 75 cached layers, roughly 0.6 s per short prompt here. That deserves its own prefill/TTFT experiment, but it is not the current decode target.
Dated history: September 7 E0/E1/E5 v1 window
The September 7 v1 window stays here as history because it explains what v2 fixed. E0 ran against the unchanged incumbent and produced telemetry, not a candidate comparison. The reconstructed MTP(1) slot-cache hit estimate was ~74.8% across 37 windows, computed from two-decimal legacy miss counters with a corrected denominator of 16 routed experts per engine step. That is a reconstructed estimate, not direct route instrumentation.
The v1 E1 attempt did not reach a useful profile. The patched-tree candidate was launched under Nsight Systems, but launch environment inheritance turned the compilation config into invalid JSON ({"mode":3,"backend":"eager"}) and the 10-minute readiness budget was shorter than the full-model cold-load path. That failed launch was not a model finding, not a profile finding, and not a kernel/API attribution.
E5 was not authorized and not run; K2 remained untested. The v1 closure restored the incumbent container glm53-big-sc13g-mtp-ctx512k-keep-pre-dflash2-20260907, image vllm-glm53-uva:v0.28.0-2cf0a691, model glm-5.3-big, 524,288-token max length, seq1, MTP with num_speculative_tokens=1, and authenticated completion WINDOW_RESTORE_OK.
Historical v1 receipts: 2026-09-07-e0-e1-e5-window outcome and live receipts. Current v2 receipts: 2026-09-08-e1-v2-live.
Original frozen-campaign verdict: one GB300 can serve full GLM-5.3 NVFP4 by using Grace memory as the cold tier and HBM as the fast tier. The non-MTP slot-cache recipe is a real measured performance path, and the MTP(1) run passed the bounded primary code/math gate and the warm C1 speed gate. Overall promotion is still inconclusive, because the frozen secondary structured-output gate failed in all lanes. This is a useful experimental MTP result, not a broad model-quality claim.
DFlash2 transfer test: stopped. We tested incoai's DFlash2 draft at K4 on the same one-GB300 selective-UVA idea. Geometry passed and an explicit-eager candidate served, but weighted accepted length was 1.5718, below the frozen 3.0 stop gate. We did not run C1/C4/C8 or quality stages after that failure. DFlash2 was not promoted; the 512K/MTP lane remains the daily profile. Read the measured result.
Demand-fill DMA PR #1: stopped. Fabian correctly identified that slot-cache miss fills used Triton SM kernels and contributed an opt-in cudaMemcpyAsync H2D backend. The GB300 CUDA suite passed 5/5 and all 75 MoE layers classified correctly, but end-to-end DMA eager measured 8.75 tok/s at C1 versus 9.04 for matched Triton eager and 55.27 with Triton plus CUDA graphs. That is 3.28% slower than the eager control, not the frozen 5% win required to continue. We stopped it, restored and smoke-tested the 512K/MTP lane, and published the full receipts and checksums.
Ahmad Osman had the right framing before we had this evidence. In a September 3, 2026 post, @TheAhmadOsman wrote that you do not really “run a model”; you run kernels, schedulers, memory movement, and execution paths. This GB300 campaign became a worked example. The model name stayed constant. The hardware stayed constant. The useful numbers moved when we changed where bytes lived, how experts were routed, which tensors were pinned, and whether MTP was allowed to draft one token.
The mistake to avoid is treating a 744B mixture-of-experts model like a dense 744B read on every token. GLM-5.3 has large total capacity, but each token activates a subset of routed experts. The whole checkpoint still has to be resident somewhere, yet decode cost is dominated by selected expert rows, dense/shared work, and the memory path those selected rows take. If the active expert rows are in HBM, Blackwell runs them fast. If they are in Grace memory, the GPU can still read them through coherent UVA over NVLink-C2C, but the system becomes a bandwidth, placement, and cache-miss problem.
What the box is actually doing
The Station has nominal 288 GB HBM3e, but the observed compute GPU exposes 256,703 MiB, or 250.7 GiB, and about 249.8 GiB is CUDA-usable. Host memory is 494.5 GiB on Grace. Those units matter: the usable CUDA budget is the observed allocation ceiling, not a marketing-memory number. The current recipe sizes against observed memory, not the spec sheet.
V1 is the preserved baseline: vLLM 0.28 local GLM-5.3 UVA build, the GLM-5.3 NVFP4 checkpoint by intent, bf16 KV cache reserved at 8 GiB for a 65k context, --max-num-seqs 4, and --cpu-offload-gb 188. The slot-cache variant pushes all routed experts to pinned Grace memory, then keeps a working set of expert rows in HBM slots. A “slot” is just a fast parking space. Instead of asking HBM to hold every possible expert, the cache keeps the experts the current workload is likely to reuse, like keeping the tools for the job on the bench and the rest on shelves across the room.
The measured result, without promotion language
The current recipe records the best non-MTP slot-cache run, sc13g, at 43.1 tok/s C1, 92.0 aggregate tok/s at C4, and 95.6 aggregate tok/s at C8. That is evidence that the memory layout and router repair matter. Earlier sc8 results are historical: sc8 was faster but failed the old greedy gate 2/20. The current packaged path uses the FFI router to call the Monolithic routing implementation so the Modular slot-cache path receives matching ids and bf16 weights. In the local recipe evidence, sc11 was exact but too slow at 5.9 tok/s C1; sc13g recovered performance and reports 20/20 greedy against the tested eager comparators plus zero reported prefill deltas.
That is not the same as formal quality proof. The decode audits showed why the old common-prefix metric was not good enough: two V1G self-repeats on 53 prompts produced only 12 identical complete continuations, and the common-prefix comparison covered only 40.1% of eligible generated tokens. A zero-disagreement result on retained prefixes is a useful diagnostic, but it censors the first place the outputs differ. Greedy equality was a good alarm bell. It was not a complete admission policy.
| Evidence lane | Measured performance | Quality / gate status | How to read it |
|---|---|---|---|
| V1 baseline recipe | 33.8 tok/s C1; 57.7 aggregate C4; 57.6 aggregate C8 | Historical retained baseline, 20/20 greedy in its bundle | The preserved reference and rollback target, not a universal quality guarantee. |
| sc13g slot cache, no MTP | 43.1 tok/s C1; 92.0 aggregate C4; 95.6 aggregate C8 | 20/20 greedy diagnostics and prefill parity evidence; decode noninferiority not formal | A promising experimental performance recipe, not a blanket quality claim. |
| sc13g + MTP(1) | Recorded throughput 54.7 tok/s C1; 107.8 aggregate C4; 102.9 aggregate C8 in imported run | Greedy/logprob diagnostics did not qualify it; later frozen primary code/math passed, secondary failed | Useful speed evidence, but default promotion remains blocked. |
| sc13g + DFlash2 K4 | Acceptance-harness median 7.8775 tok/s; not a matched bench3.sh result | Weighted accepted length 1.5718 vs frozen 3.0 gate; C1/C4/C8 and quality not run | Stopped at the cheap gate. Negative transfer result for this UVA path, not a verdict on HBM-resident DFlash2. |
| PR #1 demand-fill DMA | 8.75 tok/s C1; 34.00 aggregate C4; 33.40 aggregate C8 | CUDA 5/5 and 75/75 H2D classification passed; performance continue gate failed | 3.28% slower than matched eager Triton and 84.17% slower than graph-enabled Triton at C1. Stopped; 512K/MTP restored. |
| Frozen MTP quality campaign | Warm short C1 effective TPS 53.98 vs 40.92; long wall ratio 0.7697 | Primary code/math 190/200 both, 1 loss, 1 win, 98 ties; secondary 33/44 candidate | Primary and speed passed. Overall result is inconclusive because secondary did not pass. |
| E1 v2 Nsight profile | Corrected decode-only: 40.1 ms wall/step; aggregate GPU 43.1 ms/step. Patched K=1 prose C1 45.6–47.1 tok/s; code C1 42.89 tok/s; acceptance 1.820. | Collection-only profile; K=1 comparator matched incumbent within noise; promotion unchanged. | Measured attribution moved the decode target from bookkeeping/gather, CUDA graph enablement, and MoE GEMM tuning to miss-byte reduction and MTP K=2 amortization; prefill bypass is a separate TTFT note. |
The frozen MTP campaign is the most important correction to this post. The primary denominator is 100 unique tasks, not 200 independent examples. Each task had two repeats, and the task-level comparison counted whether the candidate lost, won, or tied the matched non-MTP control. The candidate had 1 loss, 1 win, and 98 ties. The one-sided 95% Clopper-Pearson upper bound on gross-loss proportion was 0.04655981145353899, below the frozen 0.05 limit. The repeat accuracy was 190/200 for both sc13g and sc13g-mtp. On that bounded low-reasoning code/math gate, MTP passed.
The speed gate also passed. The warm short-prompt C1 median effective throughput was 53.98028929327154 tokens/s for sc13g-mtp versus 40.92076273384625 for matched sc13g, a 31.9% gain. The long-prompt median wall-time ratio was 0.7696895272711062, so the candidate did not show the prohibited long-prompt wall regression. These are repeated measurements under the campaign harness, not a universal speed law.
The reason this is still not a promotion is the secondary gate. The contract required the 40 supplied-data/structured-output rows plus four tool-chain episodes to pass. They did not. V1 scored 36/44, sc13g scored 35/44, and sc13g-mtp scored 33/44. All four tool-chain episodes passed in every lane. The failures were structured/supplied-data outputs: malformed JSON with reasoning or prose appended, duplicated JSON, extra braces, and a few well-formed wrong fixture answers. That pattern does not prove a clean MTP-specific quality collapse, because many failures are shared across lanes. It does block the recommendation because the rule was frozen before scoring.
Sources: frozen contract, audit and public evidence bundle; historical throughput and routing diagnostics; observed hardware manifest. Historical C4/C8 figures are aggregate throughput, not per-user latency, and are separate from the matched warm-C1 campaign. Effective TPS includes request wall time; these are not isolated decoder-kernel timings.
Sizing the context window: we settled on 512K
The recipe originally served a 65k context. On September 7 we sized three context profiles for the slot-cache + MTP(1) build and settled the daily serving configuration at 512K context (524,288 tokens) with a 48.0 GiB bf16 KV cache. The logic is the same two-tier memory story as the rest of this post: every GiB of KV comes straight out of the HBM budget, and whatever HBM the KV cache does not eat goes to expert slots. Decode speed follows the slot budget, so context size is a speed decision, not just a capacity decision.
| Profile | Context | bf16 KV | Expert slots (per-layer range) | Mean predicted hit allocation | Outcome |
|---|---|---|---|---|---|
| ctx256k | 262,144 | — | 7,360 (64–176) | 0.6982 | Fastest slot budget, but context was not the pain point; not compelling. |
| ctx512k | 524,288 | 48.0 GiB | 5,792 (48–96) | 0.6166 | Selected daily profile. |
| ctx1m | 1,048,576 | 96.0 GiB | 2,672 (32–48) | 0.4016 | Loads and serves, but roughly halves the slot budget; aborted during startup as too slow for daily use. Kept as a special long-context option. |
The mean predicted hit allocation is a planning figure computed from per-layer routing-trace hit curves, not a measured runtime hit rate. The live 512K launch (container glm53-big-sc13g-mtp-ctx512k) reserved 48.0 GiB KV for 548,800 tokens of KV capacity (1.05x concurrency at the full 524,288 window), loaded with the 5,792-slot allocation map, and passed a near-window probe: a 480,011-prompt-token request completed in 142.7 seconds cold — an effective 3,363 tok/s across the near-480k prefill — and its cached repeat returned exactly CTX512K OK in 1.393 seconds (a prefix-cache hit, not a prefill measurement). No OOM, no traceback, and 16,902 MiB still free afterward. For scale: warm prefill on this build runs 3,383 tok/s at an 8k prompt, 3,477 at 32k, and 3,649 at 64k (measured on the 65k-profile slot-cache build, before the 512K profile), so the near-window number is an effective rate for one giant prompt, not a steady-state prefill benchmark. The same context declaration was corrected in the Hermes clients (M4 and Forge/Echo) from 65,536 to 524,288, and both answered HERMES 512K OK. The 1M launch was not a failure — it loaded and served — but at 96 GiB KV it kept only 2,672 expert slots and looked too slow to justify as the everyday configuration, so we archived it rather than fight the memory math. Context sizing changes no quality verdict: the MTP and structured-output caveats below are unaffected.
Receipts: live 512K launch and probe receipts; the slot allocation map is pinned as slots-5792-ctx512k.json in the recipe.
V2: a release candidate, not a rewritten verdict
V2 frozen contract, raw receipts and rerunnable audit.
The follow-up changed one request feature: supplied-data tasks explicitly requested response_format: json_schema. It did not strip trailing text or relax the answer oracle. Each configuration received the same 20 fixtures twice. The original unconstrained campaign remains INCONCLUSIVE; this is a separate validation of constrained output.
| V2 configuration | Valid JSON and schema | Correct answers |
|---|---|---|
| Original V1 | 40/40 | 37/40 |
| Slot cache without MTP | 40/40 | 38/40 |
| Slot cache with MTP | 40/40 | 37/40 |
Across the 20 unique matched tasks, MTP had one win, one loss and 18 ties by correct-repeat count. That is a small descriptive comparison, not a newly established noninferiority margin. Schema constraints prevented malformed JSON in this sample, but arithmetic, omission and ordering mistakes remained. Nor does this identify or repair the underlying model/template/reasoning-parser boundary: ordinary chat does not automatically get schema enforcement.
Release decision: publish slot-cache + MTP as an experimental candidate with documented schema-constrained output support. The earlier 31.9% speed gain was measured without this request constraint; schema-constrained speed was not remeasured. V2 did not rerun the code/math corpus or tool-chain episodes. Real-Hermes tool-use qualification is a separate deployment check, not an implied pass, and neither Echo nor Milo was automatically switched to this recipe.
What changed in our policy
James's question after seeing the evidence was the right one: why did we turn down MTP gains so quickly? The candid answer is that exact greedy matching and the old censored logprob floor were over-weighted. They were good implementation diagnostics. They were not sufficient task-quality gates. The later primary campaign showed that MTP(1), in this bounded low-reasoning code/math slice, did not show the feared task-loss signal and did show a meaningful speed gain. Withholding default promotion while secondary behavior was unresolved was defensible. Treating MTP as quality-disqualified was not.
The better policy has three separate questions. First, is the cache/kernel implementation computing the intended thing? That is where strict parity belongs: router ids, routing weights, no stale slots, no cache-on/cache-off drift. Second, does the candidate behave acceptably on tasks and protocols James cares about? That needs paired code, math, structured JSON, tool replay, reasoning separation, and eventually blinded prose, with margins chosen before scoring. Third, is it faster and operationally sane? That is where C1/C4/C8, TTFT, prefill, memory ledgers, hit/miss logs, and rollback receipts belong. Speed does not rescue a protocol failure. Greedy identity does not substitute for quality.
How the team actually works
This result did not come from one magic agent prompt. It came from a team shape that is becoming the real method.
- James owns the goals, risk tolerance, and rules: one Station, quality before promotion, no quiet denominator games, no unreviewed default flip, and public wording that says what the data says.
- Milo orchestrates the machine work: source inspection, launch ledgers, patch packaging, result capture, audit reconciliation, rollback proof, and final review of public claims.
- Independent reviewers stress the plan and the evidence. In this round, Milo/gpt-6-astra review pushed the post toward measured gates, current provenance, and away from stale sc8 interpretations.
- Writer agents turn the fact sheet into something a reader can learn from. This rewrite was written with gpt-5.5 and checked against the recorded measurements by Milo (gpt-6-astra).
- The GB300 is the arbiter. If a number did not come from a local source, a result bundle, or an audited command, it does not become a claim here.
Speculation: what is holding the GB300 back, and what probably wins next
My stance: the wall is not raw MoE arithmetic. The wall is active expert placement. One GB300 has enough total HBM plus Grace memory to host the full NVFP4 model, but not enough CUDA-usable HBM to keep the full practical checkpoint plus KV, graph pools, allocator reserve, and workspace all in the fast tier. The single-box recipe therefore lives in the middle: it uses Grace as capacity and tries to make HBM hold the rows that matter most often.
Some of the slot-cache penalty should go away with better software. This implementation is a research patch: import hooks, FFI routing, per-layer slot maps, miss detection, LRU bookkeeping, row copies, and guardrails around prefill and batch size. Native upstream support could reduce remapping overhead, integrate router and expert kernels more cleanly, compact misses better, overlap more work, and avoid stalls that are artifacts of plumbing rather than physics. The routing-equivalence fix is real evidence that software details can turn a rejected design into a better one.
But software cannot make a required miss travel at HBM bandwidth. When a selected expert row is not resident in HBM, real bytes have to cross the Grace-Blackwell coherent path. The cache also duplicates hot rows: the cold bank remains in host memory while HBM slots and slot scales consume scarce fast memory. Hit rate is workload-dependent. A cache warmed on one domain can be poor on another. Better code can reduce avoidable overhead and sometimes hide transfer time; it cannot promise zero misses, zero host traffic, or an HBM-sized illusion.
The all-HBM quantization question is therefore serious but harsh. A raw 744B model at 4 bits is about 372.0 GB decimal, or 346.45 GiB, before scales, metadata, KV, workspace, fragmentation, and runtime slack. Pure 3-bit raw is about 279.0 GB decimal, or 259.84 GiB, still above the roughly 249.8 GiB CUDA-usable HBM before reserving anything else. Pure 2-bit raw is about 186.0 GB decimal, before overhead, but no claim here says a supported, quality-acceptable 2-bit GLM-5.3 recipe exists. The practical target is not “largest parameter count at any cost.” It is the fastest recipe that fits the memory, stays on efficient kernels, leaves KV and workspace headroom, and passes task quality.
My current bet is that the durable sweet spot on this box will eventually be either a quality-acceptable all-HBM quant with real kernel support and enough headroom, or a smaller model that stays comfortably in HBM and wins on latency and reliability. Slot-cached NVFP4 is the important bridge: it teaches the memory system, keeps the full model available, and gives us a measured reference. MTP(1) now has a bounded task-quality result and a measured speed benefit; structured-output reliability is the remaining qualification problem. The right next public claim should be earned the same way this one was: freeze the rule, run the receipts, publish the limits.
Provenance: local sources read for this rewrite include the current recipe README and recipe YAML, the GB300 hardware profile, the frozen MTP campaign contract, the independent audit, and the local audit script output. Hardware facts: observed compute GPU memory 256,703 MiB / 250.7 GiB visible, about 249.8 GiB CUDA-usable, 494.5 GiB host memory, Ubuntu 24.04.4, driver 595.84, CUDA 13.2. Campaign facts: primary code/math 190/200 for both matched lanes, 1 loss / 1 win / 98 ties over 100 tasks, Clopper-Pearson upper 0.04655981145353899, warm short C1 53.98028929327154 vs 40.92076273384625, long wall ratio 0.7696895272711062, secondary 36/44 V1, 35/44 sc13g, 33/44 sc13g-mtp. Model quality remains unresolved outside these bounded tests. Context-profile facts: 512K / 48.0 GiB bf16 KV / 5,792 slots (mean predicted hit allocation 0.6166) selected as the daily profile on September 7, 2026; the 1M profile (96.0 GiB KV / 2,672 slots / 0.4016) was aborted during startup as too slow and archived; 480,011-token probe cold 142.723 s, cached repeat 1.393 s, 16,902 MiB free after. E0/E1/E5 facts: E0 telemetry-only reconstructed hit estimate ~74.8% across 37 windows from rounded counters with corrected denominator 16; E1 exited before readiness due to malformed compilation-config JSON from environment inheritance; E5 not authorized and not run; K2 untested; exact incumbent restored and proved with WINDOW_RESTORE_OK.