AMD 显卡本地部署大模型完全指南(ROCm 实战)

基于真实环境:i5-9600KF / 32GB 内存 / AMD Radeon AI PRO R9700(32GB GDDR6,RDNA4)/ Linux + ROCm,运行 Qwen 27B Q4 量化模型。

为什么选择 AMD 本地部署

N 卡生态成熟,但价格长期偏高,且推理这种"买断"场景下,同等预算在 A 卡上往往能多拿一倍显存。32GB 显存意味着:7B 模型轻松跑、27B Q4 量化能完整装进显存(27B Q4 约需 16-18GB 显存)、甚至能摸到 32B 模型的门槛。对不依赖云端、有隐私要求的个人和小团队,这是一条性价比很高的路线。

硬件门槛先说清楚

路线一:Ollama(最快上手)

Ollama 对 ROCm 的支持已经很成熟,适合"今天就要用起来"的人。

# 1. 安装 Ollama
curl -fsSL https://ollama.com/install.sh | sh

# 2. 确认 ROCm 环境(Ollama 发行版自带 ROCm 依赖)
ollama --version

# 3. 拉取模型(27B Q4,约 17GB 下载)
ollama pull qwen3:27b-q4

# 4. 运行(默认全量放显存)
ollama run qwen3:27b-q4

验证显存占用:

# 另一个终端,看 GPU 显存
rocm-smi

路线二:vLLM(高性能推理)

需要高并发、API 服务、或想榨干吞吐时上 vLLM。它支持 PagedAttention,吞吐显著高于普通加载方式。

# 1. Python 环境(推荐 3.10-3.12)
python3 -m venv vllm && source vllm/bin/activate

# 2. 安装带 ROCm 支持的 vLLM(按对应 ROCm 版本选 wheel)
pip install vllm --extra-index-url https://wheels.vllm.ai/rocm

# 3. 启动服务
python -m vllm.entrypoints.openai.api_server \
  --model Qwen/Qwen3-27B \
  --quantization fp8 \
  --gpu-memory-utilization 0.9

注意两点:

实测表现(R9700 32GB,供参考)

以下为 27B Q4 在本机的典型表现区间(不同上下文长度会有浮动):

一个容易踩的认知误区:多卡层切分不能加速单流推理。把一个模型切成两层放两张卡,单条请求的速度不会变快(每 token 要等两张卡都算完),真正加速单流要靠更强的单卡或更好的量化/attention 优化。层切分的价值在"装下更大模型"和"多模型常驻"。

三大常见坑

坑 1:驱动与 ROCm 版本不匹配

症状:rocm-smi 能看到卡,但跑模型报 HIP 错误。 解法:ROCm 版本、内核驱动(amdgpu)、以及框架 wheel 三者必须对齐。原则:先定 ROCm 版本,再装对应驱动和 wheel,不要各装各的最新版。装完第一步永远先跑 rocm-smi 确认驱动识别正常。

坑 2:镜像/容器里的 ROCm 版本过旧

用 Docker 跑时,镜像内置的 ROCm 往往落后于你新显卡的要求(新卡需要新 ROCm 才认识)。解法:选 ROCm 版本较新的基础镜像,或自己 FROM rocm/dev-ubuntu-24.04:latest 一类的新 tag;进容器先 rocm-smi 验卡。

坑 3:量化与加载参数不匹配

Q4 的模型用 fp8 参数加载、或 Q8 模型按 Q4 分配显存,轻则报错,重则显存爆掉。解法:加载参数永远跟着模型文件名走,不确定就先 grep 一下模型 README 里的 suggested 参数。

适合谁

选型建议:先 Ollama 跑通、确认体验 → 有并发/性能需求再上 vLLM。两条路线的模型权重通用(都是 GGUF 或 HF 格式),迁移成本很低。