fix(frank-archon): declare two slots, revert the inert host-pool raise
FRANK_ARCHON_MAX_SEQS 3 -> 2. At 1.8.1 the budget resolver sizes the KV cache from the cache bound (--max-model-len x --max-num-seqs), --gpu-headroom-mib and --host-pool-mib, and the shipped CLI has no KV-size flag (the --vram-weights-mib/--vram-kv-mib pair was removed at 1.3.0). The live boot ledger reads that cache at 4.20 GiB = 556,348 tokens = 2.8 sessions at 200,000, so a third full-height conversation is refused while /health answers green and the harness advertises capacity the engine cannot honour. Two slots is what the shape actually serves at the full window; a slot costs KV, never decode, and the fused TP all-reduce drops from 9 rows to 2 x (1 + spec) = 6, still inside wht6's 25-row bit-exact bound. FRANK_ARCHON_HOST_POOL_MIB back to 44928 and FRANK_ARCHON_TTM_MIN_MIB back to 150000, reverting PR #30. That raise bought cache the resolver never hands out: the two boot ledgers differ in exactly one line -- host_pool 44.47 -> 45.09 GiB -- while vram_weights (25.81 GiB) and vram_kv (4.20 GiB / 556,348 tokens, both ranks) are byte-identical, so the extra 640 MiB sat unclaimed in the host pool while the TTM floor moved out from under the preflight's arithmetic. The compute-bound cap on --host-pool-mib is unchanged either way (45,568 -> 22,222 MiB of experts either side of the 22,222 clamp). The bats seam pins the new contract: MAX_SEQS=2, pool 44,928, and the ledger floor that computes to 148,920 MiB at that pool against the 150,000 minimum.
This commit is contained in:
@@ -135,14 +135,17 @@ nosudo_bin() {
|
||||
grep -q '^FRANK_ARCHON_MAX_MODEL_LEN=200000$' "$ENV_FILE"
|
||||
ml=$(awk -F= '/^FRANK_ARCHON_MAX_MODEL_LEN=/{print $2}' "$ENV_FILE")
|
||||
[ "$ml" -ge 177356 ]
|
||||
# Concurrency: 3 slots x the served window is the capacity contract, and
|
||||
# the fused TP all-reduce is declared over seqs x (1 + spec) = 9 rows,
|
||||
# Concurrency: 2 slots x the served window is the capacity contract at
|
||||
# 1.8.1. The budget resolver caps the cache at 556,348 fp8 tokens — 2.8
|
||||
# sessions at 200,000 — so three concurrent full-height chats answer 400,
|
||||
# and the shipped CLI has no KV-size flag to raise it (removed at 1.3.0).
|
||||
# The fused TP all-reduce is declared over seqs x (1 + spec) = 6 rows,
|
||||
# under the 25-row bound at which the wht6 wire stays bit-exact. The
|
||||
# "seqs 2 cannot boot" law belongs to the retired tcclaviger vLLM fork
|
||||
# (torch.compile query_start_loc constraint, 2026-10-02); radiance booted
|
||||
# seqs 2 in the fp8-native era and the 2026-10-06 sweep had seqs 2 and 3
|
||||
# tied inside the +-3% noise floor — slots buy concurrency, not speed.
|
||||
grep -q '^FRANK_ARCHON_MAX_SEQS=3$' "$ENV_FILE"
|
||||
grep -q '^FRANK_ARCHON_MAX_SEQS=2$' "$ENV_FILE"
|
||||
grep -q '^FRANK_ARCHON_TP=2$' "$ENV_FILE"
|
||||
grep -q '^FRANK_ARCHON_TP_WIRE=wht6$' "$ENV_FILE"
|
||||
grep -q '^FRANK_ARCHON_SPEC_TOKENS=2$' "$ENV_FILE"
|
||||
@@ -155,7 +158,7 @@ nosudo_bin() {
|
||||
# so the pool's token count is a boot-ledger line — verified live by the
|
||||
# capacity leg of scripts/probe-frank-archon-kv.py at every cutover.
|
||||
grep -q '^FRANK_ARCHON_PLACEMENT=expert_tiered$' "$ENV_FILE"
|
||||
grep -q '^FRANK_ARCHON_HOST_POOL_MIB=45568$' "$ENV_FILE"
|
||||
grep -q '^FRANK_ARCHON_HOST_POOL_MIB=44928$' "$ENV_FILE"
|
||||
grep -q '^FRANK_ARCHON_KV_DTYPE=fp8$' "$ENV_FILE"
|
||||
grep -q '^FRANK_ARCHON_NGRAM_PLACEMENT=ram$' "$ENV_FILE"
|
||||
# Prefix cache: pinned host RAM only (the disk tier was removed), and the
|
||||
|
||||
Reference in New Issue
Block a user