frank-small: --attention-backend flag (env var removed in this build)

The VLLM_ATTENTION_BACKEND env var does not exist in this vLLM dev
build (warns 'Unknown vLLM environment variable' and is ignored), so
the pin landed nowhere and Gemma4's hook force-selected TRITON_ATTN
again. Pass --attention-backend TURBOQUANT as a CLI flag instead.
This commit is contained in:
Frank committed 2026-09-19 00:17:41 -07:00
1 parent 966b70db1a
commit 7e6ef1ac99
3 files changed
+18 -12

No files matched your search

+10 -8
View File
@@ -85,14 +85,16 @@ LISTEN_PORT=8000
MAX_MODEL_LEN=262144 MAX_MODEL_LEN=262144
GPU_MEM_UTIL=0.95 GPU_MEM_UTIL=0.95
KV_CACHE_DTYPE=turboquant_k8v4 KV_CACHE_DTYPE=turboquant_k8v4
# Gemma4's config hook force-selects TRITON_ATTN for the mixed 256/512 head # ATTENTION_BACKEND: Gemma4's config hook force-selects TRITON_ATTN for the
# dims, but only when no backend is selected — and TRITON_ATTN rejects the # mixed 256/512 head dims whenever no backend is selected, and TRITON_ATTN
# turboquant KV dtype (measured: ValueError "kv_cache_dtype not supported", # rejects the turboquant KV dtype (measured: ValueError "kv_cache_dtype not
# crash loop). Pin the TURBOQUANT backend explicitly: it accepts any head # supported", crash loop). Pin the TURBOQUANT backend explicitly via the
# size, the turboquant dtypes, and has the Ampere path, and the Gemma4 MTP # --attention-backend flag (this vLLM build removed the VLLM_ATTENTION_
# speculator carries the target's selected backend through to the draft # BACKEND env var — it warns "Unknown vLLM environment variable" and
# layers, so the drafter follows. # ignores it). The TURBOQUANT backend accepts any head size and the
VLLM_ATTENTION_BACKEND=TURBOQUANT # turboquant_* dtypes, and the Gemma4 MTP speculator carries the target's
# selected backend through to the draft layers, so the drafter follows.
ATTENTION_BACKEND=TURBOQUANT
MAX_NUM_SEQS=16 MAX_NUM_SEQS=16
MAX_NUM_BATCHED_TOKENS=16384 MAX_NUM_BATCHED_TOKENS=16384
SPEC_NUM_TOKENS=4 SPEC_NUM_TOKENS=4
+2
View File
@@ -44,6 +44,7 @@ fi
: "${MAX_NUM_SEQS:=16}" : "${MAX_NUM_SEQS:=16}"
: "${MAX_NUM_BATCHED_TOKENS:=16384}" : "${MAX_NUM_BATCHED_TOKENS:=16384}"
: "${SPEC_NUM_TOKENS:=4}" : "${SPEC_NUM_TOKENS:=4}"
: "${ATTENTION_BACKEND:=TURBOQUANT}"
: "${ENFORCE_EAGER:=0}" : "${ENFORCE_EAGER:=0}"
# Fail loudly rather than half-loading a model into VRAM: a missing file here # Fail loudly rather than half-loading a model into VRAM: a missing file here
@@ -66,6 +67,7 @@ VLLM_FLAGS=(
--kv-cache-dtype "$KV_CACHE_DTYPE" --kv-cache-dtype "$KV_CACHE_DTYPE"
--max-num-seqs "$MAX_NUM_SEQS" --max-num-seqs "$MAX_NUM_SEQS"
--max-num-batched-tokens "$MAX_NUM_BATCHED_TOKENS" --max-num-batched-tokens "$MAX_NUM_BATCHED_TOKENS"
--attention-backend "$ATTENTION_BACKEND"
--speculative-config "$SPEC_CONFIG" --speculative-config "$SPEC_CONFIG"
--reasoning-parser gemma4 --reasoning-parser gemma4
--enable-auto-tool-choice --enable-auto-tool-choice
+6 -4
View File
@@ -113,10 +113,12 @@ QUADLET_LARGE="$REPO_ROOT/dankclaw/frank-large/quadlet/frank-large.container"
# (head_dim 256) and full-attention (head_dim 512) layers, and fp8 is # (head_dim 256) and full-attention (head_dim 512) layers, and fp8 is
# hardware-dead on sm_86 anyway. # hardware-dead on sm_86 anyway.
[ "$kvdtype" = "turboquant_k8v4" ] [ "$kvdtype" = "turboquant_k8v4" ]
# The TURBOQUANT backend must be pinned explicitly: Gemma4's config # The TURBOQUANT backend must be pinned via --attention-backend:
# hook force-selects TRITON_ATTN (mixed 256/512 head dims) whenever no # Gemma4's config hook force-selects TRITON_ATTN (mixed 256/512 head
# backend is selected, and TRITON_ATTN rejects the turboquant dtype. # dims) whenever no backend is selected, and TRITON_ATTN rejects the
grep -q '^VLLM_ATTENTION_BACKEND=TURBOQUANT$' "$ENV_FILE" # turboquant dtype. This vLLM build has no attention-backend env var.
grep -q '^ATTENTION_BACKEND=TURBOQUANT$' "$ENV_FILE"
grep -q -- '--attention-backend "$ATTENTION_BACKEND"' "$SERVE"
# The 3090 is dedicated to this service, so the engine may take most of # The 3090 is dedicated to this service, so the engine may take most of
# it; the KV pool, not the seq ceiling, caps full-context concurrency. # it; the KV pool, not the seq ceiling, caps full-context concurrency.
[ "$util" = "0.95" ] [ "$util" = "0.95" ]