diff --git a/scripts/frank-primary.env b/scripts/frank-primary.env index b2f3b68..67bf1cc 100644 --- a/scripts/frank-primary.env +++ b/scripts/frank-primary.env @@ -55,10 +55,12 @@ SPEC_DRAFT_N_MAX=2 # whole per-block expert tensor (512 experts share one tensor), so "critical # experts" = blocks co-located on the card that holds their layers. # Measured cost: 2.42 GiB/block on ROCm0, 2.49 GiB/block on ROCm1. -# Blocks 0-3 on ROCm0 + 45-47 on ROCm1 leave ~4.9 GB / ~3.4 GB free under -# load (vision graph included). A 5th block on ROCm0 lands at 2.27 GB — -# under the 3 GB checkpoint floor — so it stays off; blocks are atomic, -# nothing lands card0 inside the 3-4 GB band. +# Blocks 0-4 on ROCm0 + 45-47 on ROCm1: card0 runs at ~2.5 GiB free at +# boot / ~2.1 GB under load (vision graph included) — the operator +# directed the fill PAST the 3 GB checkpoint floor on 2026-09-26 +# ("shift a few more experts"); measured, battery-verified. Card1 keeps +# ~3.4 GB. Card1 CANNOT take another block: 3.31 GiB free − 2.49 GiB = +# 0.82 GiB, and the vision graph + boot drift alone exceed that. # * exps=CPU — the remaining routed experts (blk.*.ffn_*_exps.weight, # ~100 GiB at Q8_0 even with 7 blocks GPU-side), read once per token; # the CPU backend computes them from page cache. @@ -72,7 +74,7 @@ SPEC_DRAFT_N_MAX=2 # (the table must stay page-cache-backed; anonymous memory # cgroup-kills silently). NGL=999 -OT_OVERRIDES='blk\.[0-3]\.ffn_(up|gate|down)_exps=ROCm0,blk\.4[5-7]\.ffn_(up|gate|down)_exps=ROCm1,exps=CPU,per_layer_token_embd.weight=CPU' +OT_OVERRIDES='blk\.[0-4]\.ffn_(up|gate|down)_exps=ROCm0,blk\.4[5-7]\.ffn_(up|gate|down)_exps=ROCm1,exps=CPU,per_layer_token_embd.weight=CPU' TENSOR_SPLIT=1,1 # The drafter MUST sit on the SECOND R9700 (ROCm1): with -ts 1,1 the main diff --git a/tests/frank_primary_unit.bats b/tests/frank_primary_unit.bats index 8b56d17..9dd7e13 100755 --- a/tests/frank_primary_unit.bats +++ b/tests/frank_primary_unit.bats @@ -66,7 +66,7 @@ REMOTE_DEPLOY="$REPO_ROOT/scripts/deploy-remote.sh" ! grep -q -- '--no-mmap' "$SERVE" ! grep -q '^MMPROJ_ON_GPU' "$ENV_FILE" ot="$(sed -nE "s/^OT_OVERRIDES='(.*)'$/\1/p" "$ENV_FILE")" - [ "$ot" = 'blk\.[0-3]\.ffn_(up|gate|down)_exps=ROCm0,blk\.4[5-7]\.ffn_(up|gate|down)_exps=ROCm1,exps=CPU,per_layer_token_embd.weight=CPU' ] + [ "$ot" = 'blk\.[0-4]\.ffn_(up|gate|down)_exps=ROCm0,blk\.4[5-7]\.ffn_(up|gate|down)_exps=ROCm1,exps=CPU,per_layer_token_embd.weight=CPU' ] } @test "the KV pool is V-quantized, K held at f16" {