Repository navigation
RUNBOOK: a GPU clock cap for GB10s, with what it cost and lowered for GLM-5.3-Flash NVFP4 at TP=2 - #1110
RUNBOOK: a GPU clock cap for GB10s, with what it cost and lowered for GLM-5.3-Flash NVFP4 at TP=2#1110Bizuayeu wants to merge 1 commit into
Conversation
… GLM-5.3-Flash NVFP4 at TP=2 GB10 hosts are reported to power off under sustained GPU load, and a 2,200 MHz clock cap is the reported workaround. The page had the heat bands and the CPU pinning but not the cap: how to set it at each boot, what it does not do, and what it cost and lowered in four serves on v1.1.1.
|
@Bizuayeu thanks for documenting this and including the measured performance cost. Some complementary GB10 observations from our deployment: On one node serving DeepSeek with vLLM in August, busy-sample telemetry (GPU utilisation >50%, averaging about 95% in each window) showed:
These were different live-serving windows with mixed workloads, not a controlled cap benchmark. They do not establish the throughput or TTFT cost of either cap. The thermal-zone readings also do not identify the sensor locations. Two operational details may be useful additions:
|
|
Thank you. This is on main as 6774777, with your authorship: RUNBOOK.md's GB10 notes now cover the 2,200 MHz GPU clock cap, how to set it at boot, and your measurements of what it cost for GLM-5.3-Flash NVFP4 at TP=2, labelled as yours. It ships with the next release. Closing as landed. - Synthema, Ash's AI Assistant. |
Thank you for landing it. |
What this changes
A subsection in RUNBOOK.md's GB10 notes, after the CPU pinning one: how to cap the GPU clock at 2,200 MHz at each boot,
why (GB10 hosts are reported to power off under sustained load without a log, and the cap is the reported workaround),
and what the cap did for GLM-5.3-Flash NVFP4 at TP=2 on v1.1.1: drafted decode about 1% slower and a cold prompt 2 to 5%
slower, with the same token ids, while each GPU peaked at about 60 W instead of 89 to 92 W and the hottest thermal zone
at 88.6 to 90.7 C instead of 96.8 to 98.1 C. It also says what the cap does not do: it holds the GPU only, and it does
not replace the heat bands. The page has the heat bands and the pinning, but not the cap.
Receipt
Documentation only; the subsection rests on these four serves.
Environment: plain v1.1.1 (
b10231b9) built from source with Zig 0.17.0 and nvcc 13.0 for sm_121. Two MSI EdgeXpert(GB10, DGX Spark-compatible) at TP=2 over a direct RoCE link, each rank's container on the efficiency cores
(
--cpuset-cpus=0-4,10-14).nvidia/GLM-5.3-Flash-NVFP4at423acf37, served with--parallel 4 --context 40960,drafts on, no heat bands; each host's page cache of the checkpoint dropped before each serve.
The runs: cap, no cap, no cap, cap, in one afternoon on the same binary and hosts, with at least 3 minutes of rest
after each serve. The cap was switched between runs with
systemctl stopandstartofgb10-clock-capon bothhosts. Each serve ran
tools/bench_openai.py(256 tokens, 5 reps, medians) with drafts; the same requests with"draft": falseadded to each body, greedy only (the script has no such option, so a wrapper adds it:openai_aligned.py nodraftin glm/cuda: load and serve nvidia/GLM-5.3-Flash-FP4-Local as stored #1050's receipt); andtools/bench_cache.py --require-coldon an 18,789-token promptand on 9,600 and 38,400 token ids (the first cold request's
ttft_s). Telemetry every 2 s on both hosts:nvidia-smi's GPU clock, power and temperature, and the hottest/sys/class/thermalzone; the busy median is over thesamples at 50% utilization or more. Two values are rank 0's host and rank 1's.
"draft": falsedecode, both prompts (tok/s)The replies were the same in all four serves: the greedy replies of each prompt with drafts and with
"draft": false(
f1f736f680e3and0c5820aa8286), the cold prompts' replies (20fff53e1cb7,6cbdb0dff1dfand954ab9447bbd),and the sampled replies, rep by rep. The cold prompt row is each serve's first cold request; over the next three
requests of the 9,600 and 38,400 token ids, the serves without the cap took up to 7.04 s and 28.21 s, and the serves
with it stayed within 0.5% of their first. The 94 C on a capped host with the GPU idle is from the same telemetry that
morning, while the kernel contract's checks ran and nvcc built its fatbins on that host. The hottest host's clock in
the 1,035,295-token run is from RUNBOOK: what the heat bands did on three GB10s, GLM-5.3-Flash NVFP4 at TP=3 with a 1M-token prompt #988; the cap was on all three hosts.
Not run, and why: other families, TP=3 and longer prompts (the subsection names the case measured); other cap values
(2,200 MHz is the reported workaround); serves longer than about 15 minutes (the peaks above are of 15 minutes each);
a serve with the cap on one host only (the subsection caps every host); a power-off itself (the subsection says what
the cap lowers, not that it prevents one).
Checklist
"draft": false, a resumed prompt equals a fresh one, and concurrent equals solo (documentation only; the replies were the same with and without the cap).SUMMARYline is in the receipt (no kernel changes: documentation only).