GLM-5.2 on Two DGX Sparks: A Seven-Gate Bring-Up
Loading a 753B parameter model across two DGX Sparks exposed seven gates: artifact fit, tensor audit, compiler canaries, rejected optimization branches, content canaries, and throughput measurement.
Summary
GLM-5.2 753B spans two DGX Sparks stitched together by a Ray tensor-parallel runtime. The bring-up exposed seven gates that any oversized local model has to clear before serving a single token. Three gates failed on first attempt: a Triton compile blocker from missing Python headers, a speculative decoding path with no valid attention backend, and a chat template that leaked internal analysis into responses.
What changed
- Verified DeepSeek baseline and rollback boundary preserved before the model swap.
- Artifacts downloaded (400G base, 157G planes, 7.1G speculator) and tensor-audited to exit 0.
- Two-node vLLM + Ray TP2 runtime built. Triton compile blocker repaired without sudo by compiling a
Python.hcanary in a user-space sysroot on both nodes. - Speculative decoding rejected after
fp8_ds_mlalacked a valid attention backend. Non-speculative configuration served instead. - Content canary fixed: default chat leaked analysis;
enable_thinking: falsechanged the canary from analysis spill to the expected marker string in 1.628s. - Measured throughput: 256 tokens at 9.72 tok/s, 512 at 12.23 tok/s, 2x256 concurrent at 20.73 aggregate tok/s.
Seven-gate frame (reusable)
- Fit before pull.
- Preserve a verified resident baseline and rollback.
- Audit artifacts, not directory size.
- Prove compiler/runtime prerequisites with a canary.
- Treat failed optimizations as rejected branches, not partial success.
- Gate output behavior separately from HTTP health.
- Measure single-stream and concurrent throughput, then state every unproven production gate.
Verification
Final transcript readback confirmed model ID glm-5.2-daystrom, max context 8192, API listener on the primary node, Ray workers on both nodes. Throughput from direct completion-request timing, not synthetic estimates.
Claim boundary
No Citadel routing, tool-use benchmark, long soak, long-context gate, production-readiness proof, or public endpoint was tested. Enterprise-to-private-fabric reachability was unproven. The model works for what was measured; production routing requires clearing the untested gates.
No private IPs, endpoint URLs, SSH routes, usernames, process IDs, hostnames, storage paths, tokens, or router internals are included.
Keep reading
All postsGet the next one when it ships.