Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Running vLLM (Docker)

WIP: See Verification status.

Image matrix

Base images — blivioniag/rocm-rdna

TagROCmPyTorchTriton
7.2.07.2.02.12.03.5.1
7.14.07.14.02.12.03.7.1

Bake target base-rocm714 pins torch 2.12.0+rocm7.14.0. The docker-repo README still says 2.13.0 for this tag — treat that README cell as stale; confirm with python -c "import torch; print(torch.__version__)" inside a pulled container.

These are a general-purpose ROCm PyTorch base for RDNA — useful on their own if you just want a working torch on a Radeon card.

vLLM images — blivioniag/vllm-rdna

TagvLLMBaseVariant
v0.31.0-extras / v0.31.0-extras-rocm7.14.0v0.31.0ROCm 7.14 (same digest)rdna_extras fork — current extras bake. #announcements (11 Oct 2026): torch 2.12, Triton 3.7.1. Flash-Next MTP-2 (BF16 + INT4-disk) served from this image.
v0.28.0-extras / v0.28.0-extras-rocm7.14.0v0.28.0ROCm 7.14Historical extras. Source now rdna_extra/v0.28.0. Prefer v0.31.0-extras unless you need the old line.
v0.27.1v0.27.1rocm-rdna:7.2.0upstream
v0.27.1-rocm7.14.0v0.27.1rocm-rdna:7.14.0upstream — #vllm-rdna Sep 24: can remove; prefer -extras or host build
v0.27.1-extrasv0.27.1rocm-rdna:7.2.0Older rdna_extras bake (Aug 2026). Keep only for A/B.
v0.27.1-extras-rocm7.14.0v0.27.1rocm-rdna:7.14.0Same as v0.27.1-extras (same digest).
v0.26.0v0.26.0rocm-rdna:7.2.0upstream
v0.22.1v0.22.1—upstream

The -extras tags ship the rdna_extras fork (hand-written RDNA2 HIP kernels: FlashAttention, quantized GEMM, MoE, GDN, …). Check Docker Hub for the current tag list. Tags are refreshed in place — docker pull before debugging.

#announcements (11 Oct 2026): v0.31.0-extras is the current extras image — rdna_extras is now the v0.31.0 port, and that bake served Flash-Next MTP-2. First-time path: Onboard on V620. Older Hub tags (v0.27.1-extras*, v0.28.0-extras*) do not track HEAD. For kernels newer than the bake, clone the org repo and follow Host venv + serve_rdna.sh. Use rocm-rdna:7.14.0 if you only need a ROCm packaging base.

Multi-GPU: pick a 7.2.0 or 7.14.0 tag, not a host ROCm in the 7.2.1–7.13 gap. RCCL on those in-between releases is reported broken with more than one card — see Installing ROCm.

Every image bakes these PYTORCH_ROCM_ARCH targets: gfx1030;gfx1100;gfx1101;gfx1150;gfx1151;gfx1200;gfx1201.

Run it

docker run -it --rm \
  --device /dev/kfd --device /dev/dri \
  --group-add video --group-add render \
  --security-opt seccomp=unconfined \
  --ipc host \
  -p 8000:8000 \
  -v "$HOME/.cache/huggingface:/root/.cache/huggingface" \
  docker.io/blivioniag/vllm-rdna:v0.31.0-extras \
  vllm serve cyankiwi/Qwen3.8-27B-AWQ-INT4 \
    --dtype float16 \
    --max-model-len 8192 \
    --language-model-only --skip-mm-profiling --trust-remote-code

First-time V620 walkthrough (Docker + fork launcher): Onboard on V620.

  • Give the container the GPU with --device /dev/kfd --device /dev/dri and the video and render groups. Missing render is a common #vllm-rdna cause of Failed to infer device type.
  • Prefer --dtype float16. RDNA2 has weak/emulated BF16; letting vLLM pick bf16 from a model’s config.json can trigger slow float32 fallbacks.
  • The 27B AWQ example is the current #vllm-rdna day-to-day dense pick (Sep 2026). For a smaller smoke test, swap in any instruct model that fits VRAM. Model / card-count matrix: Recipes.
  • For a non-Navi-21 RDNA2 card (gfx1031/1032/…), add -e HSA_OVERRIDE_GFX_VERSION=10.3.0. See HSA_OVERRIDE.
  • Multi-GPU: add --tensor-parallel-size N; enabling PCIe P2P helps a lot here.

Query the OpenAI-compatible endpoint:

curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model":"cyankiwi/Qwen3.8-27B-AWQ-INT4","messages":[{"role":"user","content":"Hi from gfx1030!"}]}'

Next steps