Files
serverAppConfigs/old/scripts/serve-vllm-qwen36-dflash.sh
T
Frank d9af7f1d19 fleet redo 2026-08-17: retire PP+NPU, new topology
- Move all previous scripts to old/scripts/ (retired PP/NPU-era)
- frank-default-large: llama.cpp FastMTP on dankserver (HauhauCS
  Qwen3.8-27B IQ4_XS + FastMTP 32K draft + ngram-mod, K q8_0/V f16,
  128K ctx, batch 2048/ubatch 1024, port 7770)
- frank-default-small: vLLM ROCm on dankclaw (Avesed Qwen3.6-35B-A3B
  INT8 W8A8, full 262144 ctx, no KV quant, 4 seqs, batch 16384,
  ngram spec, port 52625)
- retarget deploy.sh (dankserver/dankclaw, inline sudo, no helpers)
- docs: deployment + index + AGENTS.md + README for new topology,
  superseded banners on retired docs, add frank-redo-2026-08-17 runbook
2026-08-17 15:23:46 -07:00

57 lines
2.0 KiB
Bash
Executable File

#!/usr/bin/env bash
# Serve Qwen3.6-35B-A3B-FP8 with DFlash speculative decoding via vLLM on NVIDIA RTX 3090
# Uses Podman container with CUDA support
# 4 parallel streams, full context (262K) each
set -euo pipefail
# Configuration
MODEL="${MODEL:-Qwen/Qwen3.6-35B-A3B-FP8}"
DRAFT_MODEL="${DRAFT_MODEL:-z-lab/Qwen3.6-35B-A3B-DFlash}"
PORT="${PORT:-8000}"
GPU_MEM_UTIL="${GPU_MEM_UTIL:-0.95}"
MAX_NUM_SEQS="${MAX_NUM_SEQS:-4}"
MAX_MODEL_LEN="${MAX_MODEL_LEN:-262144}"
KV_CACHE_DTYPE="${KV_CACHE_DTYPE:-fp8}"
NUM_SPEC_TOKENS="${NUM_SPEC_TOKENS:-8}"
CONTAINER_NAME="${CONTAINER_NAME:-vllm-qwen36-dflash}"
HF_CACHE="${HF_CACHE:-/home/dank/.cache/huggingface}"
GPU_LIBS="${GPU_LIBS:-/usr/lib/x86_64-linux-gnu}"
echo "Starting vLLM server in Podman..."
echo " Target model: ${MODEL}"
echo " Draft model: ${DRAFT_MODEL}"
echo " Port: ${PORT}"
echo " GPU mem util: ${GPU_MEM_UTIL}"
echo " Max seqs: ${MAX_NUM_SEQS}"
echo " Context len: ${MAX_MODEL_LEN}"
echo " KV cache: ${KV_CACHE_DTYPE}"
echo " Spec tokens: ${NUM_SPEC_TOKENS}"
echo ""
# Remove existing container if present
podman rm -f "${CONTAINER_NAME}" 2>/dev/null || true
# Run vLLM in Podman container (foreground mode for systemd)
# Note: vllm/vllm-openai image has entrypoint "vllm serve", so we pass args directly
exec podman run --name "${CONTAINER_NAME}" \
--device /dev/nvidia0 \
--device /dev/nvidiactl \
--device /dev/nvidia-uvm \
--device /dev/nvidia-uvm-tools \
--device /dev/nvidia-modeset \
-v "${GPU_LIBS}:/usr/lib/x86_64-linux-gnu:ro" \
-v "${HF_CACHE}:/root/.cache/huggingface" \
-p "${PORT}:${PORT}" \
docker.io/vllm/vllm-openai:latest \
"${MODEL}" \
--port "${PORT}" \
--host "0.0.0.0" \
--kv-cache-dtype "${KV_CACHE_DTYPE}" \
--gpu-memory-utilization "${GPU_MEM_UTIL}" \
--max-num-seqs "${MAX_NUM_SEQS}" \
--max-model-len "${MAX_MODEL_LEN}" \
--spec-method dflash \
--spec-model "${DRAFT_MODEL}" \
--spec-tokens "${NUM_SPEC_TOKENS}" \
--trust-remote-code