serving-llms-on-instinct
Serves AI models on AMD Instinct GPU hardware using vLLM.
Skill by amd
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/amd-serving-llms-on-instinct
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: devops, data
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 10
codeload.github.com· found in install commanddocs.vllm.ai· found in codedownload.pytorch.org· found in codegithub.com· found in codehub.docker.com· found in codehuggingface.co· found in codepaddlepaddle.org.cn· found in coderaw.githubusercontent.com· found in coderocm.docs.amd.com· found in codewheels.vllm.ai· found in code
Files it touches
~/.claude/skills/serving-llms-on-instinct
Tools it pre-approves 2
From allowed-tools in SKILL.md: the agent may use these without asking you each time.
Bash,Read
What's inside
- Skill name
serving-llms-on-instinct- Description
- Serves AI models on AMD Instinct GPU hardware using vLLM. Use this skill whenever the user wants to run, serve, deploy, start, host, or launch a language model on an AMD GPU, AMD Instinct, MI300X, MI325X, MI350X, or MI355X. Also use when the user mentions vLLM on ROCm, vLLM on AMD, serving on HBM, or asks how to get a model running on AMD data center hardware. Use when the user asks "run Qwen3", "serve DeepSeek", "start a vLLM endpoint", "get a model running on my AMD machine", or any similar phrasing. Handles the full flow: GPU detection, environment validation, vLLM configuration, launch, and health verification. Do not use for NVIDIA GPUs, consumer AMD GPUs (RX series, Radeon), Ryzen AI, NPU, MI250X, or MI100.
- License
- MIT
- Allowed tools
- Bash,, Read
- Instructions
- 345 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
- Pre-approves some shell commands
- Instructions call the network
Files (13)
- SKILL.md
- blacklist.json · data/
- gpu_overrides.json · data/
- recipes_cache.json · data/
- evals.json · evals/
- hooks.py · evals/
- machine.yml · evals/
- reference.md
- detect.py · scripts/
- estimate_vram.py · scripts/
- sync_recipes.py · scripts/
- validate.py · scripts/
- skill-card.md
SKILL.md (first lines)
# Serving LLMs on AMD Instinct
Get a vLLM endpoint running on AMD Instinct GPU hardware.
## Prerequisites
- ROCm driver and `amd-smi` installed on the GPU host
- Docker running and accessible (check with `docker ps`)
- `/dev/kfd` and `/dev/dri` present on the GPU host
- HuggingFace token in `HF_TOKEN` env var (required for gated models; not
required for Qwen3 or Gemma). For gated models (Llama 3.2, Gemma, etc.),
the HF token must belong to an account that has accepted the model's license
at `huggingface.co/<model_id>`. A valid token without license acceptance will
fail with an opaque "Engine core initialization failed" error.
- For remote GPU: SSH key access configured (`ssh <user>@<host>` must work
without a password prompt). If only password access is available, set up
keys first: `ssh-copy-id <user>@<host>`
## Data files
Read these files directly to get model and GPU configuration:
- **`data/recipes_cache.json`** -- model configs synced from
[vllm-project/recipes](https://github.com/vllm-project/recipes). Each entry
under `models.<HF_ID>.recipe` contains the full recipe with `model.base_args`,
`model.base_env`, `features.tool_calling.args`, `features.reasoning.args`,
`hardware_overrides.amd.extra_args`, `hardware_overrides.amd.extra_env`.
The top-level `docker_image` field has the latest resolved vLLM ROCm image.
- **`data/gpu_overrides.json`** -- GPU-specific configuration. Contains
`docker_flags` (mandatory for all AMD Instinct), `gpu_configs` keyed by
gfx_version with `env_defaults` and `workarounds`, and `legacy_models` for
models not yet in vLLM recipes.
- **`data/blacklist.json`** -- models in vLLM recipes that cannot be served
as LLM endpoints. Includes diffusion/image/audio generation models, embedding
models, rerankers, ASR models needing audio pipelines, and models requiring
unreleased vLLM nightly builds. Check this before attempting to serve a model.
If the user requests a blacklisted model, explain why it won't work and
suggest an alternative.
If the user doesn't specify a model, default to **Qwen/Qwen3.5-9B**: dense
multimodal with MTP, Apache 2.0 license (no HF token needed), fits on a single
GPU, strong reasoning and tool-calling.
## Step 1: Detect the GPU
```bash
python3 scripts/detect.py
# Remote:
python3 scripts/detect.py --host user@hostname
```
Returns JSON with `gfx_version`, `vram_gb`, `gpu_count`, `rocm_version`.
| gfx_version | Hardware | VRAM |
|---|---|---|
| gfx950 | MI350X / MI355X | 288 GB HBM3E |
| gfx942 | MI300X (192 GB) / MI325X (256 GB) / MI300A (128 GB) | varies |
If `gfx_version` is `unknown`: `amd-smi` ran but found no GPU. Check
`lsmod | grep amdgpu`.
## Step 2: Validate the environment
```bash
python3 scripts/validate.py --auto-fix
# Remote:
python3 scripts/validate.py --auto-fix --host user@hostname
```
Returns JSON with `ready` (bool), `errors`, `warnings`, `fixes_applied`.
Do not proceed if `ready` is `false`.
## Step 3: Refresh recipes (if stale)
Check `fetched_at` in `data/recipes_cache.json`. If older than 24 hours or
the file is missing, refresh:
```bash
python3 scripts/sync_recipes.py
```
This shallow-clones vllm-project/recipes from GitHub and fetches the latest
Docker tag from Docker Hub. Takes ~10 seconds. If it fails, the existing
cache still works.
## Step 4: Construct the Docker command
Read `data/recipes_cache.json` and `data/gpu_overrides.json` directly.
Build the Docker command by combining:
1. **Docker flags** from `gpu_overrides.json > docker_flags` (mandatory for all AMD GPUs)
2. **HF cache mount**: `-v ~/.cache/huggingface:/root/.cache/huggingface`
(if a shared model cache directory exists on the host, check whether
`models--*` directories are at the cache root or inside a `hub/`
subdirectory -- mount accordingly to `/root/.cache/huggingface` or
`/root/.cache/huggingface/hub`)
3. **Port**: `-p <port>:<port>` (default 8000)
4. **Environment variables**: merge `gpu_configs.<gfx_version>.env_defaults`
with the recipe's `model.base_env` and `hardware_overrides.amd.extra_env`.
Always add `--env HF_TOKEN=${HF_TOKEN}`.
5. **Docker image**: use `docker_image` from `recipes_cache.json` top level
(unless the model needs a pinned image, e.g. GLM-4.5 needs `v0.15.1`).
If the user specifies a Docker image version, check it against the recipe's
`model.min_vllm_version`. Warn if the image is older -- the model may crash
on startup with an opaque "Engine core initialization failed" error.
6. **Model ID**: `--model <HF_ID>`
7. **vLLM args**: combine the recipe's `model.base_args` +
`hardware_overrides.amd.extra_args` + `features.tool_calling.args` +
`features.reasoning.args`. Add `--enable-auto-tool-choice` if not present.
For multi-GPU, add `--tensor-parallel-size N` (see VRAM estimation below).
For MoE models on multi-GPU, also add `--distributed-executor-backend mp`.
8. **Port arg**: `--port <port>`
If the exact model ID is not in `recipes_cache.json`, check for a base model
match by stripping date/version suffixes (e.g., `Kimi-K2-Instruct` matches
`Kimi-K2-Instruct-0905`). Use the base model's recipe if found.From amd/skills, MIT.
More from amd/skills
- 0.700score
lemonade-router-builder
amd
Turns a natural-language description of routing intent into a valid Lemonade `collection.router` policy JSON.
SkillAFreshness: A★ 465Claude Code +9 - 0.700score
quark-install
amd
Installs or verifies AMD Quark and ensures the selected Python environment has an accelerator-matched PyTorch.
SkillAFreshness: A★ 465Claude Code +9 - 0.700score
quark-torch-llm-ptq
amd
Runs an end-to-end AMD Quark post-training quantization workflow for PyTorch / Hugging Face LLMs: inspect a Hub or local model, choose a quantization plan…
SkillAFreshness: A★ 465Claude Code +9 - 0.700score
serving-llms-on-epyc
amd
Serves an LLM on a supported AMD EPYC server CPU using vLLM with zentorch, in Docker, Podman, or conda.
SkillAFreshness: A★ 465Claude Code +9 - 0.700score
rocprofiler-pc-sampling
amd
Profiles a target application using rocprofv3 with program counter sampling enabled and then analyzes the results.
SkillAFreshness: A★ 465Claude Code +9 - 0.700score
local-ai-use
amd
Makes this agent generate images, transcribe audio, and synthesize speech on the user's own machine through a local Lemonade Server instead of a paid cloud API.
SkillAFreshness: A★ 465Claude Code +9 - 0.695score
magpie-kernel-evaluator
amd
Benchmarks LLM inference and drives GPU kernel optimization with Magpie.
SkillAFreshness: A★ 465Claude Code +9 - 0.695score
hyperloom-workload-optimizer
amd
Autonomously optimizes end-to-end LLM inference throughput on AMD Instinct GPUs and reports a validated gain, using the Hyperloom multi-agent optimizer.
SkillAFreshness: A★ 465Claude Code +9 - 0.695score
local-ai-app-integration
amd
Integrates local AI capabilities into applications using Embeddable Lemonade.
SkillAFreshness: A★ 465Claude Code +9 - 0.695score
tracelens-analysis-orchestrator
amd
Orchestrates modular PyTorch profiler trace analysis with TraceLens: generates perf reports, prepares category data, runs system-level and compute-kernel…
SkillAFreshness: A★ 465Claude Code +9 - 0.695score
rocm-doctor
amd
Diagnoses why ROCm, the HIP SDK, PyTorch, or llama.cpp is broken on an AMD GPU on Linux, Windows, or WSL2, then applies a low-risk fix with consent or hands…
SkillAFreshness: A★ 465Claude Code +9 - 0.660score
apu-memory-tuner
amd
Inspects and tunes the shared-vs-dedicated memory split on AMD Ryzen APUs with unified memory (UMA) so larger LLMs and image-gen models fit on the iGPU, or so…
SkillBFreshness: B★ 465Claude Code +9
Signals
- Stars
- 465
- Forks
- 44
- Open issues
- 45
- Last commit (this folder)
- Sep 8, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/amd/skills
- Website
- developer.amd.com/
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from amd
- 0.700score
quark-torch-llm-ptq
amd
Runs an end-to-end AMD Quark post-training quantization workflow for PyTorch / Hugging Face LLMs: inspect a Hub or local model, choose a quantization plan…
SkillAFreshness: A★ 465Claude Code +9 - 0.700score
rocprofiler-pc-sampling
amd
Profiles a target application using rocprofv3 with program counter sampling enabled and then analyzes the results.
SkillAFreshness: A★ 465Claude Code +9 - 0.700score
local-ai-use
amd
Makes this agent generate images, transcribe audio, and synthesize speech on the user's own machine through a local Lemonade Server instead of a paid cloud API.
SkillAFreshness: A★ 465Claude Code +9 - 0.700score
quark-install
amd
Installs or verifies AMD Quark and ensures the selected Python environment has an accelerator-matched PyTorch.
SkillAFreshness: A★ 465Claude Code +9 - 0.700score
lemonade-router-builder
amd
Turns a natural-language description of routing intent into a valid Lemonade `collection.router` policy JSON.
SkillAFreshness: A★ 465Claude Code +9 - 0.700score
serving-llms-on-epyc
amd
Serves an LLM on a supported AMD EPYC server CPU using vLLM with zentorch, in Docker, Podman, or conda.
SkillAFreshness: A★ 465Claude Code +9
Cite this page
serving-llms-on-instinct skill. Agent Mart. https://agentmart.dev/skills/amd-serving-llms-on-instinct (last updated 2026-10-24)