Skip to content

03-Infra

⚙️ ROCm 算子优化与 GPU 编程

从 AMD AI 硬件全景到 HIP 算子与性能分析

返回主页

简介

  本模块面向希望在 AMD GPU + ROCm 上建立系统认知的开发者:从 AI 硬件与 ROCm 软件栈全景,到 PyTorch 调用链与 GPU 架构,再到用 HIP 手写算子、结合 rocBLAS / MIOpen 与性能测量,把 ROCm 软件栈、GPU 编程与算子实践讲清楚、练到位。

  默认实验环境为 Ubuntu 22.04 / 24.04 + ROCm 7.x,示例设备以 AMD AI+ MAX395 / Radeon 8060S(gfx1151) 等为主,读者可按自身显卡与 ROCm 版本对照阅读。

教程列表

第 1 章:拥抱 AMD AI 算力新时代

  从 Ryzen AI(NPU + GPU)、Radeon 独显到 Instinct 数据中心加速卡,梳理 AMD AI 产品线与典型应用场景;说明 ROCm 在栈中的位置,并配合 PyTorch 完成 ResNet 训练与 Qwen 等大模型推理等动手实验,建立「能在 AMD 上跑什么」的整体图景。

  • 适合人群:初次接触 AMD AI / ROCm 的开发者与学生
  • 难度等级:⭐⭐
  • 预计时间:2~3 小时

📖 阅读第 1 章


第 2 章:解密 AI 加速器——从软件栈到硬件架构

  用 ldd 等工具追踪 PyTorch → HIP → HSA → 驱动 → GPU 的调用链路,理解 CPU「低延迟」与 GPU「高吞吐」、SIMT 执行模型;结合 CU、LDS、显存带宽 等概念,读懂 AMD GPU 在 AI 负载下的行为方式。

  • 适合人群:已能跑通模型、希望理解底层栈与硬件的开发者
  • 难度等级:⭐⭐⭐
  • 预计时间:3~4 小时

📖 阅读第 2 章


第 3 章:迈入 ROCm 编程世界——手写第一个 HIP 算子

  介绍 HIP 与 CUDA 的对应关系、Host/Device 代码结构;从 手写 Kernel 复现 Tensor 加法,到使用 hipEvent 做计时,并初步接触 rocBLASMIOpen,完成从 Python 到设备端代码的过渡。

  • 适合人群:具备 C++ 基础、准备编写或阅读自定义算子的开发者
  • 难度等级:⭐⭐⭐
  • 预计时间:2~3 小时

📖 阅读第 3 章


第 4 章:为 PyTorch 编写自定义 ROCm 算子

  从 PyTorch 的 Python 调用链出发,用 C++ Extension 机制将 HIP Kernel 注册为自定义算子;实战 Fused Swish 算子、Grid-Stride Loop 优化、Autograd 自动求导集成,并通过 内存墙基准测试 量化带宽瓶颈,完成从「手写 Kernel」到「PyTorch 可调用算子」的完整闭环。

  • 适合人群:希望将自定义 HIP 算子集成到 PyTorch 训练/推理流程的开发者
  • 难度等级:⭐⭐⭐⭐
  • 预计时间:3~4 小时

📖 阅读第 4 章


环境要求

硬件要求

  • AMD GPU(支持 ROCm 的显卡,如 RX 7000 / 9000 系列、Ryzen AI MAX / AI 300、Instinct MI 系列等)
  • 各章实验对显存要求不同:第 1 章涉及 ResNet / 大模型推理时请预留足够显存;第 3、4 章以小型 HIP 程序与矩阵实验为主,一般消费级显卡即可

软件要求

  • 操作系统:Linux(Ubuntu 22.04+,教程正文以 22.04 / 24.04 为例)
  • ROCm 7.10.0 或更高版本(章节内亦可能出现 7.x 表述,以你本机 rocm-smi / 发行说明为准)
  • 第 1 章:Python 3.10+、PyTorch(ROCm 构建版)
  • 第 3、4 章:建议安装 ROCm HIP 开发组件(如 hipccrocm-dev 等,随发行版包名可能略有差异)、CMake 3.16+、GCC 9+ 或 Clang 12+

常见问题

Q: 如何确认我的 AMD GPU 是否支持 ROCm?

请参考 ROCm 官方支持列表 查看支持的 GPU 型号与发行版组合。

Q: 第 3、4 章与第 1、2 章是什么关系?

第 1、2 章侧重全景与栈/硬件认知;第 3、4 章侧重HIP 编程与算子级实践。两章标题相近:可先读第 3 章建立最小闭环,再读第 4 章做映射与性能深化;若时间有限,也可按个人基础选读其中一章。

Q: 编译 HIP 程序时提示找不到头文件或链接库?
  1. 确认已安装对应版本的 ROCm 开发包,且 hipccPATH
  2. 检查 HIP_PATHROCM_PATH 等环境变量是否与安装路径一致
  3. 参考 HIP 安装与入门 核对依赖

参考资源


欢迎贡献更多算子优化与 GPU 编程实践内容! 🎉

提交 Issue | 提交 PR