frank-default-large: swap to caf-eemin Qwen3.8-27B ROCmI4 embedded-MTP
Replace the retired kingjones ROCmFP4 STRIX MTP payload on Dankclaw with cafonz/Qwen3.8-27B-ROCmI4-MTP-GGUF (eemin namespace, public), served by the charlie12345/ROCmFPX llama.cpp build (ROCmI4 W4A4, c49ebdbd) on the Strix Halo iGPU. Q4_0_ROCMI4 with an embedded NextN/MTP head (no separate draft file); strict-Qwen MTP n16/p0.60/backend sampling on ROCm0. Binary /home/dank/rocmi4-qwen38/ROCmFPX/build-rocmi4-w4a4/bin/llama-server; model dir /home/dank/models/eemin-Qwen3.8-27B-ROCMI4-MTP. Updated serve script + env, ubatch bench, large-config bats test, docs, AGENTS.md.
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
#!/usr/bin/env bash
|
||||
# Seam: frank-default-large model, runtime, embedded-MTP spec, template.
|
||||
# Covers the ROCmI4 embedded-MTP deployment contract (charlie12345/ROCmFPX).
|
||||
#
|
||||
# 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 eemin ROCmI4 embedded-MTP GGUF" {
|
||||
grep -q '^MODEL_FILE=Qwen3.8-27B-Q4_0_ROCMI4\.gguf$' "$ENV_FILE"
|
||||
grep -q 'Qwen3.8-27B-Q4_0_ROCMI4\.gguf' "$SERVE_FILE"
|
||||
# The MTP head is embedded in the main GGUF: no separate draft file.
|
||||
grep -q '^MTP_DRAFT_FILE=$' "$ENV_FILE"
|
||||
! grep -q -- '--model-draft' "$SERVE_FILE"
|
||||
}
|
||||
|
||||
@test "frank-default-large uses charlie12345 ROCmFPX with ROCmI4 W4A4" {
|
||||
grep -q 'rocmi4-qwen38/ROCmFPX/build-rocmi4-w4a4/bin/llama-server' "$ENV_FILE"
|
||||
grep -q 'eemin-Qwen3.8-27B-ROCMI4-MTP' "$ENV_FILE"
|
||||
}
|
||||
|
||||
@test "frank-default-large runs strict-Qwen embedded MTP with backend sampling" {
|
||||
# embedded MTP: draft on ROCm0, all layers, no separate head
|
||||
grep -q -- '--spec-type draft-mtp' "$SERVE_FILE"
|
||||
grep -q -- '--spec-mtp-strict-qwen' "$SERVE_FILE"
|
||||
grep -q -- '--spec-draft-ngl all' "$SERVE_FILE"
|
||||
grep -q -- '--spec-draft-backend-sampling' "$SERVE_FILE"
|
||||
grep -qF -- '--spec-draft-n-max "$MTP_N_MAX"' "$SERVE_FILE"
|
||||
grep -qF -- '--spec-draft-p-min "$MTP_P_MIN"' "$SERVE_FILE"
|
||||
# qualified profile tunables are exposed in the env
|
||||
grep -q '^MTP_N_MAX=16$' "$ENV_FILE"
|
||||
grep -q '^MTP_P_MIN=0.60$' "$ENV_FILE"
|
||||
grep -q '^SPEC_MTP_STRICT_QWEN=on$' "$ENV_FILE"
|
||||
grep -q '^MTP_BACKEND_SAMPLING=on$' "$ENV_FILE"
|
||||
}
|
||||
|
||||
@test "frank-default-large exposes a swappable ubatch" {
|
||||
grep -q '^UBATCH_SIZE=256$' "$ENV_FILE"
|
||||
grep -q ': "${UBATCH_SIZE:=256}"' "$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 'chat-template\.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"
|
||||
}
|
||||
Reference in New Issue
Block a user