技术部署方案 · 2026 年 8 月

NVIDIA 模型在 AMD GPU 上的部署方案

面向 Radeon 消费级显卡与 Instinct 计算卡,绕开 CUDA 依赖的五条可行路径:ROCm 生态、ONNX 通用引擎、ZLUDA 兼容层、DirectML 与 HIP 移植。本方案已按 2026 年最新官方资料校正。

适用平台:Linux / Windows / WSL2 核心框架:PyTorch 2.12 · ROCm 7.14 更新日期:2026-08-15
AMD Instinct MI300X 数据中心 GPU 加速卡,192GB HBM3 显存,ROCm 推理训练
AMD Instinct MI300X 数据中心加速卡,ROCm 生态的核心目标硬件之一(图片来源:AMD 官网)

教程特色

本教程融合了 CSDN 技术博客与知乎深度专栏两类教程的优点:既有可照抄的保姆级步骤,也有讲清原理的深度分析。

01 保姆级步骤(CSDN 风格):每章拆解为可逐条照抄的 Step-by-Step 命令,从环境搭建到验证输出全程覆盖,零基础也能跑通。
02 代码完整可复制(CSDN 风格):所有安装命令、配置文件、Python 代码块均完整给出,可直接复制执行,无需自行补全。
03 结论先行(知乎风格):每章开头先说结论、适用人群与推荐指数,再展开细节,方便快速判断是否适合自己。
04 真实避坑经验(知乎风格):汇总社区高频报错与真实踩坑记录,标注「常见坑」提示,帮你少走弯路。
05 深度对比分析(知乎风格):五条技术路线从性能、兼容性、维护活跃度等多维度对比,讲清「为什么」而不只是「怎么做」。
06 目录导航清晰(CSDN 风格):14 章结构化目录 + 锚点跳转,按需定位,长文也能快速找到目标章节。

01背景与核心问题

为什么 NVIDIA 模型不能直接跑在 AMD 显卡上,以及解决思路。

1.1 CUDA 生态:为什么"开箱即用"不成立

绝大多数 AI 模型与推理工具在 GPU 上运行时,依赖的是 NVIDIA 专属的 CUDA 生态。CUDA 并非单一组件,而是一整套从硬件到应用的分层技术栈:

层级 代表组件 作用
硬件指令集 NVIDIA GPU 专属 SASS/PTX 指令 GPU 芯片实际执行的机器指令,AMD 芯片无法解码
驱动层 NVIDIA 驱动 + CUDA Driver API 操作系统与 GPU 之间的桥梁,AMD 驱动接口完全不同
运行时 CUDA Runtime、cuBLAS、cuDNN、cuFFT、NCCL 矩阵运算、深度学习原语、通信等高性能库,均为 NVIDIA 闭源实现
框架层 PyTorch、TensorFlow、ONNX Runtime 的 CUDA 后端 框架通过 CUDA 接口调度 GPU,默认只认 NVIDIA 设备
应用层 Ollama、vLLM、ComfyUI 等工具的 CUDA 构建 最终用户接触的推理 / 绘画工具

AMD 显卡无法识别这些调用,因此"开箱即用"通常不成立。要在 AMD GPU 上运行,核心思路是绕开 CUDA 依赖,改用 AMD 兼容的计算栈或转换层——这正好对应本方案的五条路径。

AMD ROCm 软件栈架构图,对比 CUDA 分层结构,展示 HIP 编程模型与运行时组件
ROCm 软件栈架构:从驱动层(amdgpu / ROCk)到运行时库(HIP、rocBLAS、MIOpen),再到框架层(PyTorch、TensorFlow),与 CUDA 生态形成一一对应的替代关系(来源:HIP101 文档)

1.2 为什么 AMD 显卡不能直接运行 CUDA 程序

根本原因有三个层面,理解它们有助于你判断某条路径是否可行:

  1. 指令集不兼容 NVIDIA GPU 执行的是自己的 SASS/PTX 指令,AMD GPU 执行的是 GCN/RDNA 指令(gfx 架构代号)。两者互不兼容,预编译的 CUDA 二进制无法直接在 AMD 上执行。
  2. 驱动与运行时 API 不同 应用通过 CUDA Runtime API(cudaMalloccudaLaunchKernel 等)与驱动交互,AMD 侧对应的是 HIP Runtime API。接口语义相似但实现完全不同,需要翻译或重写。
  3. 高性能库闭源 cuDNN、cuBLAS 等是 NVIDIA 闭源优化的库,没有 AMD 版本。AMD 的等价物是 MIOpen、rocBLAS 等,需要应用显式调用或由框架层自动切换。

1.3 2026 年 AMD 生态现状:已从"能不能跑"进入"跑得好不好"

2026 年 8 月,AMD 的 ROCm 生态已相当成熟:最新稳定版为 ROCm 7.14.0(2026 年 7 月发布),PyTorch 2.12 已官方支持 ROCm 7.14[1][2]。消费级 Radeon RX 7000/9000 系列(RDNA3/RDNA4)均进入官方支持列表,Windows 原生 ROCm 也已落地[3]。因此,多数标准框架模型无需改代码即可迁移。

5 条可行部署路径
7.14 ROCm 最新稳定版
2.12 PyTorch 支持版本
0 标准模型需改代码量

2026 年的几个关键变化值得注意:一是 vLLM 把 AMD 提升为"一等公民",CI 通过率从 37% 提升到 93%,ROCm 7 相比 ROCm 6 平均推理性能提升约 3.5 倍[16];二是 AMD 与魔搭、Datawhale 共建中国开发者专区并提供免费算力(详见第 14 章);三是 Windows 原生 ROCm 落地,但生态成熟度仍以 Linux/WSL2 为最优。

1.4 核心解决思路:四条技术路线

绕开 CUDA 依赖有四种基本思路,本方案的五条路径都由它们派生:

思路 原理 对应方案 改动量
① 原生替代 用 AMD 官方计算栈(ROCm/HIP)替代 CUDA,框架层自动切换 方案一 ROCm 生态 零代码
② 格式转换 把模型转成跨平台 ONNX 格式,用通用执行引擎跑 方案二 ONNX 转换格式
③ 翻译层 拦截 CUDA 调用并翻译到 AMD 硬件 方案三 ZLUDA 零代码
④ 系统级替代 微软 DirectML 直接对接 DX12 硬件抽象层 方案四 DirectML 改设备名
⑤ 源码移植 把 CUDA 源码用 hipify 转为 HIP 再编译 方案五 HIP 移植 需移植
重要前提:先确认显卡兼容性 在动手前,务必先确认自己的 AMD 显卡是否在 ROCm 官方支持列表内(详见方案一)。不在列表内的老卡(如 Radeon VII、RX 6000 消费卡)需要走其他路径,或接受社区非官方支持。

02方案总览与对比

五条路径按"易用性 → 专业性"排列,先看全景再选路。

2.1 五条路径速览

方案 适用人群 性能 改动量 维护状态(2026)
① ROCm 生态 Linux 用户 / 追求最佳性能 零代码 官方活跃
② ONNX + 执行引擎 跨平台 / 不想配复杂环境 转换格式 官方活跃
③ ZLUDA 兼容层 闭源 CUDA 程序 / 尝鲜玩家 中低 零代码 个人维护
④ DirectML Windows 用户 / 不想折腾 改设备名 微软维护
⑤ HIP 移植 开发者 / 自定义 CUDA 算子 需移植 官方工具

2.2 选型决策流程

下面这张决策图是本章的核心:先判断显卡是否在 ROCm 官方支持列表,再根据运行环境与模型类型收敛到具体方案。

flowchart TD
    A[要在 AMD GPU 上运行模型] --> B{显卡在 ROCm 官方支持列表?}
    B -- 是 --> C[方案一: ROCm 生态
Linux 首选, 性能最佳] B -- 否 --> D{运行环境?} D -- Windows --> E[方案四: DirectML
仅需 DX12 驱动] D -- Linux --> F[方案二: ONNX 执行引擎] C --> G{模型含闭源 CUDA 程序?} G -- 是 --> H[方案三: ZLUDA
尝试性, 兼容性有限] G -- 否 --> I[方案五: HIP 移植
hipify 自动转换]
图 1:方案选型决策流程

2.3 各方案详细对比

除性能与改动量外,还需综合评估学习成本、运行成本与长期维护风险。下表从更多维度展开对比:

维度 ① ROCm ② ONNX ③ ZLUDA ④ DirectML ⑤ HIP
安装复杂度 中(需装驱动 + 工具链) 低(pip 安装即可) 高(需编译 / 补库) 极低(仅需 DX12 驱动) 高(需完整工具链)
性能上限 最高 中低 最高
支持硬件范围 官方列表内(RX7000/9000、Instinct) 所有 DX12/ROCm 设备 较广但兼容性不稳定 所有 DX12 显卡 ROCm 支持的所有设备
长期维护风险 低(AMD 官方持续投入) 低(ONNX 标准 + 微软/AMD 维护) 高(个人项目) 中(微软维护,但算子覆盖有限) 中(取决于代码复杂度)
典型场景 生产推理 / 训练 / 微调 跨平台产品化部署 老游戏 PhysX / 闭源工具尝鲜 Windows 桌面快速验证 研究代码 / 自定义算子

2.4 常见误区澄清

误区一:AMD 显卡完全跑不了 AI 这是最普遍的误解。实际上 ROCm 生态已相当成熟,主流框架(PyTorch、vLLM、Ollama、ComfyUI)都有官方 AMD 支持,多数标准模型零代码迁移。
误区二:ZLUDA 是万能钥匙 ZLUDA 确实能"零代码"跑 CUDA 程序,但 2026 年已回归个人项目,兼容性并非 100%,且维护节奏不可预期。生产环境不建议作为依赖项。
误区三:Windows 原生 ROCm 和 Linux 一样好 Windows 原生 ROCm 已落地,但生态成熟度、算子覆盖与性能仍略逊于 Linux/WSL2。追求性能的 Windows 用户应优先 WSL2 + ROCm。
一句话选型 有 Linux 环境选 ROCm;Windows 桌面快速体验选 DirectML;Windows 追求性能选 WSL2 + ROCm;跨平台产品化选 ONNX;闭源 CUDA 程序尝鲜选 ZLUDA;有源码的自定义算子选 HIP 移植。

03方案一 · ROCm 生态(推荐)

AMD 官方开源 GPU 计算平台,对标 NVIDIA CUDA,是性能与兼容性的最优解。

ROCm 直接提供与 CUDA 类似的编程接口和深度学习加速能力,主流框架(PyTorch 等)有官方 ROCm 适配版本。对绝大多数标准框架模型,代码无需修改,仍写 device="cuda",ROCm 会自动把计算调度到 AMD 显卡

ROCm 开源生态全景图,覆盖 PyTorch TensorFlow vLLM 等主流 AI 框架对 AMD GPU 的支持
ROCm 生态全景:覆盖驱动、编译器、运行时库、框架适配与工具链的完整体系(来源:AMD ROCm Blogs)

推荐3.1 确认显卡兼容性

ROCm 7.14 官方兼容矩阵覆盖以下设备[1]

类别 代表型号 架构 / gfx 代号
Instinct 计算卡 MI350X / MI355X / MI325X / MI300X / MI300A / MI250X / MI210 / MI100 gfx950 / gfx942 / gfx90a / gfx908
Radeon RX 9000 系列 RX 9070 XT / 9070 / 9060 XT / 9060 RDNA4 · gfx1200 / gfx1201
Radeon RX 7000 系列 RX 7900 XTX / 7900 XT / 7800 XT / 7700 XT / 7600 RDNA3 · gfx1100 / gfx1101 / gfx1102
Radeon PRO 专业卡 PRO W7900 / W7800 / W7700 / W6800 / V710 / V620 RDNA3 / RDNA2 · gfx1100 / gfx1030
Ryzen AI APU / 核显 Ryzen AI Max+ 395 / AI 9 HX 375 / AI 7 350 等;Radeon 800M / 900M 核显 gfx1150–1153 / gfx1103
注意:老卡已不在官方列表 RX 6000 消费级显卡(如 RX 6800/6900)已不在 ROCm 7.14 官方支持列表,仅 W6800 等专业卡保留;Radeon VII / Instinct MI50(gfx906)更早被放弃[1]。这类卡可尝试社区构建或改用其他方案。

3.2 Linux 原生安装(推荐)

Linux(Ubuntu 24.04 / 26.04、RHEL 等)是 ROCm 官方主推平台,安装与稳定性最佳。以下为 Ubuntu 24.04 的官方 apt 安装流程[14]

  1. 安装 OEM 内核(Ubuntu 24.04 建议)
    sudo apt update && sudo apt install linux-oem-24.04c
  2. 注册 AMD 软件源与 GPG 密钥
    sudo mkdir --parents --mode=0755 /etc/apt/keyrings
    wget https://repo.amd.com/rocm/packages-multi-arch/gpg/rocm.gpg -O - | \
        gpg --dearmor | sudo tee /etc/apt/keyrings/amdrocm.gpg > /dev/null
    
    sudo tee /etc/apt/sources.list.d/rocm.list << EOF
    deb [arch=amd64 signed-by=/etc/apt/keyrings/amdrocm.gpg] https://repo.amd.com/rocm/packages-multi-arch/ubuntu2404 stable main
    EOF
    sudo apt update
  3. 安装 ROCm 工具包
    sudo apt install rocm
    可按需选择元包组合(如 rocm-libsrocm-dev)以裁剪安装体积。
  4. 配置环境变量
    sudo tee /etc/profile.d/set-rocm-env.sh << EOF
    export ROCM_PATH=/opt/rocm
    export PATH=\$PATH:\$ROCM_PATH/bin
    export LD_LIBRARY_PATH=\$ROCM_PATH/lib
    EOF
    sudo chmod +x /etc/profile.d/set-rocm-env.sh
    source /etc/profile.d/set-rocm-env.sh

3.3 WSL2 安装(Windows 用户首选)

Windows 用户推荐通过 WSL2 安装 Linux 版 ROCm,兼容性与性能都优于原生 Windows 方案[3]

  1. 安装 WSL2 与 Ubuntu
    # 在 PowerShell(管理员)中执行
    wsl --install -d Ubuntu-24.04
  2. 在 WSL 内安装 ROCm 进入 Ubuntu 后,按 3.2 的 apt 流程安装 ROCm 工具包。WSL 会透传 Windows 侧的 AMD 显卡驱动,无需在 WSL 内单独装驱动。
  3. 安装 ROCm 版 PyTorch 并验证 与 Linux 流程一致(见 3.5)。

3.4 Windows 原生安装

2025 年起 AMD 为 Radeon 7000/9000 系列和部分 Ryzen AI APU 提供原生 Windows ROCm 支持,但生态成熟度仍略逊于 Linux/WSL2[3]。原生安装需使用 AMD 提供的 Windows HIP SDK,主要面向开发者;对普通用户,WSL2 仍是更稳妥的路径

  1. 更新显卡驱动 前往 AMD 官网下载并安装最新 Adrenalin 驱动(2026 年 1 月起的驱动已内置 Ollama、LM Studio、ComfyUI 一键安装项[5])。
  2. 安装 Windows HIP SDK 从 AMD 官网下载 HIP SDK 安装包,安装后确认 hipcc 可用。
  3. 安装 ROCm 版 PyTorch 使用 AMD 提供的 Windows wheel 或源码编译。注意:Windows 原生方案的算子覆盖与性能仍有限,若遇到算子缺失,请退回 WSL2。

3.5 安装 ROCm 版 PyTorch

推荐直接用 AMD 官方预构建 Docker 镜像,最省事:

# AMD 官方 PyTorch 镜像(ROCm 7.14 + PyTorch 2.12)
docker pull rocm/pytorch:rocm7.14_ubuntu24.04_py3.12_pytorch_release_2.12.0

或使用 pip 安装 ROCm 版 wheel:

# 官方文档示例:nightly 通道的 ROCm 7.2 wheel
pip3 install --pre torch torchvision torchaudio \
  --index-url https://download.pytorch.org/whl/nightly/rocm7.2

2026 年起 AMD 还提供 Python 化的 rocm-sdk 安装方式,可显著简化多架构部署[4]。具体用法见 3.9。

3.6 验证 GPU 可用

python3 -c "import torch; print(torch.cuda.is_available()); print(torch.cuda.get_device_name(0))"
# 输出 True 与你的 AMD 显卡型号即成功(ROCm 复用 CUDA 设备接口)

3.7 运行模型

基于 PyTorch 的模型(LLaMA、Stable Diffusion、Qwen 等)代码无需改动,device="cuda" 在 ROCm 下自动映射到 AMD 显卡。性能上,高端卡(RX 9000 系列、Instinct MI300/MI350)配合 ROCm 可追平同级别 NVIDIA 显卡。

3.8 Docker 安装方式(生产环境推荐)

生产环境强烈推荐 Docker:镜像由 AMD 官方维护,版本匹配关系已固化,可避免"驱动 / ROCm / PyTorch 三者不匹配"这一最常见的坑。启动容器时需透传 GPU 设备:

# 拉取 AMD 官方 PyTorch 镜像
docker pull rocm/pytorch:rocm7.14_ubuntu24.04_py3.12_pytorch_release_2.12.0

# 启动容器并透传 GPU(--device 与 --group-add 缺一不可)
docker run -it --rm \
  --device=/dev/kfd --device=/dev/dri \
  --group-add=video --group-add=render \
  --ipc=host --shm-size=16g \
  --security-opt seccomp=unconfined \
  rocm/pytorch:rocm7.14_ubuntu24.04_py3.12_pytorch_release_2.12.0

# 进入容器后验证
rocm-smi
python3 -c "import torch; print(torch.cuda.is_available())"
Docker 常见坑 若容器内 rocm-smi 看不到 GPU,多半是 /dev/kfd/dev/dri 未透传,或当前用户不在 video/render 组。多卡场景还需 --ipc=host 与足够的 --shm-size

3.9 rocm-sdk:Python 化的一键安装

ROCm 官方推出的 rocm-sdk 把整个 ROCm 工具链封装成 Python 包,支持多架构(CPU/GPU)统一安装,特别适合容器化与 CI/CD 场景[4]

# 安装 rocm-sdk(自动解析当前系统与架构)
pip install rocm-sdk

# 查看可用组件与版本
rocm-sdk --list

# 安装指定版本的 ROCm 工具链
rocm-sdk install rocm@7.14.0

# 在 Python 中直接使用(无需手动设置 PATH)
from rocm_sdk import rocm
print(rocm.version)

rocm-sdk 的价值在于:把过去需要手写的一长串 apt 命令、环境变量、路径配置全部收敛为一条命令,且天然支持多架构(x86_64 / aarch64)与多版本共存,显著降低部署出错率。

3.10 安装完成后的验证清单

无论用哪种方式安装,建议按以下清单逐项验证,确保环境真正可用:

  1. 驱动层:确认 GPU 可见
    rocm-smi          # 应列出你的 AMD 显卡与温度/功耗
    rocminfo          # 查看 gfx 架构代号(如 gfx1100)
  2. 工具链:确认编译器可用
    hipcc --version   # 应显示 HIP 版本
    cmake --version   # 编译自定义算子时需要
  3. 框架层:确认 PyTorch 为 ROCm 版
    python3 -c "import torch; print(torch.version.hip)"
    # 应输出类似 7.14.0 的 HIP 版本号;若为 None 说明装成了 CPU 版
  4. 端到端:跑一个真实算子
    python3 -c "import torch; x=torch.randn(1024,1024,device='cuda'); print((x@x).sum().item())"
验证通过的标准 以上四项全部通过,说明 ROCm 环境完整可用,可以放心进入第 8 章的实战案例。若某一步失败,请直接跳到第 11 章故障排查。
一键方案:Ollama / LM Studio / ComfyUI 本地大模型可直接用 Ollama(原生支持 AMD GPU),2026 年 1 月的 Adrenalin 驱动已把 Ollama、LM Studio、ComfyUI 做成可选一键安装项[5]。注意:Ollama 官方 Windows 版依赖 WSL2,原生 Windows 版需使用第三方构建[6]

04方案二 · ONNX + 通用执行引擎

把模型转成跨平台 ONNX 格式,用兼容 AMD 的执行引擎运行,适合不想配复杂环境的场景。

4.1 ONNX 是什么,为什么适合 AMD

ONNX(Open Neural Network Exchange)是微软与多家厂商推动的开放模型交换格式,把模型定义成一张与框架、硬件无关的计算图。配合 ONNX Runtime,同一份 .onnx 文件可以在 CPU、NVIDIA、AMD、Intel 等任意硬件上运行——这正是它适合 AMD 的原因:模型本身不绑定 CUDA,执行引擎负责对接具体硬件

对 AMD 显卡,ONNX Runtime 提供两类执行提供者(Execution Provider):Linux 下用 ROCm 执行提供者(性能最优)Windows 下用 DirectML 执行提供者(仅需 DX12 驱动,无需装 ROCm)

4.2 导出模型为 ONNX(详细步骤)

用原框架(PyTorch / TensorFlow)将模型导出为 .onnx 文件。主流模型大多提供现成 ONNX 版本,也可用官方脚本导出。以 PyTorch 为例:

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2.5-7B-Instruct")
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2.5-7B-Instruct")

# 构造示例输入(用于固定输入形状)
dummy = tokenizer("你好", return_tensors="pt")

# 导出为 ONNX(opset 版本建议 ≥ 17)
torch.onnx.export(
    model,
    (dummy["input_ids"], dummy["attention_mask"]),
    "qwen.onnx",
    input_names=["input_ids", "attention_mask"],
    output_names=["logits"],
    dynamic_axes={"input_ids": {0: "batch", 1: "seq"}},
    opset_version=17,
)
导出注意事项 大模型导出时建议开启 dynamic_axes 以支持变长输入;若模型含自定义算子,导出可能失败,此时需走第 7 章的 HIP 移植或第 5 章的 ZLUDA。

4.3 选择执行提供者

# 安装 ONNX Runtime(含 ROCm / DirectML 支持)
pip install onnxruntime-rocm   # Linux + ROCm
pip install onnxruntime-directml # Windows + DirectML

安装后可用以下代码查看当前环境可用的执行提供者,确认 AMD 后端是否就绪:

import onnxruntime as ort
print(ort.get_available_providers())
# Linux 期望包含 ROCMExecutionProvider
# Windows 期望包含 DmlExecutionProvider

4.4 加载并指定 AMD 设备(完整示例)

import onnxruntime as ort
import numpy as np

# Linux + ROCm
sess = ort.InferenceSession("qwen.onnx", providers=["ROCMExecutionProvider"])
# Windows 下改用:providers=["DmlExecutionProvider"]

# 构造输入并推理
input_ids = np.array([[1, 2, 3, 4]], dtype=np.int64)
outputs = sess.run(None, {"input_ids": input_ids})
print(outputs[0].shape)

4.5 性能调优与限制

ONNX 方案的优势是跨平台与低配置成本,但也需要了解其边界:

方面 说明
性能 通常略低于原生 ROCm,但可通过图优化(graph optimization)与算子融合缩小差距
算子覆盖 ROCm/DirectML 执行提供者并非覆盖全部 ONNX 算子,不支持的算子会回退到 CPU(变慢)
大模型支持 ONNX Runtime 对 LLM 的 KV Cache、连续批处理支持有限,高吞吐场景建议用 vLLM(见第 8 章)
优化手段 开启 ORT_ENABLE_ALL=1、使用 onnxruntime.transformers.optimizer 做算子融合
适用场景总结 此方案适合跨平台部署不想安装完整 ROCm 环境的用户,也适合把模型作为产品的一部分分发给不同硬件用户。性能敏感的生产推理,仍优先原生 ROCm 或 vLLM。

05方案三 · ZLUDA 兼容层

开源 CUDA 二进制翻译层,让未修改的 CUDA 程序在 AMD GPU 上运行。注意:2026 年已回归个人项目,定位为尝试性方案。

5.1 ZLUDA 工作原理

ZLUDA 是一个开源项目,通过拦截 CUDA 调用并转发到 AMD GPU,使预编译的 CUDA 程序(无源码)无需修改即可运行[7]。它本质上是一个"翻译层":应用以为自己在调用 CUDA,实际底层由 ZLUDA 把请求翻译成 HIP/ROCm 调用交给 AMD 显卡执行。

2026 年 6 月发布了 v6 版本,但需要明确其现状:

2026 年现状:已无商业资助,回归个人周末项目 ZLUDA 作者在 2026 年 6 月的更新中明确说明:项目不再有商业资助,回归个人维护,更新频率将下降[8]。当前主要支持 32 位 PhysX(pre-alpha,未完成)、Blender(基础纹理支持)和部分 PyTorch ML 工作负载,作者建议"能改源码自己编译再试",普通用户应等待正式合并进预览版[8]

5.2 安装与编译

ZLUDA 需要从源码编译,且依赖 ROCm 的 cuBLAS/cuDNN 等价组件,安装门槛较高:

# 克隆 ZLUDA 源码
git clone https://github.com/vosen/ZLUDA.git
cd ZLUDA

# 编译(需要 Rust 工具链与 ROCm 开发环境)
cargo build --release

# 编译产物位于 target/release/zluda.dll(Windows)
# 或 target/release/libzluda.so(Linux)
编译前置条件 Windows 下 ZLUDA 加载器(zluda.exe)已能自动处理性能库加载,但需要自行补齐 ROCm 的 cuBLAS/cuDNN 等价组件[8]。缺少这些库时,依赖矩阵运算的程序会直接失败。

5.3 使用方式

  1. 安装 ZLUDA 运行时 从 GitHub 获取构建产物或自行编译[7]。Windows 下把 zluda.dll 放到 CUDA 程序同目录,或用 zluda.exe 作为加载器启动。
  2. 运行原 CUDA 程序 通过 ZLUDA 加载器启动原 CUDA 版本的可执行文件,ZLUDA 自动拦截 CUDA 调用并转发到 AMD 显卡。
    # Windows:用 ZLUDA 加载器启动 CUDA 程序
    zluda.exe my_cuda_app.exe
    
    # Linux:通过 LD_PRELOAD 注入
    LD_PRELOAD=libzluda.so ./my_cuda_app
  3. 验证兼容性 重度依赖自定义 CUDA 内核或特定性能库的程序可能崩溃或性能异常,需逐项测试。

5.4 兼容性矩阵(2026 年 v6)

应用 / 负载 支持状态 说明
32 位 PhysX pre-alpha 未完成,仅限尝鲜
Blender 基础支持 基础纹理支持,复杂场景可能异常
PyTorch ML 负载 部分支持 部分工作负载可运行,性能与稳定性有限
其他 CUDA 程序 不保证 需逐项测试,依赖特定库的程序大概率失败

5.5 定位与建议

ZLUDA 适合无法获取源码的闭源 CUDA 工具尝鲜玩家(如老游戏 PhysX 效果)。对生产部署,不建议作为依赖项——兼容性并非 100%,且维护节奏不可预期。若模型有源码,优先走 ROCm 或 HIP 移植。

何时值得尝试 ZLUDA 仅当你手头有无法获取源码、且没有 AMD 原生替代品的 CUDA 工具时才值得尝试。绝大多数主流模型都有 ROCm 原生路径,完全不需要 ZLUDA。

06方案四 · DirectML(Windows 懒人方案)

基于微软 DirectML 的 Windows 原生加速,仅需最新 AMD 显卡驱动,无需安装 ROCm。

6.1 DirectML 原理:为什么 Windows 用户可以"零配置"

DirectML 是微软提供的硬件加速 API,兼容所有 DX12 显卡(含 AMD)。它不依赖 CUDA 或 ROCm,而是直接对接 Windows 的 DX12 硬件抽象层——只要显卡驱动支持 DX12,DirectML 就能用。这意味着对 Windows 用户,这是真正的零环境配置路径。

DirectML 的执行路径是:应用 → PyTorch/TensorFlow/ONNX → DirectML → DX12 驱动 → AMD 显卡。相比 ROCm 的原生路径,中间多了一层 DX12 抽象,因此性能通常略低,但换来的是无需安装任何额外驱动或 SDK。

6.2 PyTorch + torch-directml(完整用法)

微软官方推荐的用法(2026 年已改为插件模型,不再使用 privateuseone:0 字符串)[9]

# 安装 torch-directml 插件
pip install torch-directml

# 使用示例
import torch
import torch_directml
dml = torch_directml.device()   # 返回设备对象,不是字符串

tensor1 = torch.tensor([1]).to(dml)
tensor2 = torch.tensor([2]).to(dml)
print((tensor1 + tensor2).item())
注意事项 torch_directml.device() 返回的是设备对象而非字符串,因此不能直接用于 model.to("privateuseone:0")。需使用 model.to(dml) 或将模型手动迁移。部分 PyTorch 算子可能在 DirectML 上不支持,遇到 NotImplementedError 时需回退到 CPU 或改用 WSL2 + ROCm。

6.3 其他生态

  • TensorFlow:官方 tensorflow-directml 包,直接使用 pip install tensorflow-directml 即可。
  • AI 工具:多数本地 LLM 客户端、AI 绘画工具提供"DirectML 启动模式",选择后自动识别 AMD 显卡。例如 Stable Diffusion WebUI 的 DirectML 分支、ComfyUI 的 DirectML 启动参数。
  • ONNX Runtime:使用 DmlExecutionProvider(见第 4 章方案二)。
  • LM Studio:Windows 版支持 Vulkan 后端(也是通过 DX12 层),安装后直接选择 AMD 显卡即可。

6.4 性能对比与建议

场景 DirectML WSL2 + ROCm
安装复杂度 极低(仅需最新驱动) (需装 WSL2 + ROCm 工具链)
推理性能
算子覆盖 有限 完整
推荐场景 快速验证 / 轻度使用 / 配置受限 生产环境 / 性能敏感 / 需要完整训练
性能提示 DirectML 走通用 DX12 路径,性能通常低于原生 ROCm,且部分算子支持有限。适合快速验证和轻度使用;追求性能请用 WSL2 + ROCm。

07方案五 · HIP 移植(开发者)

针对含大量手写 CUDA 算子的自定义模型,用 AMD 官方工具把 CUDA 代码移植为 HIP。

7.1 HIP 与 CUDA 的关系

HIP(Heterogeneous-Computing Interface for Portability)是 AMD 推出的异构计算接口,设计目标就是与 CUDA 保持 API 级兼容:绝大多数 CUDA 代码只需把 cuda 前缀换成 hip 即可编译运行。如果模型包含自定义 CUDA 内核(非主流模型或研究代码),需手动移植到 HIP。AMD 官方提供 HIPIFY 工具链(hipify-clang / hipify-perl),可自动完成大部分 CUDA → HIP 语法转换[10][11]

7.2 用 hipify 自动转换

# hipify-clang 在编译链内自动转换,hipify-perl 是脚本式转换
hipify-clang foo.cu -o foo.cpp   # 或 hipify-perl foo.cu > foo.cpp

90% 以上的语法可自动替换,剩余少量需手动调整。hipify 的转换规则包括:

CUDA 写法 HIP 写法 说明
__global__ __global__ 内核声明宏,两者一致
cudaMalloc hipMalloc 显存分配
cudaMemcpy hipMemcpy 显存拷贝
cudaLaunchKernel hipLaunchKernelGGL 内核启动
threadIdx.x threadIdx.x 线程索引,两者一致
cudaStream_t hipStream_t 流对象

7.3 替换 NVIDIA 依赖库

除语法外,还需把 NVIDIA 闭源库替换为 ROCm 等价组件:

NVIDIA 库 ROCm 等价组件 用途
cuDNNMIOpen深度学习原语库
cuBLASrocBLAS线性代数库
NCCLRCCL多卡通信库
cuFFTrocFFT傅里叶变换库
cuSPARSErocSPARSE稀疏矩阵库
ThrusthipCUB / rocThrust并行算法库

7.4 手动移植要点

自动转换后仍需人工检查以下几类代码,它们是移植失败的高发区:

  1. 架构相关宏与内建函数 __CUDA_ARCH____shfl_sync 等架构相关写法在 HIP 中语义可能不同,需按 ROCm 文档调整。
  2. 纹理 / 表面内存 CUDA 的纹理内存接口与 HIP 差异较大,通常需要重写为普通显存访问。
  3. 原子操作与同步 部分原子操作(如 atomicAdd 对 double 的支持)在 AMD 硬件上的行为与性能不同,需针对性优化。
  4. 向量类型与对齐 float4double2 等向量类型的对齐要求需确认,避免内存对齐错误。

7.5 编译运行与验证

hipcc 编译为 ROCm 可执行文件,即可在 AMD 平台运行:

# 用 hipcc 编译(自动链接 ROCm 运行时)
hipcc foo.cpp -o foo

# 指定目标架构编译(gfx1100 对应 RX 7900 系列)
hipcc --offload-arch=gfx1100 foo.cpp -o foo

# 运行并验证
./foo

HIPIFY 是 ROCm 7.14 官方组件之一[1],此方案适合有源码的开发者,性能与原生 ROCm 一致,但移植工作量取决于代码复杂度。

移植工作量评估 纯计算型内核(矩阵运算、卷积)移植通常很顺利;涉及纹理、多流、复杂同步或深度依赖 cuDNN 特性的代码,工作量会显著上升。建议先跑通最小示例,再逐步迁移完整模型。

08实战案例:本地大模型与 AI 绘画

最常见的两类 AMD 部署场景,给出可直接照做的路径。

8.1 本地大模型(LLM)推理

本地大模型是 AMD 部署最成熟的场景,主流推理工具均已原生支持 AMD GPU:

工具 AMD 支持方式 适用场景
Ollama 原生 ROCm 后端;Windows 官方版依赖 WSL2[5] 个人本地对话、轻量部署,命令行一键启动
LM Studio Vulkan 后端(Windows 免 ROCm)或 ROCm 后端[5] 图形界面、模型管理、多后端切换
vLLM ROCm 一等公民支持,AMD 官方提供 Docker 镜像[15][16] 高吞吐服务、生产级推理、OpenAI 兼容 API
llama.cpp Vulkan / HIP 后端 低资源设备、CPU/GPU 混合推理

8.2 Ollama 详细部署步骤(个人首选)

Ollama 是个人本地对话最省事的方案,原生支持 AMD ROCm 后端。以下为 Linux / WSL2 下的完整流程:

  1. 安装 Ollama
    # Linux / WSL2 一键安装脚本
    curl -fsSL https://ollama.com/install.sh | sh
    
    # 验证安装并查看 GPU 支持
    ollama --version
    ollama ps
  2. 拉取并运行模型
    # 拉取 Qwen2.5(自动选择 GGUF 量化格式)
    ollama pull qwen2.5:7b
    
    # 运行模型(首次启动会加载到 GPU)
    ollama run qwen2.5:7b "用一句话介绍 AMD ROCm"
  3. 确认模型跑在 GPU 上
    ollama ps
    # 输出中 PROCESSOR 列为 100% GPU 即成功
  4. (可选)配置并发与显存
    # 设置环境变量控制并发(默认 4 并发)
    export OLLAMA_NUM_PARALLEL=1
    export OLLAMA_MAX_LOADED_MODELS=1
    ollama serve
Windows 用户注意 Ollama 官方 Windows 版依赖 WSL2,原生 Windows 版需使用第三方构建[6]。若不想用 WSL2,可改用 LM Studio(Vulkan 后端,Windows 免 ROCm)。

8.3 vLLM 生产级部署(高吞吐首选)

vLLM 在 2026 年已成 AMD 一等公民 2026 年 1 月起,vLLM 的 AMD CI 通过率从 2025 年 11 月的 37% 提升到 93%,ROCm 7 相比 ROCm 6 平均推理性能提升约 3.5 倍[16]。AMD 官方提供 vLLM Docker 镜像:
docker pull rocm/vllm:rocm7.14.0_rdna_ubuntu24.04_py3.14_pytorch_2.11.0_vllm_0.23.0
  1. 启动 vLLM 服务(Docker 方式)
    docker run -it --rm \
      --device=/dev/kfd --device=/dev/dri \
      --group-add=video --group-add=render \
      --ipc=host --shm-size=16g \
      -p 8000:8000 \
      rocm/vllm:rocm7.14.0_rdna_ubuntu24.04_py3.14_pytorch_2.11.0_vllm_0.23.0 \
      --model Qwen/Qwen2.5-7B-Instruct \
      --gpu-memory-utilization 0.90 \
      --max-model-len 16384
  2. 验证 OpenAI 兼容 API
    curl http://localhost:8000/v1/chat/completions \
      -H "Content-Type: application/json" \
      -d '{"model":"Qwen/Qwen2.5-7B-Instruct","messages":[{"role":"user","content":"你好"}]}'
  3. 启用自动 attention 后端优化
    # 让 vLLM 自动选择最优 attention 后端(ROCm 上关键优化)
    export VLLM_ROCM_USE_AITER=1
vLLM 推理引擎在 AMD Instinct MI355X 上的吞吐量性能基准对比图
vLLM 在 AMD Instinct MI355X 上运行 DeepSeek-R1 的推理性能基准(来源:AMD ROCm Blogs)
vLLM 连续批处理机制示意图,展示大模型推理请求动态调度原理
vLLM 连续批处理(Continuous Batching)机制:动态调度请求,是高吞吐的关键(来源:vLLM Blog)

8.4 AI 绘画(Stable Diffusion / ComfyUI)

AI 绘画工具对 AMD 的支持同样成熟,以下为 ComfyUI 与 WebUI 的详细步骤:

  1. ComfyUI(推荐) 2026 年 1 月的 Adrenalin 驱动已把 ComfyUI 作为可选一键安装项[5]。Linux 下使用 ROCm 版 PyTorch 直接运行:
    # 克隆 ComfyUI 并安装依赖
    git clone https://github.com/comfyanonymous/ComfyUI.git
    cd ComfyUI
    pip install -r requirements.txt
    
    # 启动(ROCm 版 PyTorch 自动识别 AMD 显卡)
    python main.py --listen 0.0.0.0 --port 8188
    Windows 下可用 DirectML 分支:python main.py --directml
  2. Stable Diffusion WebUI 提供 ROCm 分支(Linux)与 DirectML 分支(Windows),选择对应启动参数即可自动识别 AMD 显卡:
    # Linux + ROCm
    ./webui.sh --use-rocm
    
    # Windows + DirectML
    ./webui-user.bat --use-directml
  3. 性能提示 SD 系列模型对显存带宽敏感,RX 7900 XTX / RX 9070 XT 等大显存带宽的卡体验更佳;显存不足时配合 --medvram / --lowvram 参数。

8.5 常见模型适配速查

模型类型 代表模型 AMD 部署方式
对话 / 指令模型 Qwen、LLaMA、DeepSeek 系列 Ollama / vLLM / LM Studio,ROCm 后端
文生图 Stable Diffusion、FLUX ComfyUI / WebUI,ROCm 或 DirectML
语音识别 Whisper ROCm 版 PyTorch,device="cuda" 直接运行
嵌入 / 重排序 BGE、bge-reranker ROCm 版 PyTorch 或 ONNX Runtime
快速起步建议 个人使用:Ollama 或 LM Studio 跑对话模型,ComfyUI 跑绘画;生产服务:vLLM 跑对话模型。三者都原生支持 AMD,无需改代码。

09性能与显存优化

让 AMD 显卡发挥最大性能的关键技巧。

9.1 量化:用更少显存跑更大模型

量化是降低显存占用、提升吞吐的最有效手段。主流工具原生支持:

量化方式 精度 显存节省 适用工具
GGUF Q4_K_M 4-bit 约 75% Ollama / llama.cpp / LM Studio
GGUF Q5_K_M 5-bit 约 70% Ollama / llama.cpp / LM Studio
AWQ 4-bit 约 75% vLLM(ROCm 支持)
GPTQ 4-bit 约 75% vLLM / Transformers
FP8 / BF16 8-bit / 16-bit FP8 约 50% Instinct MI300/MI350 原生支持

以 7B 模型为例:FP16 约需 14GB 显存,Q4 量化后仅需约 4GB,RX 7600(8GB)这类入门卡也能流畅运行。

9.2 vLLM 推理优化

vLLM 在 ROCm 上提供 7 种 attention 后端,官方建议直接启用自动选择:

# 让 vLLM 自动选择最优 attention 后端
export VLLM_ROCM_USE_AITER=1

配合 PagedAttention、Continuous Batching 等机制,vLLM 在高并发场景下吞吐远高于朴素推理[15]。vLLM 的 7 种 attention 后端覆盖了 Triton、FlashAttention、AITER 等实现,自动选择机制会根据你的 GPU 架构与模型类型挑选最优者。

9.3 环境变量调优

ROCm 提供多个环境变量可显著影响性能,按需设置:

# 指定目标 GPU 架构(避免 hipErrorNoBinaryForGpu)
export HSA_OVERRIDE_GFX_VERSION=11.0.0   # 例:gfx1100
export PYTORCH_ROCM_ARCH=gfx1100

# MIOpen 内核缓存持久化(避免每次启动重新编译)
export MIOPEN_USER_DB_PATH=$HOME/.miopen
export MIOPEN_CUSTOM_CACHE_DIR=$HOME/.miopen

# 显存分配策略(减少碎片)
export PYTORCH_HIP_ALLOC_CONF=garbage_collection_threshold:0.8,max_split_size_mb:128

9.4 MIOpen 缓存优化

MIOpen 首次运行时会为每个卷积/算子生成并编译内核,耗时可能长达数分钟。通过持久化缓存可让后续启动几乎瞬时完成:

  1. 设置缓存目录
    export MIOPEN_USER_DB_PATH=$HOME/.miopen
    mkdir -p $HOME/.miopen
  2. 首次运行预热 运行一次你的模型,让 MIOpen 生成并保存内核缓存。
  3. 后续启动 缓存命中后,启动时间从分钟级降到秒级。升级 ROCm 版本后建议清空缓存重新生成。

9.5 显存优化通用技巧

技巧 做法 适用场景
梯度检查点 训练时开启 gradient_checkpointing 训练 / 微调
低显存模式 WebUI 加 --medvram / --lowvram AI 绘画
上下文窗口控制 限制 --ctx-size 或 max_tokens 本地 LLM
CPU 卸载 llama.cpp 的 --n-gpu-layers 部分层卸载到 GPU 显存不足的 LLM

9.6 Benchmark 验证优化效果

优化前后务必用基准测试量化收益,避免凭感觉判断:

# vLLM 自带 benchmark 脚本(测吞吐与延迟)
python -m vllm.benchmarks.benchmark_throughput \
  --model Qwen/Qwen2.5-7B-Instruct \
  --tensor-parallel-size 1

# 简单测速:对比优化前后 tokens/s
python -c "import torch; from transformers import AutoModelForCausalLM, AutoTokenizer; m=AutoModelForCausalLM.from_pretrained('Qwen/Qwen2.5-7B-Instruct').to('cuda'); t=AutoTokenizer.from_pretrained('Qwen/Qwen2.5-7B-Instruct'); import time; s=time.time(); print(m.generate(**t('你好',return_tensors='pt').to('cuda'),max_new_tokens=100)); print('耗时',time.time()-s)"

10多卡与分布式部署

多张 AMD 显卡的并行配置,RCCL 对标 NVIDIA NCCL。

AMD Instinct MI300X 数据中心 GPU,多卡互联 RCCL 分布式部署场景
AMD Instinct MI300X:192GB HBM3 显存,支持 XGMI 多卡直连,是多卡部署的核心硬件(来源:AMD 官网)

10.1 RCCL 与多卡通信基础

多卡场景下,ROCm 使用 RCCL(对标 NCCL)做 GPU 间通信,PyTorch 的 DistributedDataParallel 等接口在 ROCm 上可直接复用。RCCL 支持三种通信路径:

通信路径 带宽 适用场景
XGMI 互联 最高 Instinct MI300/MI350 多卡(同机箱内直连)
PCIe 直连 消费级 Radeon 多卡(受限于 PCIe 通道数)
网络(InfiniBand) 跨节点分布式训练

先用 rocm-smi --showtopo 查看 GPU 拓扑,确认多卡之间的互联方式,这决定了通信带宽上限。

10.2 多卡推理

vLLM 支持张量并行(tensor parallel),可将大模型切分到多张卡:

# vLLM 张量并行:2 张 AMD 卡
python -m vllm.entrypoints.openai.api_server \
  --model Qwen/Qwen2.5-72B-Instruct \
  --tensor-parallel-size 2

张量并行的原理是把模型的权重与计算按层切分到多张卡,每张卡只负责一部分,通过 RCCL 在每次前向传播时同步。72B 模型在单卡 48GB 上放不下时,可用 2 张 48GB 卡(如 2×W7900D)以张量并行方式运行。

10.3 多卡训练

# PyTorch DDP(ROCm 下自动使用 RCCL)
torchrun --nproc_per_node=2 train.py

PyTorch 的 DistributedDataParallel(DDP)在 ROCm 下会自动检测并使用 RCCL 后端,代码与 CUDA 环境完全一致。数据并行(DP)适合模型能放进单卡、但想加速训练的场景;模型放不下单卡时需用张量并行(TP)或流水线并行(PP)。

10.4 多卡系统配置要点

多卡系统在硬件与内核层面有几处必须注意的配置,否则可能出现系统不稳定或性能异常:

  1. 内核参数 iommu=pt 多卡系统需在内核命令行加入 iommu=pt,否则可能出现系统不稳定或挂起(NCCL 警告)[17]
    # 编辑 GRUB 配置,在 GRUB_CMDLINE_LINUX 中加入 iommu=pt
    sudo sed -i 's/GRUB_CMDLINE_LINUX=""/GRUB_CMDLINE_LINUX="iommu=pt"/' /etc/default/grub
    sudo update-grub
    sudo reboot
  2. 确认 NUMA 亲和性 多路 CPU 系统上,GPU 与 CPU 的 NUMA 节点亲和性影响通信性能,可用 rocm-smi --showtopo 查看并调整进程绑定。
  3. PCIe 通道规划 消费级主板通常只有一条 PCIe x16 通道,多卡带宽受限,建议优先考虑单卡大显存方案。
多卡注意事项 多卡系统需在内核命令行加入 iommu=pt,否则可能出现系统不稳定或挂起(NCCL 警告)[17]。消费级主板通常只有一条 PCIe x16 通道,多卡带宽受限,建议优先考虑单卡大显存方案。

11故障排查与常见错误

部署中最常遇到的问题与解决方案。

11.1 常见错误速查表

错误 / 现象 原因 解决方案
hipErrorNoBinaryForGpu 显卡不在当前 ROCm 构建支持的 gfx 架构列表内[18] 确认显卡 gfx 代号是否被支持;换用支持该架构的 ROCm 版本或社区构建
torch.cuda.is_available() 返回 False ROCm 未正确安装 / 驱动未加载 / 环境变量缺失 检查 rocm-smi 能否看到 GPU;确认 LD_LIBRARY_PATH 指向 /opt/rocm
MIOpen 初始化失败 / 首次运行极慢 MIOpen 正在生成内核缓存 耐心等待首次缓存生成;设置 MIOPEN_USER_DB_PATH 持久化缓存
驱动未加载(amdgpu) 内核模块未加载或冲突 检查 /etc/modprobe.d/ 配置,重启或重新加载模块[17]
多卡系统挂起 缺少 iommu=pt 内核参数 在 GRUB 内核命令行加入 iommu=ptupdate-grub[17]
Ollama 找不到 AMD GPU Windows 原生版缺 ROCm 运行时 使用 WSL2 官方版,或第三方原生构建[6]
torch.version.hip 为 None 装成了 CPU 版 PyTorch 卸载后用 ROCm 版 wheel 重装(见 3.5)
Docker 容器内看不到 GPU /dev/kfd / /dev/dri 未透传,或用户不在 video/render 组 --device=/dev/kfd --device=/dev/dri --group-add=video --group-add=render
DirectML 算子报 NotImplementedError 算子不在 DirectML 支持列表 回退 CPU 或改用 WSL2 + ROCm

11.2 排查思路(三步定位法)

  1. 确认硬件可见
    rocm-smi          # 应列出你的 AMD 显卡
    rocminfo          # 查看 gfx 架构代号
  2. 确认框架可见
    python3 -c "import torch; print(torch.cuda.is_available())"
  3. 核对版本匹配 确认 ROCm 版本、PyTorch 版本、显卡 gfx 架构三者兼容,参考官方兼容矩阵[1]

11.3 日志与诊断工具

定位问题时,善用以下诊断命令能大幅缩小排查范围:

# 查看 GPU 状态(温度、功耗、利用率)
rocm-smi --showtemp --showpower --showuse

# 查看 GPU 拓扑(多卡场景)
rocm-smi --showtopo

# 查看内核驱动日志
dmesg | grep -i amdgpu | tail -50

# 查看 ROCm 版本
cat /opt/rocm/.info/version
hipcc --version

11.4 社区求助指南

若自行排查无果,可携带以下信息到社区求助,能显著提高被解答的效率:

  1. 整理环境信息 操作系统版本、ROCm 版本、PyTorch 版本、显卡型号与 gfx 代号(rocminfo 输出)。
  2. 附上完整报错 复制完整错误堆栈(不要只贴一行),并说明复现步骤。
  3. 选择求助渠道 ROCm 官方 GitHub Issues、AMD 开发者社区、魔搭 AMD ROCm 专区、Datawhale AMD 开发者社群(见第 14 章)。

12选型建议与决策矩阵

按你的场景对号入座,并对比五个方案的综合表现。

12.1 场景速查

你的场景 推荐路径 理由
Linux 服务器 / 追求最佳性能 ROCm 生态 官方支持最全、性能最优、零代码
Windows 桌面、不想装复杂环境 DirectML 仅需 DX12 驱动,开箱即用
Windows 但追求性能 WSL2 + ROCm 兼顾性能与稳定性
跨平台部署、多硬件兼容 ONNX + 执行引擎 一份模型多处运行
闭源 CUDA 程序(无源码) ZLUDA 唯一不改代码的路径,但兼容性有限
自定义 CUDA 算子、有源码 HIP 移植 hipify 自动转换,性能与原生一致

12.2 综合对比

以下雷达图从四个维度对比五条路径(评分基于作者综合评估,供快速参考):

图 2:五条路径综合能力对比(1–5 分,作者评估)

12.3 成本与硬件选型

选型不仅看软件路径,还要结合硬件成本。下表给出不同预算档位的 AMD 显卡选型建议:

AMD Radeon RX 9070 XT 消费级显卡,RDNA4 架构,适合本地大模型部署
AMD Radeon RX 9070 XT(RDNA4 架构):16GB GDDR6,消费级 AI 部署的性价比之选(来源:AMD 官网)
预算档位 推荐显卡 显存 可跑模型
入门(3–5K) RX 7600 / RX 9060 8–16GB 7B 量化模型、SD 1.5 绘画
主流(6–10K) RX 7800 XT / RX 9070 16GB 14B 量化模型、SDXL 绘画
高端(10K+) RX 7900 XTX / RX 9070 XT 24GB 32B 量化模型、FLUX 绘画
专业(云 / 服务器) Instinct MI300X / MI350X 192–288GB 70B+ 全量模型、多卡训练
省钱提示 预算有限时,可先通过第 14 章的免费算力(魔搭激励计划、AMD 中文站 100 小时)在云端验证方案,再决定是否购买硬件。

12.4 决策建议总结

最终建议 90% 的用户应选择 ROCm 生态(Linux/WSL2),这是性能、兼容性与长期维护的最优解。仅当你有明确的 Windows 桌面快速体验需求时选 DirectML,有跨平台分发需求时选 ONNX,有闭源 CUDA 工具时再考虑 ZLUDA。HIP 移植只适合有源码且需要自定义算子的开发者。

13注意事项与常见坑

部署前必读,避免踩坑。

13.1 版本匹配

ROCm 版本需与显卡驱动、深度学习框架版本严格对应。PyTorch 2.12 起,CUDA 12.8 wheel 已进入弃用流程,ROCm 版安装请以 AMD 官方 AI Ecosystem 文档为准[2][12]。版本不匹配常表现为 hipErrorNoBinaryForGpu 等错误。

13.2 TensorFlow 的 ROCm 支持较弱

TensorFlow 的 ROCm 支持比 PyTorch 弱,更偏社区维护[13]。若模型基于 TensorFlow,建议优先考虑 ONNX 转换,或改用 PyTorch 生态。

13.3 性能预期

高端 AMD 卡(RX 9000 系列、Instinct MI300/MI350)配合 ROCm 可追平同级别 NVIDIA 显卡;入门级消费卡可能因显存带宽、优化程度存在差距。DirectML 与 ZLUDA 通常低于原生 ROCm。

13.4 小众模型与专属工具

若模型深度绑定 NVIDIA 专属工具(TensorRT、OptiX 等),无法直接运行,需转换为 ONNX 或用 ROCm 等价工具重构。

13.5 老显卡的处理

RX 6000 消费卡、Radeon VII 等不在 ROCm 7.14 官方列表[1]。可尝试:社区维护的 ROCm 构建、Ollama 自带旧版 ROCm 运行时(但已不在新版本支持列表)[6],或改用 DirectML / ONNX 路径。

13.6 数据与安全注意事项

部署本地模型时,以下几点值得特别留意:

  1. 本地部署 ≠ 绝对安全 本地模型虽然数据不出本机,但模型本身可能包含偏见或错误信息,涉及敏感决策时需人工复核。
  2. 服务暴露范围 用 vLLM / Ollama 启动服务时,默认监听地址需确认。若需公网访问,务必加鉴权(如 API Key),避免被滥用。
  3. 模型来源可信度 从魔搭、HuggingFace 下载模型时,尽量选择官方账号或高星仓库,避免下载被投毒的模型文件。

13.7 生产环境运维建议

若要把 AMD 部署方案用于生产,建议提前规划以下几点:

方面 建议
版本固化 用 Docker 镜像固化 ROCm + PyTorch + 应用版本,避免升级导致环境漂移
监控 rocm-smi 或 AMD 监控工具跟踪 GPU 温度、显存、利用率,设置告警
备份 MIOpen 缓存、模型权重、配置文件定期备份
灰度升级 升级 ROCm 前先在测试环境验证,再灰度到生产
日志 统一收集应用与 GPU 日志,便于故障回溯

14社区资源与开发者计划

AMD 正通过魔搭社区、Datawhale 等开源社区大力补齐 ROCm 生态,并提供免费算力与官方支持。本章把每条资源展开成可直接照做的详细教程。

14.1 魔搭社区 × AMD:ROCm 中国开发者专区

2025 年 12 月,AMD 携手 Datawhale 与魔搭社区(ModelScope)正式成立「AMD ROCm 中国开发者专区」,目标是打破硬件与软件开发之间的壁垒,为开发者提供系统学习、动手实践、技术共创与开源协作的一体化成长体系[19]

魔搭社区 AMD ROCm 中国开发者专区,免费 GPU 算力与 ROCm 教程资源
魔搭社区「AMD ROCm 中国开发者专区」:AMD × Datawhale × ModelScope 三方共建(来源:魔搭社区)

14.1.1 专区三大内容方向

01 ROCm 开源生态实战:基于开放软件平台,提供从环境搭建到模型优化的保姆级教程
02 大模型端侧部署全流程:深度解析如何将大模型高效部署到 AMD 硬件设备,优化推理性能
03 行业解决方案实战案例:汇聚 AMD 在智能内容创作、游戏娱乐、企业生产力等场景的成功案例

14.1.2 如何加入与使用

  1. 访问魔搭社区:打开 modelscope.cn,注册或登录账号(支持手机号 / 阿里云账号 / 微信)。
  2. 进入学习中心:在社区顶部导航进入「学习」板块,搜索「AMD ROCm 中国开发者专区」,即可看到专区全部教程与活动入口。
  3. 加入开发者社群:专区页面提供微信群二维码,扫码加入 Datawhale AMD 开发者社区群,获取答疑与组队学习机会。
  4. 开始动手实践:配合 14.2 的激励计划领取免费算力,在魔搭 Notebook 中直接运行 ROCm 教程代码。
价值点 专区的意义在于把「硬件门槛」和「软件生态门槛」同时降下来:既有官方教程告诉你环境怎么搭,又有免费算力让你不用先买显卡就能上手,还有社群解决你卡住的问题。

14.2 魔搭 × AMD 开发者激励计划:最高 1000+ 小时免费算力

魔搭社区联合 AMD 正式启动「开发者激励计划」,通过参与技术分享与动手实践,开发者可申请获得最高 1000 小时以上的 GPU 算力支持。计划包含三条完全独立、可叠加的任务路径[20]

路径 任务内容 奖励 前置条件
Step 0 · 注册 通过魔搭 Notebook 活动页授权绑定 AMD 开发者计划账号 +100 小时 无,约 3 分钟
Option 1 · 文章 在「学习圈」发布带 #AMD GPU 激励计划 标签的原创技术文章 25 小时/篇,最多 50 小时 Step 0
Option 2 · Notebook 在「灵感集」发布基于 AMD GPU 的代码实践(SD 部署、LLM 微调/部署、Agent 等) 50 小时/篇,最多 150 小时 Step 0
Option 3 · CreateSpace 加入「AMD Developer Center」组织,在 CreateSpace 部署 AMD GPU 应用 按需分配 700+ 小时 Step 0 + 1 篇过审文章或高质量 Notebook

14.2.1 Step 0:注册 AMD 开发者计划(必做,+100 小时)

  1. 进入活动入口:登录魔搭社区 modelscope.cn,进入「我的 Notebook」页面,在主视觉区找到「AMD 开发者激励计划」入口并点击进入活动流程。
  2. 跳转 AMD 官网注册:页面将跳转到 AMD 开发者计划网站,选择「使用魔搭账号授权登录」以绑定账号。
  3. 完善个人资料:按提示填写个人基础信息(姓名、邮箱/手机号等),提交后立即成为 AMD Developer Program 成员,无需额外审核。
  4. 返回启用 AMD GPU:回到魔搭「我的 Notebook」或新建 Notebook,在运行时环境列表中即可看到 AMD GPU 选项(如 MI300X)及对应镜像,选择后即可正常使用。
常见问题 若在 Notebook 页面看不到活动入口,可尝试退出登录后重新登录,或检查网络连接。注册完成后,AMD GPU 算力即自动开通,无需再次申请。

14.2.2 Option 1:发布原创技术文章(25 小时/篇,最多 50 小时)

  1. 撰写文章:在魔搭社区「学习圈」板块发布原创技术文章。建议内容方向:ROCm 安装与配置经验、AMD GPU 大模型部署手记、Ryzen AI 开发初体验、AMD GPU 推理优化技巧等。
  2. 添加标签:发布时选择话题标签 #AMD GPU 激励计划
  3. 等待审核:提交后进入审核队列,审核周期约 5 个工作日。评审维度包括原创度、技术相关性、代码/数据/结果完整性。
  4. 获得算力:审核通过后,系统自动发放对应 GPU 小时数。

14.2.3 Option 2:发布 Notebook 代码实践(50 小时/篇,最多 150 小时)

  1. 编写 Notebook:在魔搭社区「灵感集」板块发布基于 AMD GPU 的 Notebook 代码实践,例如 Stable Diffusion 部署、LLM 微调或部署、Skill Agent 搭建、推理优化实践、Agent 构建等。
  2. 添加标签:发布时包含标签 #AMD GPU 激励计划
  3. 等待审核:提交后约 5 个工作日审核。评审维度包括自动化执行测试、代码注释完整性、环境搭建说明、技术相关性。
  4. 获得算力:审核通过后系统自动发放 GPU 小时数。

14.2.4 Option 3:CreateSpace 部署应用(按需分配 700+ 小时)

在魔搭 CreateSpace 部署 AMD GPU 应用,需先加入专属组织以获得 AMD 独占 GPU 资源:

  1. 申请加入组织:访问 modelscope.cn/organization/AMD_Dev(或搜索「AMD Developer Center」),点击「申请加入」,在申请理由中附上资质证明。
  2. 提交资质:资质要求为已注册 AMD 开发者计划(Step 0),且已在魔搭发布至少 1 篇过审技术文章或 1 个高质量 AMD 相关 Notebook。申请理由中需填写 AMD 开发者账号 ID(在 AMD 开发者计划 → Profile 中可查)。
  3. 等待审批:审批通过后成为组织成员,在 CreateSpace 创建或配置应用时即可选择 AMD 独占 GPU 资源(如 MI308X)及对应镜像。
  4. 提交部署:提交应用后约 5 个工作日审核。评审权重:安全性 25% + 功能完整度 25% + AMD 技术相关性 20% + 用户体验 15% + 创新性 15%。
  5. 获得算力:审核通过后系统自动发放对应 GPU 小时数(按应用质量由 AMD 团队最终确定)。
FAQ 要点 三条路径相互独立、奖励可叠加,但注册 AMD 开发者计划(Step 0)是所有路径的前置条件。每个用户最多同时运行 1 个 CreateSpace 应用和 1 个 Notebook。资源紧张时,已发布高质量文章/Notebook 的开发者将获得优先分配。

14.3 AMD AI 开发者计划(全球与中文站)

AMD AI Developer Program 面向全球开发者提供免费云算力、专属 AI 培训、专家支持与独家开发者资源[21]。2026 年 5 月,AMD AI 开发者计划中文站(developer.amd.com.cn)正式上线,为中国开发者提供本地化体验[22]

14.3.1 全球版:AMD AI Developer Program

$100 AMD Developer Cloud 免费云额度(Instinct MI300X,裸金属 GPU 实例)
$50 Fireworks AI 托管 LLM 端点额度(自发放起 90 天内有效)
专属 AI 培训、专家支持、活动优先邀请、技术内容发布机会

全球版申请流程:访问 developer.amd.com/ai-developer-program 注册并提交申请,说明计划如何使用 GPU 额度(推理/训练/微调),AMD 审核通过后即可在 Dashboard 的「Member Perks」中点击「Request Cloud Credits」领取[21]。云额度通常自入账起 30 天内有效,仅适用于 AMD Instinct MI300X GPU。

14.3.2 中文站:AMD AI 开发者计划(中国区官方平台)

中文站针对中国网络环境做了本地化优化,无需科学上网即可访问,核心亮点如下:

亮点 说明
3 种本地化登录 微信扫码 / 魔搭社区账号授权 / 手机号邮箱验证码,一键直达
100 小时免费算力 活动期间注册登录即送中国区专属额度,基于 Radeon PRO W7900D 等专业 GPU
100 积分奖励 完善个人基础信息、项目环境与偏好、学术身份后获得,可等额兑换云算力券
6 大核心权益 围绕技术、资源、交流三大维度,含专属技术支持微信群、积分兑换算力券等

14.3.3 中文站注册与领取算力(详细步骤)

  1. 访问中文站:打开 developer.amd.com.cn/login,选择微信扫码、魔搭账号授权或手机号/邮箱验证码登录。
  2. 完善注册表单:首次登录会跳转注册表单,按提示填写姓名、邮箱/手机号并完成验证,即可成为 AMD Developer Program 成员。
  3. 完善信息领积分:进入会员中心,补全「个人基础信息 → 项目环境与偏好 → 学术身份」,提交后获得 100 积分。
  4. 进入 Radeon Cloud:登录后在中文站首页一键进入 AMD 开发者云(Radeon Cloud),活动期间注册成员免费获得 100 小时中国区专属算力额度。
  5. 选择模板创建工作区:平台内置开箱即用的技术模板与预配置工作区(如 ROCm + PyTorch),选择模板 → 启动工作区 → 在浏览器内进入开发环境,无需自行配置环境。

14.3.4 积分兑换云算力券(详细流程)

积分兑换的完整逻辑是:先在 AMD AI 开发者计划中文站消耗积分生成云算力券链接,再前往 AMD 开发者云平台完成兑换入账。兑换规则:1 积分 = 1 小时 GPU 云算力,100 积分起兑,兑换小时数不超过当前剩余可兑换积分数,云算力券通常自兑换日起 30 天内有效[22]

  1. 进入兑换区:从中文站主页面或活动入口进入云算力兑换区域。
  2. 发起兑换:在兑换活动页点击「立即兑换」,输入想兑换的云算力小时数,点击「去兑换」。
  3. 复制兑换链接:兑换成功后复制生成的兑换链接。
  4. 登录开发者云平台:访问 AMD 开发者云平台,使用 GitHub 或魔搭账号登录并完成授权。
  5. 兑换入账:点击右上角头像进入 Profile → 点击「Redeem Credits」→ 在「Coupon Link」输入框粘贴兑换链接 → 点击「Redeem」完成兑换。
注意事项 兑换的是线上云算力服务,不是实物或现金;请勿转售或违规获取积分。云算力券过期后未使用将失效,请及时兑换使用。

14.4 hello-rocm:Datawhale 的 ROCm 开源教程

Datawhale 主导的 hello-rocm 项目系统覆盖 AMD ROCm 平台大模型的完整使用链路,从环境安装(ROCm + PyTorch + uv)到部署、微调训练与 GPU 编程,并内置可安装到 AI 编程工具的 hello-rocm Skill[23]

14.4.1 项目定位与学习路径

hello-rocm 的目标是让 AMD GPU 不只是一块显卡,而是进入 AI 开发世界的真实起点。项目建议的学习顺序为:先完成环境安装(00-Environment),再学习部署(01-Deploy)与微调(02-Fine-tune),最后探索算子优化与 GPU 编程(03-Infra)。初学者可在环境就绪后从 LM Studio 或 vLLM 部署开始。

阶段 内容 推荐工作区模板
00 环境安装 ROCm + PyTorch + uv 统一环境安装(Windows / Ubuntu) ROCm + PyTorch
01 模型部署 Gemma 4 / Qwen3 / Qwen3.5 等模型的 LM Studio、vLLM、Ollama、llama.cpp 部署 ROCm + PyTorch
02 微调训练 Qwen3-8B、Qwen3.5-4B、Gemma4 等 LoRA 微调实战 ROCm + PyTorch + Transformers
03 算子优化 ROCm 算子优化实践、GPU 编程 ROCm + HIP 开发环境

14.4.2 已支持模型与部署框架

hello-rocm 已覆盖主流大模型的「多框架推理 + 微调实践」,且持续扩充:

模型 部署框架 微调教程
Qwen3 LM Studio / vLLM / Ollama / llama.cpp Qwen3-0.6B、Qwen3-8B LoRA 微调
Qwen3.5 LM Studio / vLLM / Ollama / llama.cpp Qwen3.5-4B LoRA 微调
Gemma4 LM Studio / vLLM / Ollama / llama.cpp Gemma4-E4B LoRA 微调(ModelScope 单卡)
MiniCPM5 / MiniCPM-V 4.6 / MiniCPM-o 4.5 llama.cpp / vLLM / Web Demo 全双工
具身智能策略 ACT / SmolVLA / Pi0 / Pi0.5 复刻案例 ROCm 训练 Notebook

14.4.3 安装 hello-rocm Skill(装进你的 AI 助手)

如果你使用支持 Skills、Rules 或 Agent 配置的 AI 编程工具,可以直接使用项目内置的 hello-rocm Skill。它会根据仓库的目录结构、Reference 索引、GPU 架构表、部署教程和排障清单,自动定位到具体文档与官方链接。

  1. 获取 Skill:克隆或下载 datawhalechina/hello-rocm 仓库,找到 src/hello-rocm-skill 目录。
  2. 安装到工具:将 Skill 安装或加载到合适位置(例如 .claude/skills.cursor/skills.agents/skills)。
  3. 开始使用:直接向 AI 助手提问,例如「我的 AMD GPU 能不能跑 ROCm?」「我想最快跑通一个本地大模型应该看哪篇?」「vLLM / Ollama / llama.cpp 在 ROCm 上怎么装?」「torch.cuda.is_available() 返回 False 怎么排查?」。

14.4.4 在 Radeon Cloud 上跑通第一个 ROCm 任务

hello-rocm 与 AMD Radeon Cloud 深度配套,平台预置了开箱即用的环境,建议起步路径:

  1. 启动工作区:在 Radeon Cloud 启动一个内置 ROCm + PyTorch 模板的工作区。
  2. 跑通推理:参考仓库 01-deploy 的 Gemma4 / Qwen3 / Qwen3.5 部署教程完成推理。
  3. 体验训练:进入 02-fine-tune 完成 LoRA 微调实战。
  4. 进阶底层:学习 03-infra 算子优化,了解 GPU 底层原理。

14.5 SWIFT:魔搭生态的 AMD 微调框架

SWIFT(Scalable lightWeight Infrastructure for Fine-Tuning)是魔搭社区开源的模型微调与部署框架,已正式支持 AMD ROCm 训练[24]。配合魔搭的 AMD GPU 算力,可在 Notebook 中直接完成 LoRA / 全参微调,与 14.2 的激励计划形成「算力 + 工具」闭环。

14.5.1 环境准备

在 AMD ROCm 环境下使用 SWIFT 前,先确认环境满足要求:

# 1. 确认 GPU 与 ROCm 环境(rocm-smi 能看到 GPU 设备)
rocm-smi

# 2. 确认 PyTorch 为 ROCm 版本
python -c "import torch; print(torch.version.hip)"

# 3. 安装 SWIFT(推荐使用国内源加速)
pip install ms-swift -U -i https://pypi.tuna.tsinghua.edu.cn/simple

# 4. 验证安装
swift --version

14.5.2 环境检查(多卡场景)

SWIFT 官方 AMD 支持文档建议在训练前用 rocm-smi 检查 GPU 拓扑(XGMI 互联、NUMA 亲和性),确保多卡通信正常[24]。单卡场景可跳过此步。

# 查看 GPU 拓扑(XGMI 互联与 NUMA 节点)
rocm-smi --showtopo

# 查看显存使用
rocm-smi --showmeminfo vram

14.5.3 LoRA 微调示例(命令行)

以 Qwen 系列模型为例,使用 SWIFT 命令行即可完成 LoRA 微调:

# 使用魔搭模型 ID 直接微调(自动从 ModelScope 下载)
swift sft \
  --model Qwen/Qwen2.5-7B-Instruct \
  --train_type lora \
  --dataset "AI-ModelScope/alpaca-cleaned#1000" \
  --output_dir output/qwen-lora \
  --max_length 2048 \
  --batch_size 1 \
  --gradient_accumulation_steps 4 \
  --learning_rate 1e-4 \
  --num_train_epochs 1
提示 在 AMD GPU 上运行时,若遇到算子兼容问题,可尝试设置 HSA_OVERRIDE_GFX_VERSIONPYTORCH_ROCM_ARCH 环境变量(具体值取决于你的 GPU 架构,如 gfx1100)。SWIFT 官方已通过 PR #9069 验证 AMD ROCm 训练支持[24]

14.6 免费算力与学习资源速查

下表汇总了本章介绍的全部资源,方便快速对比选择:

资源 算力 / 权益 适用人群 入口
AMD AI Developer Program(全球) $100 Developer Cloud 额度(MI300X) 全球开发者,需申请审核 developer.amd.com/ai-developer-program
AMD AI 开发者计划中文站 100 小时中国区专属算力 + 100 积分 中国开发者,微信/魔搭一键登录 developer.amd.com.cn
魔搭 × AMD 激励计划 最高 1000+ 小时(文章/Notebook/CreateSpace) 愿意产出技术内容的开发者 modelscope.cn/learn/433641
hello-rocm 教程 免费开源教程 + Skill,无算力 想系统学习 ROCm 的初学者 github.com/datawhalechina/hello-rocm
SWIFT 微调框架 免费开源框架,需自有算力 想在 AMD 上微调模型的开发者 swift.readthedocs.io

14.6.1 实战案例:白嫖 48GB 显存跑 DeepSeek

魔搭社区已有开发者利用 AMD AI 开发者计划提供的免费云 GPU(Radeon PRO W7900D,48GB 显存)完成 DeepSeek 的私有化部署实战,全程零成本,适合零基础读者跟着做[25]。核心步骤概览:

  1. 注册领取算力:访问 AMD AI 开发者计划专属注册链接,用手机号注册登录,进入「AMD 开发者云」→ 点击「Create Template」,Container Image 选择 AMD OneClick Base (rocm7.2.1-py3.12),创建后点击「Launch」进入云端终端。
  2. 检查环境:依次运行 rocm-smi(确认 GPU 挂载)、rocminfo | grep gfx(确认架构 gfx1100)、ls /dev/dri/renderD*(确认 GPU 数量)、amd-smi static --vram(确认 48GB 显存)、pip show vllm(确认 vLLM 已预装)。
  3. 设置环境变量export PYTORCH_ROCM_ARCH="gfx1100"export HSA_OVERRIDE_GFX_VERSION=11.0.0export HF_ENDPOINT=https://hf-mirror.com
  4. 下载模型:用魔搭下载 deepseek-ai/DeepSeek-R1-Distill-Qwen-14B(约 28GB,FP16),国内直连速度快。
  5. 启动 vLLMvllm serve /workspace/models/DeepSeek-R1-14B --max-model-len 16384 --gpu-memory-utilization 0.90 --trust-remote-code --port 8000,出现 Application startup complete 即成功。
  6. 打通公网:用 ngrok 将本地 8000 端口映射为公网地址,即可在 Cherry Studio / OpenCode 等客户端中配置 OpenAI 兼容 API 使用。
参考价值 该案例完整演示了「免费算力 → 云端环境 → 模型下载 → vLLM 推理 → 公网访问」的闭环,是本章所有资源的最佳落地示范。DeepSeek-R1-Distill-Qwen-14B 的 FP16 推理仅需约 28GB 显存,48GB 的 W7900D 完全够用。

14.6.2 如何选择适合自己的路径

你的情况 推荐路径
零基础、只想先体验 AMD 算力 中文站注册 → 领取 100 小时 → 用内置模板跑通第一个模型
有技术内容创作习惯 魔搭激励计划:发文章 + Notebook,快速累积 200 小时
想长期部署应用 加入 AMD Developer Center 组织 → CreateSpace 部署 → 700+ 小时
想系统学习 ROCm hello-rocm 教程 + 安装 Skill 到 AI 助手,边学边练
想在 AMD 上微调模型 SWIFT 框架 + 魔搭算力,Notebook 中直接 LoRA 微调