From 53ada02a638d585c7f09499279d5d364fb238add Mon Sep 17 00:00:00 2001 From: Frank Date: Sun, 16 Aug 2026 23:53:09 -0700 Subject: [PATCH] frank-default-large: PARALLEL=1, CTX 262144, split 0.50 (max 3090 weight) Single full-context slot instead of two half-context slots. The 3090 takes ~33 of 66 layers (up from 26): the VRAM budget frees up because the f16 KV pool shrinks 401400 -> 262144. 33 layers is the max with a safety margin (34 -> 244 MiB headroom, 35 -> OOM). Verified math: /tmp/vram-math.py from live journal buffers. --- scripts/frank-default-large.env | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/scripts/frank-default-large.env b/scripts/frank-default-large.env index c5b98f5..756f295 100644 --- a/scripts/frank-default-large.env +++ b/scripts/frank-default-large.env @@ -25,16 +25,17 @@ LISTEN_PORT=7770 RPC_SERVERS=192.168.0.235:50052 # Model split fractions, one per device in order [RPC0, iGPU]. -# 0.40,0.60 = 40% of layers on the 3090 (~26 layers) - the maximum that -# fits its 24 GB card with 2x200700 f16 KV (see the KV math in -# docs/Pipeline Parallelism/Qwen3.8 PP Deployment.md). The 3090 is 2-3x -# faster per layer, so shifting weight to it is also a speed win. -TENSOR_SPLIT=0.40,0.60 +# 0.50,0.50 = ~33 of 66 layers on the 3090 - the maximum that fits its +# 24 GB card at the 262144 f16 KV pool (VRAM math 2026-08-16, from live +# journal buffers: 33 layers -> ~23.9 GB used, 714 MiB margin; 34 layers +# -> 244 MiB margin; 35 -> OOM). The 3090 is 2-3x faster per layer, so +# maxing its share minimizes the per-step device time in the pipeline. +TENSOR_SPLIT=0.50,0.50 -# Context pool. 401400 total = 2 parallel slots x 200700 per slot +# Context pool. 262144 total = 1 parallel slot x 262144 per slot # (n_ctx_seq = n_ctx / n_seq_max, llama-context.cpp:293). -CTX_SIZE=401400 -PARALLEL=2 +CTX_SIZE=262144 +PARALLEL=1 # Speculative decoding. Matches production frank-default-large: MTP (bundled # head, n_max 4 per the published tuning curve) with the ngram-mod fallback. @@ -51,7 +52,8 @@ SPEC_NGRAM_MOD_N_MAX=64 SPEC_NGRAM_MOD_N_MATCH=24 # KV on GPU, unquantized (f16). 16 full-attention layers x 2 (K,V) x 4 heads -# x 256 dim x 2 bytes = 64 KiB/token -> 401400 tokens = 24.5 GiB total. +# x 256 dim x 2 bytes = 64 KiB/token -> 262144 tokens = 16.6 GiB total, +# held in proportion to the full-attention layers each device holds. # Keep K == V so Flash Attention stays enabled. CACHE_TYPE_K=f16 CACHE_TYPE_V=f16