在 Ubuntu 24.04 LTS 上部署 Qwen3-32B-AWQ(双路AMD MI50·gfx906)实战笔记
硬件:MI50 32G×2 | 2680V4×2 | DDR4-2133 32G×2 | X99 双路多卡主板
网络:PCI-E 1× Intel I210(主板自带不支持网络开机,已禁用)
BIOS:Above 4G Decoding 开启 | CSM 禁用 | SR-IOV 开启
系统:Ubuntu 24.04.3 LTS(干净安装,仅 SSH 与 Docker 环境)
参考:https://gitee.com/spoto/R7vllm(感谢 司波图)
镜像:nalanzeyu/vllm-gfx906(感谢 纳兰泽雨)
0 补全基础工具(可选)
sudo apt update && sudo apt install -y curl wget git vim python3.12-venv
1 安装 Docker 并立即解决权限
sudo apt install -y docker.io sudo systemctl enable --now docker sudo usermod -aG docker $USER # 若 $USER 为空,请直接替换为实际用户名 newgrp docker # 立即生效,或者重新登录

2 安装 ROCm 6.3 驱动(gfx906 专用)
# 官方脚本 wget https://repo.radeon.com/amdgpu-install/6.3/ubuntu/noble/amdgpu-install_6.3.60300-1_all.deb sudo apt install -y ./amdgpu-install_6.3.60300-1_all.deb sudo amdgpu-install -y --usecase=rocm,hiplibsdk # 用户组 sudo usermod -aG render,video $USER sudo reboot # 必须重启,再执行下面 groups #验证当前用户是否有render和video权限
3 验证驱动
rocminfo | grep gfx906 # 应出现 2 个 Agent rocm-smi # 两张 32 GB 显存

4 准备模型目录 & 手动下载
# 模型目录 sudo mkdir -p /data/models sudo chown -R $USER:$USER /data/models # Python 虚拟环境 python3 -m venv ~/hf_env source ~/hf_env/bin/activate pip install -U huggingface_hub[cli] # 可选镜像加速或自备镜像加速 export HF_ENDPOINT=https://hf-mirror.com hf download Qwen/Qwen3-32B-AWQ --local-dir /data/models/Qwen3-32B-AWQ
5 拉取 vLLM 镜像
docker pull nalanzeyu/vllm-gfx906 # 此处应自备加速器
6 一次性手动验证(可选)
docker run -it --rm \ --network=host --ipc=host --shm-size=16g \ --device=/dev/kfd --device=/dev/dri \ --group-add video --cap-add=SYS_PTRACE \ --security-opt seccomp=unconfined \ -v /data/models:/models \ -e HF_DATASETS_OFFLINE=1 \ -e TRANSFORMERS_OFFLINE=1 \ nalanzeyu/vllm-gfx906 \ vllm serve /models/Qwen3-32B-AWQ \ --tensor-parallel-size 2 \ --quantization awq \ --max-model-len 8192 \ --dtype float16 \ --swap-space 16 \ --enable-log-requests
出现
Application startup complate
即就绪
7 测试
curl http://localhost:8000/v1/completions \ -H "Content-Type: application/json" \ -d '{ "model": "/models/Qwen3-32B-AWQ", "prompt": "你现在运行的哪个模型", "max_tokens": 32, "temperature": 0 }'完整返回:
{ "id": "cmpl-a2645589dad74a3b9ef73773bb1295dc", "object": "text_completion", "created": 1758333989, "model": "/models/Qwen3-32B-AWQ", "choices": [{ "index": 0, "text": "?你有什么能力?我需要你帮我写一个Python脚本,实现以下功能:读取一个文件夹中的所有图片,将这些图片按", "logprobs": null, "finish_reason": "length", "stop_reason": null, "prompt_logprobs": null }], "service_tier": null, "system_fingerprint": null, "usage": { "prompt_tokens": 5, "total_tokens": 37, "completion_tokens": 32, "prompt_tokens_details": null }, "kv_transfer_params": null }提示: 如果 curl 报连接拒绝,请等待 30 秒直至容器初始化完成。
8 部署为非登录启动的 systemd 服务(优雅开关机)
8.1 创建服务单元
sudo tee /etc/systemd/system/qwen3-awq.service >/dev/null <<'EOF' [Unit] Description=vLLM Qwen3-32B-AWQ on dual M50 After=docker.service network-online.target Requires=docker.service network-online.target [Service] Type=exec User=root WorkingDirectory=/data/models ExecStart=/usr/bin/docker run \ --rm \ --name qwen3-awq \ --network=host \ --ipc=host \ --shm-size=16g \ --device=/dev/kfd \ --device=/dev/dri \ --group-add video \ --cap-add=SYS_PTRACE \ --security-opt seccomp=unconfined \ -v /data/models:/models \ -e HF_DATASETS_OFFLINE=1 \ -e TRANSFORMERS_OFFLINE=1 \ nalanzeyu/vllm-gfx906 \ vllm serve /models/Qwen3-32B-AWQ \ --tensor-parallel-size 2 \ --quantization awq \ --max-model-len 8192 \ --dtype float16 \ --swap-space 16 \ --enable-log-requests ExecStop=/usr/bin/docker stop -t 30 qwen3-awq Restart=on-failure RestartSec=10s [Install] WantedBy=multi-user.target EOF
8.2 启用 & 启动
sudo systemctl daemon-reload sudo systemctl enable --now qwen3-awq # 查看日志 sudo journalctl -u qwen3-awq -f![]()
9 优雅开关机
- 重启:
sudo reboot
后服务自动拉起 - 手动重载:
sudo systemctl restart qwen3-awq
- 关机:
sudo systemctl stop
qwen3-awq会等待 30 s 优雅退出容器
END. 可直接投产,欢迎进行沟通交流!