gufo is a vertical inference engine built for exactly this hardware (Ryzen AI MAX+ 395 / Radeon 8060S, gfx1151), and Dankclaw's frank-large has swapped runtimes seven times in search of a better one. This one ships no prebuilt Linux binary, so the runtime is BUILT FROM SOURCE on the host and the payload, port, alias and client contract stay exactly where they are. Runtime: gufo v0.1.1 (b0f8673) at /home/dank/GitPackages/gufo-v0.1.1, built by the new scripts/build-gufo.sh. It links the host ROCm 7.2.4 through its RPATH — the opposite of the unsloth prebuilt it replaces, which carried its own — so two host workarounds are encoded in that script: Ubuntu's librocwmma-dev installs a truncated rocWMMA header set that shadows AMD's and cannot be overridden with -I in HIP mode, and the ROCm clang prefers Ubuntu 26.04's GCC 16 headers over the GCC 15 whose libstdc++ is actually installed. Shape is unchanged: one session, full 262144 ctx, the same UD-Q8_K_XL target and the same DFlash2 drafter, greedy, text-only. Speculation moves from llama.cpp's fixed depth 4 to gufo's adaptive block policy capped at 7 proposals. Client-contract deltas, all documented: the chat template is compiled into the binary (no --chat-template-file, so the Qwen-Sharp 73k-token failure mode is gone), reasoning_effort now takes the full OpenAI set (so models.yml's reasoningEffortMap fold is no longer required — kept anyway, so this commit does not also move every high role from xhigh to high effort), and there is no KV-quant or prompt-cache-RAM flag. The test seam now runs the serve script against a stub engine and asserts on the argv it actually execs, instead of grepping the script's text. The deploy handler gates on the runtime binary and returns before it stops the serving unit. Measured trade, from gufo's own Q8_K_XL tables against llama.cpp b11069: prefill +37% to +80%, cold load 4.5x faster, decode +7% at zero depth — but -14% at 65,536 tokens of depth and -24% at 131,072. On the 8-bit target the crossover is ~32k, and frank-large runs one 262,144 conversation. The Q4_K_XL target shows no such regression.
37 lines
1.5 KiB
Bash
37 lines
1.5 KiB
Bash
# frank-large — gufo (gufo-org/gufo) serving
|
|
# unsloth/Qwen3.8-27B-GGUF:UD-Q8_K_XL on the Strix Halo iGPU (gfx1151).
|
|
#
|
|
# 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 payload (scripts/download-frank-large.sh): the serve script refuses to
|
|
# start without the main GGUF and the DFlash2 drafter. Both files are the
|
|
# same ones the llama.cpp deployment used — the cutover changed the RUNTIME,
|
|
# not the weights.
|
|
MODEL_DIR=/home/dank/models/Qwen3.8-27B-UD-Q8_K_XL
|
|
|
|
# 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 prior frank-large served, so
|
|
# no client, probe or models.yml entry changes address.
|
|
ALIAS=frank-large
|
|
HOST=0.0.0.0
|
|
PORT=7770
|
|
|
|
# One session, full 262144 context (the model's native window).
|
|
CONTEXT_SIZE=262144
|
|
SESSIONS=1
|
|
|
|
# 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
|