AMD Ryzen AI MAX+ 395 ROCm WSL2 安装VLLM指南

AMD Ryzen AI MAX+ 395 ROCm WSL2 安装VLLM指南

TomHanck4
2026-02-18 / 0 评论 / 1 阅读 / 正在检测是否收录...

AMD Ryzen AI MAX+ 395 ROCm WSL2 安装指南

硬件信息

  • CPU: AMD Ryzen AI MAX+ PRO 395
  • GPU: AMD Radeon 8060S (40 CU, 32GB 显存)
  • 架构: gfx1151

安装步骤

1. Windows 端安装

1.1 安装 AMD 驱动

  1. 下载最新驱动:https://www.amd.com/en/support/download/drivers.html
  2. 运行安装程序,选择 "Custom Install"
  3. 只勾选 "AMD Chipset Drivers"(其他组件不需要)
  4. 完成安装并重启

1.2 安装 Windows SDK

  1. 下载:https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/
  2. 安装时只勾选 "Windows SDK for Desktop C++ Apps"
  3. 记住安装路径(通常是 C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\

1.3 安装 WSL2

# 检查 WSL 版本
wsl --version

# 如果未安装,运行
wsl --install -d Ubuntu-24.04

2. WSL2 端安装

2.1 进入 WSL2

wsl

2.2 检查 Ubuntu 版本

lsb_release -a
# 确认是 Ubuntu 24.04

2.3 安装 ROCm 7.2

# 下载 ROCm 安装器
wget https://repo.radeon.com/amdgpu-install/7.2/ubuntu/noble/amdgpu-install_7.2.70200-1_all.deb

# 安装
sudo apt install ./amdgpu-install_7.2.70200-1_all.deb

# 更新系统
sudo apt update

# 安装依赖
sudo apt install python3-setuptools python3-wheel

# 添加用户到 render 和 video 组
sudo usermod -a -G render,video $LOGNAME

# 安装 ROCm
sudo apt install rocm

2.4 验证 ROCm 安装

# 检查 ROCm 目录
tree -L 1 /opt
# 应该看到 rocm-7.2.0 目录

2.5 编译安装 librocdxg

安装编译工具
sudo apt install cmake git build-essential
克隆并编译
# 克隆仓库
git clone https://github.com/ROCm/librocdxg.git
cd librocdxg

# 设置 Windows SDK 路径(根据实际安装路径调整)
export win_sdk='/mnt/c/Program Files (x86)/Windows Kits/10/Include/10.0.26100.0/'

# 编译
mkdir -p build
cd build
cmake .. -DWIN_SDK="${win_sdk}/shared"
make
sudo make install

2.6 设置环境变量

# 临时设置(当前会话有效)
export HSA_ENABLE_DXG_DETECTION=1

# 永久设置(添加到 ~/.bashrc)
echo 'export HSA_ENABLE_DXG_DETECTION=1' >> ~/.bashrc
source ~/.bashrc

2.7 验证 GPU 识别

rocminfo

预期输出

  • Agent 1: CPU (AMD RYZEN AI MAX+ PRO 395)
  • Agent 2: GPU (gfx1151, AMD Radeon 8060S, 32GB 显存)

3. 使用 ROCm

3.1 使用 Docker 容器(推荐)

docker run -it \
    -v /usr/lib/wsl/lib/libdxcore.so:/usr/lib/libdxcore.so \
    -v /opt/rocm/lib/librocdxg.so:/usr/lib/librocdxg.so \
    -e HSA_ENABLE_DXG_DETECTION=1 \
    --device=/dev/dxg \
    --cap-add=SYS_PTRACE \
    --security-opt seccomp=unconfined \
    --ipc=host \
    --shm-size 8G \
    rocm/pytorch:latest

在容器内测试

import torch
print(torch.cuda.is_available())  # 应该返回 True
print(torch.cuda.get_device_name(0))  # 显示 GPU 名称

3.2 在 WSL2 虚拟环境中安装 PyTorch + vLLM

步骤 1:创建工作目录和虚拟环境
# 创建工作目录
mkdir -p ~/ai-workspace
cd ~/ai-workspace

# 创建虚拟环境
python3 -m venv vllm-env

预期输出:无输出表示成功

# 激活虚拟环境
source vllm-env/bin/activate

预期输出:命令提示符前出现 (vllm-env)

(vllm-env) fsy@HPAgent:~/ai-workspace$
# 验证虚拟环境
which python

预期输出

/home/fsy/ai-workspace/vllm-env/bin/python
# 升级 pip
pip install --upgrade pip

预期输出

Successfully installed pip-24.x.x
步骤 2:设置环境变量
# 临时设置(当前会话有效)
export HSA_ENABLE_DXG_DETECTION=1

# 永久设置(推荐)
echo 'export HSA_ENABLE_DXG_DETECTION=1' >> ~/.bashrc
source ~/.bashrc

验证环境变量

echo $HSA_ENABLE_DXG_DETECTION

预期输出

1
步骤 3:安装 PyTorch(ROCm 7.1)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm7.1

预期输出

Collecting torch
  Downloading https://download.pytorch.org/whl/rocm7.1/torch-2.10.0%2Brocm7.1-cp312-cp312-linux_x86_64.whl (2.8 GB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.8/2.8 GB 10.5 MB/s eta 0:00:00
...
Successfully installed torch-2.10.0+rocm7.1 torchvision-0.x.x torchaudio-2.x.x

注意

  • 下载大小约 2.8-3.5 GB
  • 安装时间:5-15 分钟(取决于网速和磁盘速度)
  • 如果看起来卡住,可以用 watch -n 1 'du -sh ~/.cache/pip' 查看下载进度
步骤 4:验证 PyTorch 和 GPU
python -c "import torch; print(f'PyTorch: {torch.__version__}'); print(f'CUDA available: {torch.cuda.is_available()}'); print(f'GPU: {torch.cuda.get_device_name(0) if torch.cuda.is_available() else \"N/A\"}')"

预期输出

PyTorch: 2.10.0+rocm7.1
CUDA available: True
GPU: AMD Radeon(TM) 8060S Graphics

如果输出不正确

  • CUDA available: False → 检查环境变量 HSA_ENABLE_DXG_DETECTION
  • GPU: N/A → 运行 rocminfo 检查 GPU 是否被识别
步骤 5:安装 vLLM(从源码编译)
# 安装编译依赖
pip install ninja packaging wheel

预期输出

Successfully installed ninja-1.x.x packaging-24.x wheel-0.x.x
# 克隆 vLLM 仓库
cd ~/ai-workspace
git clone https://github.com/vllm-project/vllm.git
cd vllm

预期输出

Cloning into 'vllm'...
remote: Enumerating objects: xxxxx, done.
remote: Counting objects: 100% (xxxx/xxxx), done.
...
# 1. 先安装构建依赖(--no-build-isolation 时 pip 不会自动装,否则会报 No module named 'setuptools_scm')
pip install "cmake>=3.26.1" ninja "packaging>=24.2" "setuptools>=77.0.3,<81.0.0" "setuptools-scm>=8" wheel "jinja2>=3.1.6" regex build "protobuf>=5.29.6" "grpcio-tools==1.78.0"

# 2. 安装 vLLM(编译过程需要 10-20 分钟)
# ROCm 必须加 --no-build-isolation,否则 pip 会用临时环境里的 CUDA 版 torch,导致报错 CUDA_HOME is not set
pip install -e . --no-build-isolation

预期输出

Obtaining file:///.../vllm
  Checking if build backend supports build_editable ... done
  ...
  Building wheels for collected packages: vllm
    Building wheel for vllm (pyproject.toml) ... done
  Successfully built vllm
Successfully installed vllm-0.16.0rc2.dev276+ge24663c5a.rocm720 ...

(最后一行会列出大量依赖;vllm 版本带 rocm720 等后缀表示 ROCm 构建成功,实际版本号随源码与 ROCm 版本变化。)

注意

  • 先装构建依赖:使用 --no-build-isolation 时 pip 不会安装 pyproject 里的构建依赖,需先执行上面的 pip install cmake ninja ...,否则会报 ModuleNotFoundError: No module named 'setuptools_scm'
  • ROCm 安装必须使用 --no-build-isolation:这样会使用当前环境已安装的 ROCm 版 PyTorch 参与构建;若不加,pip 会在临时环境中安装默认(CUDA)版 torch,构建时会报 AssertionError: CUDA_HOME is not set
  • 编译时间:10-20 分钟
  • CPU 使用率会很高(50-100%)
  • 如果编译失败,检查是否有足够的内存(建议 8GB+)
步骤 6:验证 vLLM
python -c "import vllm; print(f'vLLM version: {vllm.__version__}')"

预期输出(示例):

vLLM version: 0.16.0rc2.dev276+ge24663c5a.rocm720
步骤 7:测试 vLLM 推理(可选)

创建测试脚本 test_vllm.py

from vllm import LLM, SamplingParams

# 加载小模型测试
print("Loading model...")
llm = LLM(model="facebook/opt-125m")

# 生成文本
print("Generating text...")
prompts = ["Hello, my name is"]
sampling_params = SamplingParams(temperature=0.8, top_p=0.95, max_tokens=20)
outputs = llm.generate(prompts, sampling_params)

print("\nResults:")
for output in outputs:
    print(f"Prompt: {output.prompt}")
    print(f"Generated: {output.outputs[0].text}")

运行测试:

python test_vllm.py

预期输出

Loading model...
INFO: Initializing an LLM engine with config: ...
Generating text...

Results:
Prompt: Hello, my name is
Generated:  John Smith and I am a software engineer...
步骤 8:启动 vLLM API 服务器(可选)
# 启动 API 服务器(单 GPU)
python -m vllm.entrypoints.api_server \
    --model facebook/opt-125m \
    --dtype float16 \
    --port 8000

预期输出

INFO:     Started server process [xxxxx]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8000

测试 API(另开终端):

curl http://localhost:8000/generate \
    -H "Content-Type: application/json" \
    -d '{"prompt": "What is AMD?", "max_tokens": 50}'

预期输出

{"text":["What is AMD?\nAMD (Advanced Micro Devices) is a semiconductor company that designs and manufactures computer processors..."]}
常见问题

问题 1:虚拟环境移动后无法安装包

error: externally-managed-environment

解决方案:虚拟环境不能移动,必须重新创建

deactivate
rm -rf ~/ai-workspace/vllm-env
cd ~/ai-workspace
python3 -m venv vllm-env
source vllm-env/bin/activate
# 重新安装 PyTorch(有缓存,很快)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm7.1

问题 2:PyTorch 安装卡住

解决方案:查看下载进度

# 另开终端
watch -n 1 'du -sh ~/.cache/pip'

如果确实卡住:

# Ctrl+C 取消
pip cache purge
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm7.1 --timeout 1000 -v

问题 3:vLLM 编译失败

解决方案:检查内存和依赖

# 检查可用内存
free -h

# 如果内存不足,增加 swap
sudo fallocate -l 8G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# 重新编译(ROCm 需加 --no-build-isolation;若报 setuptools_scm 等缺失,先执行上文「安装 vLLM」里的构建依赖安装命令)
pip install -e . --no-build-isolation

版本信息

  • WSL 版本: 2.6.3.0
  • Ubuntu: 24.04 LTS
  • ROCm: 7.2
  • librocdxg: 1.1.0
  • AMD 驱动: 26.2.1 或更新版本
  • PyTorch: 2.x(ROCm 7.1 版本)
  • vLLM: 最新版本

兼容性

根据官方文档,支持以下 Ryzen AI 系列:

  • AMD Ryzen AI Max+ 395 ✅
  • AMD Ryzen AI Max 390
  • AMD Ryzen AI Max 385
  • AMD Ryzen AI 9 HX 375
  • AMD Ryzen AI 9 HX 370
  • AMD Ryzen AI 9 365

参考资料

故障排除

GPU 未识别

# 检查环境变量
echo $HSA_ENABLE_DXG_DETECTION

# 检查设备节点
ls -la /dev/dxg

# 重新加载 WSL
# 在 PowerShell 中运行
wsl --shutdown
wsl

Docker 容器无法访问 GPU

确保运行容器时包含所有必需参数:

  • --device=/dev/dxg
  • -v /usr/lib/wsl/lib/libdxcore.so:/usr/lib/libdxcore.so
  • -v /opt/rocm/lib/librocdxg.so:/usr/lib/librocdxg.so
  • -e HSA_ENABLE_DXG_DETECTION=1

安装日期: 2026-02-18
测试状态: ✅ 成功识别 GPU,ROCm 正常工作

0

评论 (0)

取消