- llama-server.service: dankclaw migrated to ROCmFPX runtime (Ling-3.0-flash, draft-mtp, no-mmap/direct-io) from regular llama.cpp Qwen3.6-27B-DFlash - serve-vllm-qwen36-dflash.sh: dankserver version (relies on image 'vllm serve' entrypoint; HF cache mounted read-write) - validate-vllm.sh: dankserver multi-stream vLLM validation (4 unique prompts, 1-4 streams, prompt+completion speed) - remove superseded scripts: serve-llamacpp-dflash.sh, validate.sh, vllm-awq-qwen36-dflash-ampere.sh, vllm-qwen36.service
57 lines
2.0 KiB
Bash
Executable File
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
|