一、引言:为什么 ROCm.ai 不是又一次"ROCm 升级"

过去十几年里,CUDA 之所以成为难以撼动的标准,并非因为 NVIDIA 的硬件算力绝对领先,而是因为它构建了一套从语言到算子库、再到框架适配与调试工具的完整闭环。任何挑战者只要停留在"再写一套驱动、再做一个 cuDNN 等价物"的层面,就无法真正动摇 CUDA 的开发者心智份额。

ROCm.ai 的关键转变在于:它不再试图在每一个层级与 CUDA 做 1:1 的对位复刻,而是引入了一个AI 驱动的自动化优化层,把"手写高性能算子"这一 CUDA 生态最深的护城河,部分地交给编译器与 AI 搜索来完成。同时,借助 HIP 翻译层与跨硬件编译器(Modular/Mojo、Triton)的协同,ROCm.ai 试图把"硬件绑定"从开发者的必选项变成可选项。

官方给出的数据是:在同一硬件上,相比 ROCm 7,ROCm.ai 的平均推理性能提升 3.3x,训练性能提升 2.4x。如果这个数据具有普遍代表性,它意味着 ROCm 的工程重心已经从"补齐功能"转向"逼近甚至局部超越 CUDA 的算子性能"。

二、ROCm.ai 技术栈整体架构

ROCm.ai 并非单一软件,而是三层抽象的叠加:统一开发者入口(ROCm CLI + AMD Skills)AI 驱动优化引擎底层 ROCm 运行时与算子库栈。其架构关系如下:

flowchart TD DEV["开发者 / 上层框架<br/>PyTorch / JAX / vLLM / SGLang"] --> CLI["ROCm CLI<br/>统一安装 / 配置 / 部署 / 诊断"] CLI --> SKILL["AMD Skills<br/>预构建 AI 技能包<br/>(LLM推理 / 训练 / 微调 / RAG)"] SKILL --> OPT["AI 驱动优化引擎<br/>自动内核调优 / 计算图优化 / 内存布局优化"] OPT --> RT["ROCm Runtime<br/>设备管理 / 内存管理 / 内核调度 / HSA"] RT --> HIP["HIP 编程模型<br/>CUDA-like, 跨 NVIDIA/AMD"] RT --> LIB["数学与通信库"] LIB --> L1["MIOpen<br/>深度学习卷积/池化/归一化"] LIB --> L2["rocBLAS<br/>BLAS L1/L2/L3"] LIB --> L3["RCCL<br/>集合通信 (NCCL 兼容)"] LIB --> L4["Composable Kernel<br/>算子合成 / tile 调优"] LIB --> L5["rocRAND/rocFFT/rocSPARSE/hipCUB"] HIP --> COMP["LLVM / AMDGPU 编译器后端<br/>AOT 代码对象 / hipify"] L4 --> COMP COMP --> HW["硬件层"] HW --> H1["Instinct MI455X<br/>Helios 机架级平台"] HW --> H2["MI430X<br/>科学计算"] HW --> H3["MI350P<br/>PCIe 形态"] HW --> H4["Venice (第五代 EPYC) +<br/>Pensando 网络"]

整个栈的核心设计哲学是:上层把"选择最优实现"的决策交给 AI 搜索与编译器,下层保持与 CUDA API 形态的高度兼容(HIP),中间通过统一 CLI 把碎片化的安装与配置收敛为一条命令。这与 CUDA 的"NVIDIA 全栈自研、闭源锁定"形成鲜明对比。

三、ROCm CLI:收敛碎片化体验

ROCm 历史上最被诟病的不是性能,而是安装与配置的碎片化:DKMS 内核模块、amdgpu 驱动版本、rocm-coreROCm_PATH 环境变量、容器镜像与宿主驱动版本对齐、多 GPU 的 topology 与 NUMA 绑定……这些问题让许多开发者在第一次接触 ROCm 时就放弃了。

ROCm CLI 的定位类似 nvidia-smi + cuda-toolkit 安装器 + nvidia-container-toolkit 的合体,但更强调"一条命令贯穿全生命周期"。其设计目标可归纳为:

  1. 统一安装:屏蔽底层包管理器差异(apt / dnf / 容器),自动处理内核模块与用户态库的版本匹配。
  2. 环境诊断:自动检测 amdgpu 驱动加载状态、GPU topology、HSA 运行时可达性、PCIe 与 NUMA 亲和性,输出与 NVIDIA nvidia-smi topo -m 等价的拓扑视图。
  3. 部署编排:对接容器运行时(ROCm 容器即插即用),自动注入设备挂载与权限。
  4. 技能分发:作为 AMD Skills 的安装入口(详见第六节)。
# 典型安装与诊断流程(示意)
rocm-cli install --release 7.x --stack ai        # 安装 AI 全栈组件
rocm-cli doctor                                  # 环境自检:驱动/拓扑/HSA/库版本
rocm-cli skill install llm-inference             # 拉取并校验一个 AMD Skill
rocm-cli run --topology=numa-aware ./train.py    # 按 NUMA 亲和性自动绑定 GPU

CLI 的技术价值不在于"命令更好看",而在于它把过去散落在 wiki、issue、Dockerfile 里的隐性知识显式编码进工具,降低了从"能跑"到"跑得对"的工程成本。

四、HIP 与 CUDA 迁移:翻译层的技术现实

HIP(Heterogeneous-compute Interface for Portability)是 ROCm.ai 中"承接 CUDA 生态"的关键一环。它的设计前提是:绝大多数 CUDA 代码不必重写,而应能被机械地翻译

4.1 hipify 工具链:文本替换 vs AST 重写

ROCm 提供两套 hipify 工具:

  • hipify-perl:基于正则的文本替换工具,速度快、无依赖,适合大规模批量转换,但对宏展开、模板等复杂场景可能误替换。
  • hipify-clang:基于 Clang AST 的语义级重写,准确度高,能处理类型推导、命名空间限定等 perl 版难以覆盖的场景,但依赖完整 Clang 工具链。

两者都依赖一张 CUDA → HIP 的 API 映射表。核心映射关系如下:

维度 CUDA HIP 说明
头文件 cuda_runtime.h hip/hip_runtime.h 入口头文件
显存分配 cudaMalloc hipMalloc 签名一致
显存释放 cudaFree hipFree 签名一致
数据拷贝 cudaMemcpy hipMemcpy 枚举值 cudaMemcpyHostToDevicehipMemcpyHostToDevice
设备同步 cudaDeviceSynchronize hipDeviceSynchronize 一一对应
流/事件 cudaStreamCreate / cudaEventRecord hipStreamCreate / hipEventRecord API 同构
设备查询 cudaGetDeviceCount / cudaSetDevice hipGetDeviceCount / hipSetDevice 一一对应
错误码 cudaError_t / cudaSuccess hipError_t / hipSuccess 类型等价
内核启动 kernel<<<g,b,smem,stream>>>(args) hipLaunchKernelGGL(kernel, g, b, smem, stream, args) HIP 也支持 <<<>>> 语法,但宏形式更可移植

4.2 迁移代码示例:向量加法

CUDA 原始代码:

// vector_add.cu  —— CUDA 原生
#include <cuda_runtime.h>

__global__ void vectorAdd(const float* a, const float* b, float* c, int n) {
    int i = blockIdx.x * blockDim.x + threadIdx.x;
    if (i < n) c[i] = a[i] + b[i];
}

int main() {
    const int n = 1 << 20;
    const int bytes = n * sizeof(float);
    float *h_a = (float*)malloc(bytes), *h_b = (float*)malloc(bytes), *h_c = (float*)malloc(bytes);
    float *d_a, *d_b, *d_c;

    cudaMalloc(&d_a, bytes); cudaMalloc(&d_b, bytes); cudaMalloc(&d_c, bytes);
    cudaMemcpy(d_a, h_a, bytes, cudaMemcpyHostToDevice);
    cudaMemcpy(d_b, h_b, bytes, cudaMemcpyHostToDevice);

    int threads = 256, blocks = (n + threads - 1) / threads;
    vectorAdd<<<blocks, threads>>>(d_a, d_b, d_c, n);
    cudaDeviceSynchronize();

    cudaMemcpy(h_c, d_c, bytes, cudaMemcpyDeviceToHost);
    cudaFree(d_a); cudaFree(d_b); cudaFree(d_c);
    return 0;
}

hipify-perl vector_add.cu > vector_add.hip 转换后:

// vector_add.hip  —— HIP (自动转换结果)
#include <hip/hip_runtime.h>

__global__ void vectorAdd(const float* a, const float* b, float* c, int n) {
    int i = blockIdx.x * blockDim.x + threadIdx.x;
    if (i < n) c[i] = a[i] + b[i];
}

int main() {
    const int n = 1 << 20;
    const int bytes = n * sizeof(float);
    float *h_a = (float*)malloc(bytes), *h_b = (float*)malloc(bytes), *h_c = (float*)malloc(bytes);
    float *d_a, *d_b, *d_c;

    hipMalloc(&d_a, bytes); hipMalloc(&d_b, bytes); hipMalloc(&d_c, bytes);
    hipMemcpy(d_a, h_a, bytes, hipMemcpyHostToDevice);
    hipMemcpy(d_b, h_b, bytes, hipMemcpyHostToDevice);

    int threads = 256, blocks = (n + threads - 1) / threads;
    hipLaunchKernelGGL(vectorAdd, dim3(blocks), dim3(threads), 0, 0, d_a, d_b, d_c, n);
    hipDeviceSynchronize();

    hipMemcpy(h_c, d_c, bytes, hipMemcpyDeviceToHost);
    hipFree(d_a); hipFree(d_b); hipFree(d_c);
    return 0;
}

4.3 迁移的真实成本

需要明确:HIP 解决的是 API 层面的机械翻译,而非性能等价。真正决定迁移成败的,是以下三类无法被 hipify 自动处理的差异:

  1. Warp/Wavefront 宽度差异:NVIDIA warp 为 32 线程,AMD CDNA 架构 wavefront 为 64 线程。任何硬编码 32、依赖 warp shuffle 语义的代码都需要重新审视(HIP 提供 warpSize 运行期查询与 __shfl 系列的兼容封装)。
  2. 共享内存与寄存器布局:AMD 的 LDS(Local Data Share)与 NVIDIA shared memory 在 bank 冲突模式、原子操作语义上存在差异,bank-conflict-free 的访问模式不能直接照搬。
  3. 张量核心指令:CUDA 的 wmma/mma 与 AMD 的 MFMA(Matrix Fused Multiply-Add)指令在数据类型、tile 形状、累加器布局上并不对齐。这类深度优化代码通常需要用 Composable KernelMIOpen 重新表达,而非翻译。

因此,HIP 的定位应当被理解为"让 80% 的业务代码零成本可移植,剩下 20% 的性能关键路径交给算子库与 AI 优化引擎"。这正是 ROCm.ai 区别于早期 ROCm 的工程哲学。

五、AI 驱动软件优化:把算子工程交给搜索

ROCm.ai 最具技术想象力的部分是 AI 驱动软件优化引擎。它要解决的核心问题是:CUDA 生态的护城河本质上是 NVIDIA 数千名工程师手写的、针对每一代架构微调的算子(cuDNN/CUTLASS)。AMD 用人力逐个对位复刻永远落后。AI 优化引擎的思路是用自动化搜索 + 学习部分替代这种人力投入。

其技术原理可拆解为三个子系统:

5.1 自动内核调优(Auto-Tuning)

传统算子库(如 cuDNN、MIOpen)已经包含"多实现 + 运行时选择"的机制:对每个问题尺寸,库内部维护一组候选 kernel,通过 find 模式在目标硬件上实测后缓存最快实现。ROCm.ai 把这一机制进一步泛化:

  • Composable Kernel(CK):基于 tile-based 的算子合成框架。开发者用高层次描述定义 GEMM/卷积的计算结构,CK 在 tile 尺寸、流水线深度、寄存器/LDS 分配、向量化宽度等参数空间上做组合搜索,合成出针对具体架构(如 MI455X 的 MFMA)的最优 kernel。
  • 学习式剪枝:用代理模型(如基于历史 benchmark 数据训练的小模型)预测哪些参数组合可能最优,缩小实测空间,把搜索成本从"穷举"降到"启发式采样"。
  • 持久化调优缓存:调优结果按 (op, dtype, M, N, K, arch) 的键落盘,形成跨会话、跨节点的"调优知识库",避免重复搜索。

这与 OpenAI Triton 的 @triton.autotune 装饰器思路一致,但 ROCm.ai 把它从"单个算子级"提升到"全栈算子库级"。

5.2 计算图优化

在框架层,ROCm.ai 与 PyTorch 2.x 的 torch.compile(Inductor 后端)以及 OpenXLA 深度协同,进行图级优化:

  • 算子融合(Kernel Fusion):把逐元素算子、归一化、激活、残差加法融合为单个 kernel,减少 kernel launch 开销与中间张量的显存读写。ROCm.ai 的优化引擎能在融合决策时纳入 AMD 硬件的寄存器压力与 LDS 容量约束。
  • 图捕获与重放:利用 CUDA Graph 等价的 HIP Graph 机制,把推理的整张计算图一次性捕获、反复重放,消除 CPU 侧 dispatch 抖动——这是高 QPS 推理服务的关键。
  • 内存规划:对静态计算图做显存复用分析(类似 XLA 的 buffer assignment),减少峰值显存与分配开销。

5.3 内存布局优化

AMD GPU 的 MFMA 指令对输入张量的内存布局有严格要求(如矩阵 K/N 维度的特定 swizzle 模式),布局不当会导致性能掉到理论峰值的零头。ROCm.ai 的优化引擎会:

  • 在图编译阶段自动插入 layout transform 节点,把框架默认的 NCHW/row-major 转换为 MFMA 友好的布局,并尽可能把转换与其他算子融合掉。
  • 对注意力等布局敏感算子(FlashAttention 类),自动选择分块策略以最大化 LDS 复用、最小化 HBM 访问。

5.4 性能来源拆解:3.3x 推理 / 2.4x 训练从何而来

把 ROCm 7 → ROCm.ai 的提升归因到单一因素是不准确的。结合上述机制,3.3x 推理提升的技术来源大致可分解为:

优化来源 对推理的贡献机制 估计权重
算子融合 + Graph 捕获 消除 kernel launch 与中间访存,提升小 batch QPS
Composable Kernel 自动调优 GEMM/Attention 贴近 MFMA 理论峰值
内存布局自动转换 MFMA 利用率从 30%–40% 提升到 70%+ 中-高
编译器后端改进 LLVM/AMDGPU 后端的指令调度与寄存器分配
推理专用算子(FlashAttention/分页KV) 长上下文与高并发场景的带宽瓶颈消除

训练侧 2.4x 提升低于推理侧,是合理的:训练包含反向传播、梯度同步(受 RCCL 集合通信带宽与拓扑限制)、优化器状态更新等通信密集环节,单纯算子优化的边际收益被通信与数据加载稀释。

六、AMD Skills:把"调优配方"产品化

如果 AI 优化引擎是"自动找最优解",那么 AMD Skills 就是"把已知最优解打包成可复用配方"。它的形态类似一个面向 AI 工作负载的 Skill Hub,每个 Skill 是一个预构建、预验证、预调优的工作负载包

从技术架构看,一个 AMD Skill 通常封装以下要素:

flowchart LR A["AMD Skill 元数据<br/>(工作负载类型 / 模型族 / 硬件目标)"] --> B["优化配置<br/>(batch / 精度 / 图编译选项)"] A --> C["算子实现<br/>(CK/MIOpen/Triton 选定 kernel)"] A --> D["部署脚本<br/>(ROCm CLI / 容器编排)"] A --> E["性能基线<br/>(benchmark / 回归阈值)"] B --> F["可执行工作负载"] C --> F D --> F E -.->|"回归保护"| F

典型的 Skill 覆盖范围包括:

  • LLM 推理:针对主流开源模型(Llama/Qwen/DeepSeek 等族)在 Instinct 上的最优推理配置,含 PagedAttention、连续批处理、KV cache 布局等已调优参数。
  • 分布式训练:针对给定 GPU 拓扑(如 Helios 机架的 8/16 卡域)的并行策略(TP/PP/DP 切分、RCCL all-reduce 融合、梯度累积)配方。
  • 微调 / RLHF:LoRA/QLoRA、强化学习训练栈的显存优化配置。
  • RAG / Agent 推理:向量检索、reranker、多模型流水线的端到端部署模板。

Skills 的本质是把"专家级调优经验"从咨询服务变成可分发的代码制品。它降低的不仅是性能门槛,更是"知道该调哪些旋钮"的认知门槛——而这恰恰是 CUDA 生态靠 StackOverflow 与文档积累的隐性优势所在。

七、ROCm vs CUDA 生态全景对比

维度 CUDA(NVIDIA) ROCm.ai(AMD)
起源与成熟度 2006 年至今,近 20 年生态沉淀 2016 年起步,ROCm.ai 为 2026 重大重构
开源策略 闭源,NVIDIA 专有,驱动与库均不开源 核心栈开源(HIP/MIOpen/rocBLAS/RCCL/CK 均在 GitHub),驱动 amdgpu 进主线内核
编程模型 CUDA C/C++,与硬件强绑定 HIP,API 形态与 CUDA 同构,可经 hipify 机械迁移,hipcc 亦可编译到 NVIDIA 后端
深度学习算子库 cuDNN(闭源,业界事实标准) MIOpen(开源,含 find 模式自动调优)
线性代数 cuBLAS / CUTLASS rocBLAS / Composable Kernel(tile 合成)
集合通信 NCCL RCCL(API 与 NCCL 兼容)
推理引擎 TensorRT(闭源,深度优化) MIGraphX + 框架原生(torch.compile/Inductor) + Skills 配方
编译器后端 nvcc(专有)+ PTX/SASS LLVM/AMDGPU(开源,统一后端),AOT 代码对象
调试/ profiling Nsight Compute/Systems(业界最强) rocprofiler / roctracer / Omniperf(开源,体验在追赶)
框架支持 PyTorch/TF/JAX 一等公民,零额外成本 PyTorch ROCm 版成熟,JAX/OpenXLA、vLLM/SGLang 多后端支持
硬件绑定 仅 NVIDIA AMD Instinct 为主,HIP 理论可跑 NVIDIA
开发者入口 cuda-toolkit + nvidia-smi ROCm CLI(统一收敛)
优化范式 人工 + 库内多实现选择 AI 驱动自动调优 + Skills 配方
跨硬件可移植 无(锁定 NVIDIA) HIP 翻译层 + 对接 Mojo/MAX、Triton 等跨硬件编译器

这张表揭示了一个趋势:CUDA 的优势集中在"成熟度、工具链、生态规模"等时间积累型维度;ROCm.ai 的优势集中在"开源、可移植、自动化优化"等范式创新型维度。前者靠惯性维持,后者靠降低迁移与优化成本进攻。

八、跨硬件编译器趋势:Modular/Mojo + Triton 对 CUDA 的解耦

单靠 HIP 翻译,ROCm 仍是"AMD 版的 CUDA",没有跳出硬件绑定的框架。真正可能瓦解 CUDA 护城河的,是与具体厂商解耦的跨硬件编译器层。2026 年这个方向出现了两个关键变量。

8.1 Qualcomm 收购 Modular:Mojo + MAX

2026 年 6 月 24 日,Qualcomm 宣布以约 39 亿美元全股票收购 Modular,预计 2026 年下半年完成交割。Modular 带来的三件资产在战略上高度互补:

  • Mojo 语言:Python 超集,兼具 Python 的易用性与系统级编程能力(指针、生命周期、零成本抽象),基于 MLIR 构建。其意义在于:开发者用一种语言同时表达高层模型与底层算子,编译器再生成多后端代码。
  • MAX 推理服务栈:硬件无关的推理平台,宣称不依赖 CUDA、PyTorch 或 ROCm 即可部署模型,通过自有编译器直接生成目标硬件代码。
  • 跨硬件编译器:以 MLIR 为中间表示,理论上可面向 NVIDIA / AMD / Qualcomm / 其他加速器生成代码。

Chris Lattner(LLVM 与 MLIR 之父,Modular 创始人)的技术路线本质是:用一层高质量的、与厂商无关的中间表示(MLIR),让"写一次、跑多硬件"成为编译器职责而非开发者职责。这与 HIP"翻译 CUDA 语法"的层次不同——它绕过了"是否兼容 CUDA API"这个问题本身。

Qualcomm 收购的战略意图很清晰:把 Mojo/MAX 变成跨厂商(含 Qualcomm 自身 NPU/Hexagon、AMD、NVIDIA)的统一 AI 编译层,使硬件选择与软件栈解耦。

8.2 Triton:开源算子 DSL 的跨后端化

OpenAI Triton 是另一条并行的解耦路径。它用 Python 风格的 DSL 描述 tile 级算子,编译器自动处理向量化、共享内存、同步与 autotuning。关键是:

  • Triton 3 起,后端不再限于 CUDA,已加入 HIP/ROCm 后端,并持续扩展到其他硬件。
  • PyTorch Inductor、vLLM、FlashAttention 等关键项目大量使用 Triton 编写算子。一旦 Triton 完成跨后端化,这些算子就自动获得了多硬件可移植性。

8.3 三股力量的合流

把 ROCm.ai、Modular/Mojo、Triton 放在一起看,一个多层解耦的格局正在成形:

应用/框架层   :  PyTorch / JAX / vLLM        (厂商无关)
算子 DSL 层   :  Triton / Mojo               (厂商无关, autotune)
跨硬件编译层  :  MAX / MLIR                  (厂商无关后端生成)
厂商运行时层  :  ROCm runtime / CUDA driver  (厂商特定, 但被上层屏蔽)
硬件          :  AMD / NVIDIA / Qualcomm ...

CUDA 之所以是护城河,是因为它把上述每一层都耦合在 NVIDIA 自家栈里。当 Triton 让算子层可移植、MAX 让编译层可移植、ROCm 让运行时层开源可替换时,CUDA 的"全栈绑定"被从三个方向同时松绑。

九、CUDA 生态护城河的冲击分析

综合以上技术分析,CUDA 的护城河正面临四条战线的系统性削弱:

  1. 语法迁移战线(HIP/hipify):把 CUDA C/C++ 代码搬运到 AMD 的边际成本已被压到"一次机械转换 + 关键路径重调"。这削弱了"已有代码资产锁定"。
  2. 算子性能战线(AI 自动调优 + CK + Triton):把"手写最优算子"这一最深壁垒,部分转为"搜索最优算子"。虽然当前 ROCm.ai 的自动调优未必在每个算子上都追平 cuDNN,但它把"差距"从"工程人力无法弥补"变成"算力与搜索时间问题"。
  3. 编译器解耦战线(Mojo/MAX + MLIR):从根本上绕过"是否兼容 CUDA"的争论,让多硬件后端成为编译器内部细节。
  4. 框架中立战线(PyTorch ROCm、OpenXLA、vLLM/SGLang 多后端):上层框架对硬件后端的抽象,使最终用户感知不到 CUDA 与 ROCm 的差异。

AI 自举(Self-Bootstrapping) 是第五条、也是最具颠覆性的潜在战线:当 AI 系统开始学习编写 GPU 驱动、生成算子代码、甚至优化编译器后端时,CUDA 累积的"人类工程师手写经验"将被以指数速度复制到新硬件。本次大会披露的"AI 学习编写自己的 GPU 驱动"方向,本质上是把算子工程从"人力竞赛"转为"AI 自我进化竞赛"——在这个赛道上,开源、可被 AI 大规模学习的 ROCm 栈,相对于闭源 CUDA 具备结构性优势(AI 可以读取、修改、重训 ROCm 的全部代码,却无法对 CUDA 黑箱做同样的事)。

需要保持冷静的是:CUDA 在调试工具链(Nsight)、长尾算子覆盖、企业级稳定性与文档密度上仍有不可忽视的领先。ROCm.ai 的 3.3x 是"同硬件自比"的相对提升,并不直接等同于"已全面超越同代 NVIDIA 硬件 + CUDA"。但趋势判断是明确的:CUDA 的护城河正在从"无法逾越"退化为"需要时间逾越"

十、实际部署示例

下面给出一个从 ROCm CLI 安装到模型推理部署的完整示意流程,体现 ROCm.ai 的统一体验。

# 1. 安装 ROCm.ai 全栈(由 ROCm CLI 收敛安装步骤)
rocm-cli install --release 7.x --stack ai
rocm-cli doctor            # 自检:amdgpu 驱动 / HSA / GPU 拓扑 / NUMA

# 2. 拉取一个 LLM 推理 Skill(预调优配方)
rocm-cli skill install llm-inference --model qwen3 --gpu mi455x

# 3. 使用 ROCm 容器运行 PyTorch(宿主/容器驱动自动对齐)
docker run --rm -it --device=/dev/kfd --device=/dev/dri \
  --group-add=video --ipc=host --cap-add=SYS_PTRACE \
  rocm/pytorch:latest bash

# 4. 容器内确认 HIP 可见性
rocminfo | grep "Marketing Name"      # 列出可见 Instinct 设备
hip-smi                               # 等价 nvidia-smi 的 GPU 状态视图

# 5. 运行经 torch.compile 图优化的推理(自动走 Inductor + ROCm 后端)
python - <<'PY'
import torch
import torch._inductor.config as ic
ic.allow_buffer_reuse = True          # 启用显存复用

model = load_model("qwen3")           # 业务侧加载
model = model.to("cuda")              # PyTorch ROCm 版把 "cuda" 映射到 HIP 设备
model = torch.compile(model, mode="max-autotune")  # 图捕获 + 算子融合 + autotune

with torch.inference_mode():
    out = model(sample_inputs)        # 首次调用触发编译, 后续走重放
PY

# 6. 端到端 benchmark 与回归保护
rocm-cli bench --skill llm-inference --metric tokens/s

注意第 5 步中的 .to("cuda"):PyTorch ROCm 版有意保留了 "cuda" 字符串作为设备标识,使得大量现有 PyTorch 代码无需修改即可在 AMD GPU 上运行。这是 HIP 设计哲学在框架层的延伸——用"API 形态兼容"换取"零修改可移植"。

十一、本地 Agent 与机器人平台

除数据中心 AI 外,AMD 同步发布了面向本地 Agent 与机器人的平台方向。其技术意义在于:把 ROCm 的部分能力下沉到边缘侧,与 Ryzen AI 的 NPU(XDNA 架构)、嵌入式 Instinct 形成从云端训练到端侧推理的连续谱。

对 Agent 与机器人场景而言,关键约束是延迟、功耗与离线可用性。ROCm.ai 的统一 CLI 与 Skills 体系若能覆盖端侧,意味着同一套开发范式(HIP + 自动调优 + Skill 配方)可同时服务于"机架级训练"与"机器人本体推理",降低跨场景移植成本。这与 CUDA 在 Jetson 边缘线上的策略形成对位竞争。

十二、结论

ROCm.ai 的技术叙事可以归结为一句话:用开源与自动化,对冲 CUDA 的封闭与人力积累

  • 语法层,HIP + hipify 让 CUDA 代码低成本迁移;
  • 算子层,Composable Kernel + MIOpen + Triton 用自动调优逼近手写性能;
  • 图与运行时层,torch.compile/HIP Graph + 统一 ROCm Runtime 收敛优化与部署;
  • 入口层,ROCm CLI + AMD Skills 把碎片化体验与专家经验产品化;
  • 编译器层,与 Mojo/MAX、Triton、MLIR 协同,走向厂商无关的跨硬件后端。

CUDA 仍是最成熟、工具链最强、长尾覆盖最广的生态,短期难以被全面取代。但 ROCm.ai 的价值在于它改变了竞争的性质:从"AMD 能否复制 CUDA"转变为"AI 能否以更低成本生产等价甚至更优的算子与驱动"。在这个新范式下,开源的可学习性、跨硬件编译器的解耦能力,比单纯的算子数量更有长期决定性。当 AI 自举让"写 GPU 驱动"也成为可被搜索与进化的任务时,CUDA 护城河的边界,将由"人类工程师的产出速度"重新定义为"AI 自我进化的速度"——而这,恰恰是封闭生态最难参与竞争的维度。


本文为技术分析,所有性能数据引自 AMD Advancing AI 2026 官方发布,跨硬件编译器部分涉及 Modular 收购为已公开交易(Qualcomm 约 39 亿美元全股票收购,预计 2026 年下半年完成交割)。代码示例为技术示意,实际接口以官方文档为准。