Every KEY=value is byte-identical to the previous revision (diffed against git show HEAD: -- 28/25/20 keys). What left is the per-swap narration: the archon header drops 207 lines of era prose, dragoon 127, zealot 104. Each header now keeps the format lock, the digest/identity law, and one line per knob explaining what a reader editing that line cannot recover anywhere. The facts moved to their one owner: LLM/frank-archon.md, LLM/frank-dragoon.md, LLM/frank-zealot.md. One stale claim dies with the trim -- the dragoon header still said the KV pool is ONE 200,704-position budget behind 2 slots, which contradicted its own 401,408 paragraph; the page carries the correct ledger. Also kills two wrong arithmetic claims in the zealot header: the q8_0-V and CTX_SIZE=401408 rungs each free 3,840 MiB at the 524,288 pool, not 8,192 and not ~6.7 GiB.
100 lines
5.8 KiB
Bash
100 lines
5.8 KiB
Bash
# frank-archon.env — radiance (StillDeadcode) on BOTH R9700s (TP=2),
|
|
# Dankserver :7770, publisher's 4-bit-codebook container of the official
|
|
# Qwen3.8-Flash-Next.
|
|
#
|
|
# ONE OWNER: shape, payload identity, eras, laws and every measured number live
|
|
# in serverAppConfigs-docs/LLM/frank-archon.md. This file carries the knobs plus
|
|
# only the reason a reader editing THIS line cannot recover from the page.
|
|
# Where the two disagree, this file wins on values; the boot ledger arbitrates
|
|
# the engine shape.
|
|
FRANK_ARCHON_IMAGE=stilldeadcode/radiance@sha256:4c3f484564bb2872784e46b0a59cbd71becc9c1e746e301a3596ffae253c322e
|
|
# 1.0.13 is pinned by digest on purpose: 1.2.0 is a DEAD END on this payload
|
|
# (acceptance 0.7123 vs 0.7549 — the page's Dead ends section names the suspect).
|
|
# The .rad file mounted under /models; /data holds the prefix-cache disk tier.
|
|
# The model dir holds ONLY .rad files — the HF download and staging stay beside it.
|
|
FRANK_ARCHON_MODEL_DIR=/home/dank/models/rad
|
|
FRANK_ARCHON_MODEL_FILE=qwen3.8-next-flash-fp8-iq4r-moe.rad
|
|
FRANK_ARCHON_STATE_DIR=/home/dank/radiance-state
|
|
# state dir's tune/ subdir carries rad-tune's kernel-selection cache; the engine
|
|
# reads $RADIANCE_HOME/tune/<machine>.tune and that defaults to /opt/radiance
|
|
# (inside the image), so the cache only survives on a host mount.
|
|
# Container identity is the SERVICE name: one name across systemctl and
|
|
# `podman ps`; the runtime changes, the name does not. The legacy list retires
|
|
# every predecessor identity that could hold the GPUs or the port.
|
|
FRANK_ARCHON_CONTAINER=frank-archon
|
|
FRANK_ARCHON_LEGACY_CONTAINERS="frank-archon-qwen frank-archon-r9v qwen-fp8 glm-probe"
|
|
# Served id. Radiance VALIDATES the requested model name, so every client must
|
|
# send exactly this value (unlike llama.cpp and halogen, which ignore it).
|
|
FRANK_ARCHON_SERVED_NAME=frank-archon
|
|
FRANK_ARCHON_PORT=7770
|
|
# Frank's chat-template call: froggeric's fixed Qwen3.8 template, vendored in
|
|
# the repo; it overrides the template baked into the .rad, and radiance derives
|
|
# the reasoning and tool-call reply format from it.
|
|
FRANK_ARCHON_TEMPLATE=/home/dank/serverAppConfigs/scripts/qwen38-froggeric-v22.5.jinja
|
|
|
|
# --- engine shape (the boot ledger arbitrates every number below) ---------
|
|
# TP=2 needs the 2026-09-20 board (x8/x8 on root ports): a collective cannot be
|
|
# dispatched on a card whose PCIe chain lacks atomics. Radiance's wire is
|
|
# libr4d's own, not RCCL.
|
|
FRANK_ARCHON_TP=2
|
|
# Lossy WHT 6-bit wire for large all-reduces (publisher's production choice). It
|
|
# stays EXACT for single-sequence decode and any step of <= 25 rows — see
|
|
# MAX_SEQS x (1 + SPEC_TOKENS) below.
|
|
FRANK_ARCHON_TP_WIRE=wht6
|
|
# Decode slots. A slot costs KV, never decode; the pool is sized to this
|
|
# contract and nothing more, so a FOURTH full-height conversation is REFUSED as
|
|
# too large to fit — never squeezed, paged or truncated. That is Frank's
|
|
# explicit trade: the freed MiB went to the expert slab.
|
|
FRANK_ARCHON_MAX_SEQS=3
|
|
# Served window. The engine treats `kv group tokens >= max-model-len` as a HARD
|
|
# limit, and models.yml contextWindow MUST quote this number (over-length is a
|
|
# refusal, not a truncation). The pool is sized for seqs x maxlen, not one
|
|
# sequence.
|
|
FRANK_ARCHON_MAX_MODEL_LEN=200000
|
|
FRANK_ARCHON_PLACEMENT=expert_tiered
|
|
# Pinned host pool for expert rows that do not fit VRAM. It moves WITH
|
|
# VRAM_WEIGHTS: the pair and this pool serve the per-rank resident set together,
|
|
# so cutting the slab spills here — under-sizing it is a boot failure (36,864
|
|
# refused a boot). The ledger's coverage line is the referee, not this file.
|
|
FRANK_ARCHON_HOST_POOL_MIB=44928
|
|
# VRAM left unclaimed per card (publisher default 96 MiB); the engine's settle
|
|
# floor is built from it.
|
|
FRANK_ARCHON_GPU_HEADROOM_MIB=96
|
|
# ONE budget per card: VRAM_WEIGHTS + VRAM_KV <= 30,969 MiB, the ceiling the
|
|
# engine's own budget table prints (derivation and the slab/pool price: the
|
|
# page's VRAM laws). Idle KV VRAM is ALSO the expert cache's spillover, so a
|
|
# bigger pool pays twice — which is why the pool sits at the contract and the
|
|
# slab takes the rest.
|
|
FRANK_ARCHON_VRAM_WEIGHTS_MIB=25600
|
|
FRANK_ARCHON_VRAM_KV_MIB=5120
|
|
# fp8 is the ONLY rung below bf16 on this engine: one kv_dtype for the whole
|
|
# cache, so llama.cpp's exact-K/quantized-V split (frank-zealot) is unservable
|
|
# here. bf16 costs 1.89x fp8, not 2x — the QSA block-key plane is dtype-fixed.
|
|
FRANK_ARCHON_KV_DTYPE=fp8
|
|
# The checkpoint's own MTP head at depth 2: this fleet's ladder was measured at
|
|
# 2, and 3 x (1+2) = 9 rows stays inside the wht6 25-row exactness bound.
|
|
FRANK_ARCHON_SPEC_TOKENS=2
|
|
FRANK_ARCHON_MAX_BATCHED_TOKENS=2048
|
|
# Prefix cache tiers. The host tier is sized in ENTRIES and one entry tracks the
|
|
# cache dtype (58.50 KiB at fp8), so a dtype change re-sizes the parked set
|
|
# without touching these numbers.
|
|
FRANK_ARCHON_PREFIX_HOST_MIB=8192
|
|
FRANK_ARCHON_PREFIX_DISK_MIB=65536
|
|
# Frank's pin law: the PLE n-gram table serves from pinned host RAM the cards
|
|
# read. `ram` REFUSES the start if memlock is too small — the unit's
|
|
# LimitMEMLOCK=infinity is the other half of this law.
|
|
FRANK_ARCHON_NGRAM_PLACEMENT=ram
|
|
# TTM preflight. The pinned ledger (~147 GiB) rides TTM's shared pages, and the
|
|
# kernel RESETS pages_limit to half of RAM on every boot; below the plan the
|
|
# load dies mid-pin with an anonymous allocator error. ttm-preflight.sh raises
|
|
# the knob itself before refusing by name, so recovery is a boot, not a visit.
|
|
FRANK_ARCHON_TTM_MIN_MIB=150000
|
|
FRANK_ARCHON_TTM_TARGET_MIB=204800
|
|
# Escape hatch for experiments. Unset -> no extra argv; the serve script expands
|
|
# this unquoted on purpose, so keep multi-flag values as one string.
|
|
FRANK_ARCHON_EXTRA_ARGS=
|
|
# Deployer gate: a truncated fetch must be a fast refusal, not a long-timeout
|
|
# boot. Floor sits under the live payload and under every rollback payload
|
|
# (see the page's Eras table for what is on disk and what needs a re-download).
|
|
FRANK_ARCHON_RAD_MIN_MIB=110000
|