frank-default-large now serves the kingjones Qwen3.8-27B-ROCmFPX-Q8_0-AGENT
model with a standalone MTP draft head (Q4_0), f16 K + TurboQuant V KV cache,
and the Sharp chat template. Context is maxed to 262144 (one slot); reasoning
is on with preserve_thinking + preserve_reasoning in the chat kwargs.
- frank-default-large.env: Q8_0 AGENT model paths, CTX_SIZE=262144, REASONING=on,
REASONING_FORMAT=none, CHAT_TEMPLATE_KWARGS {enable_thinking, preserve_thinking,
preserve_reasoning}
- serve-frank-large.sh: standalone draft-mtp profile (already switched off the
Kairic/PromptForge path)
- download-q8agent.sh: reproducible HF fetch of the three payload files
- docs/LLM/kingjones-q8agent-rocmfpx.md: Q8_0 AGENT runbook
- AGENTS.md: topology + ACTIVE runtime section + TTM/GTT load note
- qwen3.8-strix-optimizations, Dankclaw Improvements: TTM pages_limit now 114 GiB
(applied 2026-08-25), full 262k KV + Q8 payload fit in one slot
- frank_large_config.bats: assert 262144 context, reasoning + preserve_* enabled
The TTM/GTT was raised to 114 GiB (29,883,536 pages) to hold the full 262k KV.
74 lines
2.6 KiB
Bash
74 lines
2.6 KiB
Bash
#!/usr/bin/env bash
|
|
# Seam: frank-default-large model, ROCmFPX runtime, MTP, KV cache, template.
|
|
#
|
|
# load helpers
|
|
|
|
load helpers
|
|
|
|
ENV_FILE="$REPO_ROOT/scripts/frank-default-large.env"
|
|
SERVE_FILE="$REPO_ROOT/scripts/serve-frank-large.sh"
|
|
UNIT_FILE="$REPO_ROOT/scripts/frank-default-large.service"
|
|
TEMPLATE_FILE="$REPO_ROOT/scripts/chat-template.jinja"
|
|
|
|
@test "frank-default-large serves the kingjones AGENT model" {
|
|
grep -q '^MODEL_FILE=Qwen3\.8-27B-Q8_0_ROCMFPX_AGENT\.gguf$' "$ENV_FILE"
|
|
grep -q '^MTP_DRAFT_FILE=' "$ENV_FILE"
|
|
! grep -q -- '--kairic-edge' "$SERVE_FILE"
|
|
}
|
|
|
|
@test "frank-default-large uses the ROCmFPX runtime" {
|
|
grep -q 'ROCmFPX/.*/bin/llama-server' "$ENV_FILE"
|
|
grep -q 'build-kairic/bin/llama-server' "$ENV_FILE"
|
|
}
|
|
|
|
@test "frank-default-large runs standalone MTP" {
|
|
grep -q -- '--spec-type draft-mtp' "$SERVE_FILE"
|
|
grep -qF -- '--model-draft "$MTP_DRAFT_FILE"' "$SERVE_FILE"
|
|
grep -qF -- '--spec-draft-n-max "$MTP_N_MAX"' "$SERVE_FILE"
|
|
grep -q '^MTP_N_MAX=4$' "$ENV_FILE"
|
|
}
|
|
|
|
@test "frank-default-large has no obsolete PromptForge sidecar wiring" {
|
|
! grep -qE 'KAIRIC_|PROMPTFORGE_' "$SERVE_FILE"
|
|
! grep -qE 'KAIRIC_|PROMPTFORGE_' "$ENV_FILE"
|
|
}
|
|
|
|
@test "frank-default-large fits the model and KV cache in unified memory" {
|
|
grep -q '^CTX_SIZE=262144$' "$ENV_FILE"
|
|
grep -q ': "${CTX_SIZE:=262144}"' "$SERVE_FILE"
|
|
}
|
|
|
|
@test "frank-default-large has reasoning and preserved reasoning/thinking enabled" {
|
|
grep -q '^REASONING=on$' "$ENV_FILE"
|
|
grep -q 'enable_thinking":true' "$ENV_FILE"
|
|
grep -q 'preserve_thinking":true' "$ENV_FILE"
|
|
grep -q 'preserve_reasoning":true' "$ENV_FILE"
|
|
}
|
|
|
|
@test "frank-default-large uses Turbo4 only for the V cache" {
|
|
grep -q '^CACHE_TYPE_K=f16$' "$ENV_FILE"
|
|
grep -q '^CACHE_TYPE_V=turbo4$' "$ENV_FILE"
|
|
grep -qF -- '-ctk "$CACHE_TYPE_K" -ctv "$CACHE_TYPE_V"' "$SERVE_FILE"
|
|
}
|
|
|
|
@test "frank-default-large exposes a swappable ubatch" {
|
|
grep -q '^UBATCH_SIZE=512$' "$ENV_FILE"
|
|
grep -q ': "${UBATCH_SIZE:=512}"' "$SERVE_FILE"
|
|
grep -q -- '-ub "$UBATCH_SIZE"' "$SERVE_FILE"
|
|
}
|
|
|
|
@test "frank-default-large uses the tracked Qwen-Sharp template on :7770" {
|
|
grep -q '^CHAT_TEMPLATE_FILE=' "$ENV_FILE"
|
|
grep -q -- '--jinja' "$SERVE_FILE"
|
|
[ -s "$TEMPLATE_FILE" ]
|
|
grep -q '^ALIAS=frank-default-large$' "$ENV_FILE"
|
|
grep -q '^LISTEN_PORT=7770$' "$ENV_FILE"
|
|
grep -q 'frank-default-large' "$UNIT_FILE"
|
|
}
|
|
|
|
@test "frank-default-large env avoids the HIP TEMP/HOST collision" {
|
|
# The 2026-08-13 incident: TEMP/HOST/GPU_MAX_HEAP_SIZE are HIP runtime vars.
|
|
! grep -qE '^(TEMP|HOST|GPU_MAX_HEAP_SIZE)=' "$ENV_FILE"
|
|
grep -q '^TEMPERATURE=' "$ENV_FILE"
|
|
}
|