Skip to content
datawhalechinaPublic

About

Hello GPU:从 AMD GPU 架构、ROCm 工具链到 HIP/Triton 算子优化与单卡推理性能分析的实战教程。

Resources

Contributing

Stars

103 stars

Watchers

0 watching

Forks

Latest commit

 

History

149 Commits

Folders and files

Repository files navigation

Hello GPU ⚠️ Alpha内测版

|

AMD University Program      AMD ROCm

Caution

⚠️ Alpha内测版本警告:此为早期内部构建版本,尚不完整且可能存在错误,欢迎大家提Issue反馈问题或建议。

随着大模型和多模态模型快速发展,AI Infra 已经成为连接算法、系统与硬件的关键方向。很多学习者会使用模型、会调用框架,却不知道模型为什么跑得慢、瓶颈在哪里、应该如何优化。

本教程希望解决这个问题: 当你拿到一块 AMD GPU 时,如何从硬件出发理解它的执行方式,如何通过 profiling 找到性能瓶颈,如何优化算子和推理 pipeline,并最终构建一个 AI Agent,自动完成性能分析、优化建议、代码修改、benchmark 和报告生成。

本教程不是简单介绍工具,而是希望帮助读者建立 GPU 工程的核心思维: 以硬件为起点,以 profiling 为证据,以优化为手段,以 Agent 自动化为终点。

当前安装环境统一为 Radeon RX 9070 XT + ROCm 10.0 + 原生 Ubuntu 24.04。已发布的历史实验保留采集时的软件版本与原始数据。其他 AMD GPU 可以参考方法论,但性能数字和工具可用性需要单独实测确认。

项目受众

  • 想进入 AI Infra / AI 系统 / 推理优化 / 算子优化方向的学生和开发者
  • 有 Python / Linux 基础,但对 GPU、ROCm、AI 编译器不熟悉的初学者
  • 做过模型训练或部署,但不知道模型为什么跑得慢、怎么优化的工程师
  • 想基于 AI Agent 自动完成 profiling、benchmark、代码调优和报告生成的开发者
  • 希望了解 AMD GPU / ROCm 生态,而不是只学习 CUDA 体系的学习者

你不需要有 GPU 编程经验,但最好具备基础 Python、Linux 命令行和深度学习概念。

在线阅读

https://datawhalechina.github.io/hello-gpu/

Notebook 动手学习

Notebook 学习入口提供与正文小节对齐的 Part 0–2,共 9 章(第 0–8 章)。在已准备好的云环境中选择 Python 3 内核,直接逐章运行;HIP kernel 保留在教学单元中,用 PyTorch Tensor 调用,重复的编译、测量和绘图由公共包处理。

可以从第 4 章:第一个程序 + 性能分析体验完整流程,也可以按章节清单顺序学习。

目录

全书共 5 篇、20 章。显示章号由 docs/.vitepress/outline.mjs 自动生成,新增章节后运行 npm run docs:sync-outline 即可同步 README 与站点导航。

章节名 简介 状态
第 0 篇:入门与硬件速通
第 0 章 写给读者的话 教程定位、为什么选 9070XT、和市面教程差异、学习路线 🚧
第 1 章 环境准备 9070XT + 原生 Ubuntu + ROCm 10.0 验证、Windows/WSL2 边界、uv 环境、最小 smoke test 🚧
第 2 章 GPU 体系结构(上):编程模型与 wavefront 执行 从数组加法出发,理解计算流程、线程层级、数据索引与硬件执行 ✅
第 3 章 GPU 体系结构(下):数据存储与访问 从一次加法理解数据位置、成组访问、共享同步与访存等待 ✅
第 4 章 第一个程序 + 性能分析 从向量加法出发,编写 HIP 程序、验证结果并学习 GPU 计时 ✅
第 1 篇:Profiling 实战
第 5 章 benchmark 与可信计时 从两种 event 计时方式理解预热、统计和有效带宽 ✅
第 6 章 用 rocprof 找到慢在哪里 运行向量加法、读懂 kernel trace,并设计公平对照 ✅
第 7 章 读懂 Roofline 图 从一次加法计算工作点,理解带宽与算力参考线 ✅
第 2 篇:经典算子与 Kernel 实战
第 8 章 Element-Wise:逐元素算子 从正确基线出发,实测地址排列、grid、float4 与 Triton tile,用逐轮比较决定下一步 ✅
第 9 章 Reduction:归约算子 从块内求和到完整归约,逐轮比较 HIP 合并方案与 Triton program 分工 ✅
第 10 章 Normalization:归一化算子 从稳定 Softmax 出发,分别验证行内协作、融合与 Triton 执行配置 ✅
第 11 章 GEMM-Like:矩阵乘类算子 从点积与复用出发,逐轮验证 HIP LDS、Triton tile 与 program 分组 ✅
第 12 章 Fusion:融合算子 从 Attention 物化基线出发,验证在线融合与 key 分块的收益和代价 ✅
第 13 章 综合实战:Fused RMSNorm 从平方和与广播出发,逐轮验证行内线程数、warps 与多行 program ✅
第 3 篇:Agent(算子层)
第 14 章 Agent 入门 从一次手动优化理解模型、工具与反馈循环 ✅
第 15 章 工具封装 用结构化接口连接正确性、计时、瓶颈分析与接受判定 ✅
第 16 章 算子优化 Agent 设计 连接工具、管理候选状态并判断何时结束 ✅
第 17 章 多轮优化实战 用向量加法学习运行、读图、独立复测与报告 ✅
第 4 篇:真实模型 + Agent
第 18 章 YOLO 部署 + Agent 自动优化 ONNX/MIGraphX 部署、Agent profiling 找瓶颈、改配置/算子、对比 🚧
第 19 章 小模型 LLM 解码 + Agent 自动优化 LFM2.5-8B-A1B 量化(GGUF)、decode 算子视角、Agent 优化 KV cache/精度 🚧

贡献者名单

姓名 职责 简介
刘伟鸿 项目负责人 DataWhale成员

参与贡献

  • 如果你发现了一些问题,可以提Issue进行反馈,如果提完没有人回复你可以联系保姆团队的同学进行反馈跟进~
  • 如果你想参与贡献本项目,可以提Pull Request,如果提完没有人回复你可以联系保姆团队的同学进行反馈跟进~
  • 如果你对 Datawhale 很感兴趣并想要发起一个新的项目,请按照Datawhale开源项目指南进行操作即可~

关注我们

扫描下方二维码关注公众号:Datawhale

LICENSE

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

About

Hello GPU:从 AMD GPU 架构、ROCm 工具链到 HIP/Triton 算子优化与单卡推理性能分析的实战教程。

Resources

Contributing

Stars

103 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages