llm(frank-archon): unquantized bf16 KV at 2 x 200,000
The KV pool at the fp8 shape backed 386,904 tokens — 1.93 sessions of the served 200,000 window, so a second full-height conversation preempted to the host/disk prefix tiers. Moving the cache to bf16 (the engine's only unquantized rung; `--kv-cache-dtype` takes bf16|fp8 and has no per-tensor K/V split) doubles what a token costs: 7.3125 -> 14.625 KiB per rank (kv_attn 26.00 -> 52.00 KiB per 4-token page + kv_qsa_bkey 3.25 -> 6.50). Pool 3543 -> 6912 MiB (437k tokens, >= 2 x 200,000), and the weights slab pays for all of it: 26071 -> 22208 MiB, the pair pinned to the measured card ceiling 29,120 MiB (card 31,856 - 1,710 consumed outside both budgets - 1,024 free). The resident set that leaves VRAM spills into the pinned host pool, so 40960 -> 44928 MiB, and the prefix host tier doubles with the entry size (58.50 -> 117 KiB): 4096 -> 8192 MiB. Pinned ledger ~147 GiB, ttm floor 140000 -> 150000 (cap 200 GiB). --max-num-seqs 3 -> 2: two slots x the window is the capacity contract, and the "seqs 2 cannot boot" law is the retired tcclaviger fork's torch.compile query_start_loc constraint, not radiance's (radiance booted seqs 2 in the fp8-native era; the 2026-10-06 sweep had 2 and 3 tied inside +-3%). Bonus: the fused all-reduce is now declared over 2 x 3 = 6 rows, under the 25-row bound at which the wht6 wire is bit-exact. Cost, paid twice on this engine: idle KV VRAM is also the expert cache's spillover (lends 2.69 GiB + 740 MiB of arena), so the pool steals weight residency from the slab AND the lendable cache. Priors: 2.14 GiB of stolen weights cost 2.5% decode (MAX_MODEL_LEN 262144), the EVC ladder's other direction cost 8.9%. Prediction -3..-8% vs the fp8 control (136 t/s at 44.5k, acceptance 0.7246); the deploy boot ledger and live probes are the referee. Seams: MAX_SEQS/HOST_POOL/KV_DTYPE/PREFIX_HOST literals follow the shape, and two new invariants guard it — the KV pool must back seqs x max-model-len at the declared dtype (an engine hard limit: an over-long request is accepted then refused as too large to ever fit; the formula reproduces the fp8 boot's 386,904 to within 0.1%), and the VRAM pair must stay inside the ceiling.
This commit is contained in:
1 parent
394fd8535b
commit
0bf26b0741
3 files changed
+162
-67
No files matched your search
@@ -12,13 +12,15 @@
|
||||
# there is no per-boot VRAM planner to second-guess: the boot ledger in the
|
||||
# log states every budget before anything is allocated (weights vs KV
|
||||
# split, the expert host pool's coverage of the worst case, the PLE pin,
|
||||
# the P2P answer per pair) — read it after every resize. First-boot shape:
|
||||
# 2 decode slots (Frank's call), 40 GiB/rank pinned expert pool, fp8 KV,
|
||||
# MTP depth 3, prefix cache host 4 GiB + disk 64 GiB, PLE pinned in RAM.
|
||||
# the P2P answer per pair) — read it after every resize.
|
||||
# Deployed shape (2026-10-11): 2 decode slots x 200,000 tokens, bf16
|
||||
# (unquantized) KV in a 6,912 MiB pool, the weights slab cut to 22,208 MiB to
|
||||
# pay for it, 44 GiB/rank pinned expert pool, MTP depth 2, prefix cache host
|
||||
# 8 GiB + disk 64 GiB, PLE pinned in RAM.
|
||||
#
|
||||
# The root unit (scripts/frank-archon.service, User=dank,
|
||||
# LimitMEMLOCK=infinity) grants the pin budget: 2 x 40 GiB expert pools +
|
||||
# the 47.7 GiB PLE table + 4 GiB prefix host tier — ~132 GiB of pinned
|
||||
# LimitMEMLOCK=infinity) grants the pin budget: 2 x 44 GiB expert pools +
|
||||
# the 47.7 GiB PLE table + 8 GiB prefix host tier — ~147 GiB of pinned
|
||||
# pages, which is ALSO why this script refuses to start when ttm's
|
||||
# pages_limit/pages_max cap is under FRANK_ARCHON_TTM_MIN_MIB (see below).
|
||||
set -euo pipefail
|
||||
|
||||
Reference in new issue
Block a user