# frank-large — gufo (gufo-org/gufo) serving # Swift-1.5-Qwen3.8-27B-Uncensored (abliterated) on the Strix Halo iGPU. # # These are the tunables read by scripts/serve-frank-large.sh. The flag # list is owned by the serve script; this file only sets fleet values. # # DO NOT name a new tunable TEMP, HOST or GPU_MAX_HEAP_SIZE: the HIP # runtime reads those bare (the 2026-08-13 TEMP incident). HOST is the one # exception because the serve script itself consumes it for --host. # The target payload (scripts/download-frank-large-q4.sh): the serve script # refuses to start without the main GGUF and the DFlash2 drafter. # # 2026-10-01 swap (Frank): unsloth/Qwen3.8-27B-GGUF:UD-Q4_K_XL, 16.35 GiB, # replacing ajgazin's abliterated Swift-1.5 UD-Q8_K_XL (29.3 GiB). Two # consequences worth knowing at a glance: # * this is the VANILLA (non-abliterated) Qwen3.8-27B — the endpoint is no # longer uncensored, which was one of the reasons the Swift payload was # chosen on 2026-09-28; # * ~13 GiB of weights became available for KV, which is what makes four # full-sized f16 sessions fit. # gufo needs no template for either: its Qwen renderer is compiled in. MODEL_DIR=/home/dank/models/Qwen3.8-27B-UD-Q4_K_XL MODEL_FILE=/home/dank/models/Qwen3.8-27B-UD-Q4_K_XL/Qwen3.8-27B-UD-Q4_K_XL.gguf # The DFlash2 drafter is UNCHANGED by the model swap and still lives beside # the previous target, so it carries its own directory. It has a sliding # window of 2048, which is what keeps its KV small (~40 MiB). DRAFTER_DIR=/home/dank/models/Qwen3.8-27B-UD-Q8_K_XL DRAFTER_FILE=/home/dank/models/Qwen3.8-27B-UD-Q8_K_XL/Qwen3.8-27B-DFlash2-Q4_K_M.gguf # The gufo runtime, built from source by scripts/build-gufo.sh. RUNTIME_DIR=/home/dank/GitPackages/gufo-v0.1.1 # Fleet endpoint: the same port and alias every frank-large has served, so # no client, probe or models.yml entry changes address. ALIAS=frank-large HOST=0.0.0.0 PORT=7770 # Four sessions, 163840 context each (Frank, 2026-10-01: "4x 160k"). The # context is per session and the KV is UNQUANTIZED (f16) — gufo has no KV # quantization lever at all (execution_policy.hpp pins kv_cache_storage to # kFp16), so "unquantized" is inherent rather than configured. # # The arithmetic that makes this fit: f16 KV costs 64 KiB/token on this model # (16 full-attention layers x 4 KV heads x 256 head_dim x 2 (K,V) x 2 bytes; # the other 48 layers are linear-attention with a per-SEQUENCE fp32 state of # ~144 MiB, not a per-token cache). 4 x 163840 = 655,360 tokens = 40.0 GiB of # KV, and each session's 163,840 tokens is exactly 10 GiB. Budget: weights # 16.35 + KV 40.0 + drafter 1.07 + linear state 0.56 + runtime ~4 = ~62 GiB # against the 114 GiB GTT — roughly 50 GiB of headroom, so the session count # or the per-session context can both grow from here. CONTEXT_SIZE=163840 SESSIONS=4 # DFlash2 spec decode (a block-diffusion drafter). gufo sizes the draft # block itself; DRAFT_TOKENS caps the proposals per step (gufo's default is # 7, chosen over llama.cpp's fixed depth 4 because gufo's adaptive policy # shortens the block when acceptance drops) and DRAFT_POLICY is the block # length controller. DRAFT_TOKENS=7 DRAFT_POLICY=adaptive