图书前言

序 一

数十年来,计算机体系结构的发展在很大程度上受益于摩尔定律与工艺演进所带来的性能红利。随着单核频率提升空间日益受限, Dennard缩放定律逐步失效,依赖传统通用处理器持续获得算力增长的道路越来越难以为继。与此同时,人工智能、深度学习与大数据应用的迅猛发展,又以前所未有的规模放大了社会对算力的需求。在这样的双重驱动下,异构计算已经不再是某种“可选方案”,而是变成了当代计算系统演进的关键方向。

从体系结构的角度看,过去十年如此,未来十年亦如此,我们都将持续处于一个由多种异构硬件共同构成的计算时代:通用 CPU负责控制、调度与复杂逻辑处理, GPU以及其他加速器则承担高吞吐、强并行的核心计算任务。在这一异构生态中, GPU无疑是最具代表性的加速器之一,它凭借面向吞吐量的架构设计、大规模线程并发能力以及对数据并行任务的天然适配,成为人工智能训练与推理、科学计算、高性能计算等领域的中坚力量。因此,理解 GPU、理解异构计算,已经成为理解现代算力体系的必要前提。

然而,硬件的异构化越深入,编程与优化的挑战也就越突出。面对复杂的异构硬件,如何让开发者更高效地编程、更可控地调优、更充分地逼近硬件性能上限,成为过去二十年并行计算领域最核心的问题之一。从 2007年 CUDA的诞生,到后续 OpenCL的探索,再到今天 HIP所代表的新一代跨平台异构编程实践,这些工作虽然路径不同,但都指向同一个目标:降低异构计算的使用门槛,同时尽可能释放底层硬件的潜力。

在这一脉络中, HIP是一个很有雄心,也非常值得期待的尝试。它在编程模型上与 CUDA高度相似,却又试图在性能与可移植性之间取得更好的平衡;它不仅服务于 AMD GPU,也强调跨平台能力,帮助开发者以更统一的方式构建和迁移并行程序。更重要的是, HIP并不是孤立存在的,它与 ROCm生态紧密协同,配合编译器、运行时、数学库、通信库以及分析调试工具,正在形成一个面向异构计算的系统化软件栈。虽然从整个产业生态来看,这仍是一个不断演进、持续完善的方向,但它所展现出的潜力,以及在深度学习、科学计算和高性能计算中的实际影响,已经足以说明其重要性。

也正因为如此,本书显得尤为及时,也尤为必要。它并不满足于只介绍某个 API或某些孤立技巧,而是围绕“异构计算如何落地”这一根本问题,构建了一条较为完整的知识路径:从最基础的 HIP编程入门,到运行时 API、内存管理、流与事件,再到 GPU编程模式、性能分析工具、性能优化方法、 ROCm库、多 GPU编程,以及进一步延伸到机器学习框架与大模型中的 FlashAttention实践,形成了一个从概念到机制到工程再到应用的较为完整的闭环。

序 一

本书的一个突出优点,在于它非常重视“用例驱动”的讲解方式。对于初学者而

言,异构编程最难的地方,往往不是记住某个接口,而是这些接口究竟如何落在真实

问题上。本书恰恰通过大量具体例子,让读者能够从问题出发,理解编程模型。例如,

本书从最基础的 Hello World和 Vector Add入手,帮助读者建立起对主机 —设备协同、

线程组织、数据传输与同步机制的第一层直觉;随后又通过 BFS展示多内核协同的图

计算模式,通过 KMeans展示 CPU-GPU协同计算的典型场景,通过直方图示例,帮

助读者理解原子操作与并发更新问题。这样的安排,使读者不仅“知道怎么写”,更能“知道为什么这样写”。

本书在性能优化层面的讲解并不流于空泛,而是紧贴真实开发中的关键瓶颈展开。

通过图像伽马校正、数组归约、矩阵乘法、矩阵转置等例子,引导读者理解如何从并

行度、访存模式、分块策略、数据复用、访存合并等角度思考性能问题。尤其是矩阵

乘法与矩阵转置这样的经典案例,一方面具有高度代表性,另一方面也能更好地帮助

读者建立起对“如何逼近硬件上限”的工程直觉。对于希望真正写出高性能 GPU程序

的读者而言,这类内容的价值往往远高于单纯的语法说明。

除了“如何写”,本书还非常重视“如何看”和“如何调”,这也是一本工程化价

值很强的技术书应有的样子。书中专门设置章节介绍 ROCmInfo、ROCm SMI、ROCm

调试器、 ROCTracer、ROCProfiler、ROCm Profiler V2、ROCSys以及 Hipify等工具。

对许多开发者来说,性能优化之所以困难,常常不是因为没有优化意愿,而是因为缺

乏足够的可观测性:不知道时间耗在哪里,不知道瓶颈出在计算、访存还是通信,不

知道迁移过程中的问题出现在接口映射、执行语义还是底层行为上。而这些工具,正

是把“黑盒”变成“可分析对象”的关键。比如,应用追踪可以帮助定位时间热点,

内核分析可以帮助理解 kernel的执行特征, Hipify则为 CUDA程序向 HIP迁移提供了

现实路径。对读者而言,这些内容的价值在于:它们让性能优化从“经验主义”转向“证据驱动”。

在当前人工智能系统中,单卡性能固然重要,但是多 GPU协同几乎已经成为大规

模训练与高吞吐推理的基本前提。因此,本书专门讨论多 GPU编程,也具有很强的现

实意义。它不仅涵盖了基于流、基于线程、基于 MPI的多 GPU编程方式,还进一步

讨论了 GPU-GPU通信以及 RCCL中的广播与 AllReduce。对于今天的 AI开发者而言,

这些内容并不是“进阶补充”,而是走向大规模系统时必须面对的核心能力:数据如何

在多卡之间分发,梯度如何聚合,通信如何与计算重叠,如何避免多设备协同成为整

体系统的短板。本书将这些关键问题纳入同一叙事框架,使读者能够从单 GPU走向更

接近真实生产场景的多 GPU系统。

序 一

更进一步,本书并未单纯停留在传统 HPC的示例,而是把视野延伸到机器学习与大模型实践。特别是,书中专设章节讨论大模型自注意力机制与 FlashAttention的 HIP实现,并通过与标准多头注意力进行数值对比验证,展示了其工程可行性与正确性。对于今天的读者而言,这一部分意义尤其重大:它表明 HIP不仅适用于经典并行算法,也完全可以进入当前最活跃的 AI算子优化现场。它把异构编程从“底层基础设施”直接连接到了“前沿 AI应用”,这无疑大大增强了本书的时代感与实践价值。

总体而言,这本书非常适合作为 AI异构编程、 GPU编程,尤其是 AMD GPU与 HIP编程的入门读物。它兼顾基础性与系统性,既能帮助初学者建立概念框架,也能为已经有一定经验的开发者提供工具参考与优化思路。作为一本入门书,它清晰易懂;作为一本工具书,它覆盖全面、查阅方便;作为一本面向实践的技术书,它又有足够多的案例、工具与工程场景来支撑读者从“会用”走向“用好”。其价值,不仅在于讲清楚某种技术,更在于帮助更多人跨过异构计算的门槛,真正走进这个正在塑造未来算力基础的领域。

展望未来,异构计算仍将持续演进, AI对算力的需求也只会进一步增长。无论是编程模型、编译工具、运行时系统,还是库生态、通信机制、性能调优方法,都有很大值得探索和共建的空间。我们需要的不只是更强的硬件,也是不设高墙、更加开放、更加易用的整个软件生态。唯有产业界、学术界与开发者社区形成合力,持续打破算力使用中的编程与优化壁垒,未来的 AI系统才能真正变得更加普及、更易获得,也更具创造力。从这个意义上说,这本书本身,正是在为这一生态贡献一份扎实而有价值的力量。

谨以此序,推荐本书给所有希望理解异构计算、走近 GPU编程、进入 HIP与 AMD生态的读者。相信你们从中不仅能学到方法,也会看到方向。

何丙胜 

2026年 7月

序 二

近年来,人工智能、高性能计算和科学计算正在以前所未有的速度重塑产业格局。大模型训练与推理、复杂工程仿真、生命科学、金融计算、数据分析等应用场景,都对算力平台提出了更高要求。 GPU已经从传统图形处理器,发展成为支撑现代计算基础设施的重要引擎。围绕 GPU的软件生态、编程模型、开发工具和性能优化方法,也正在成为广大科研人员、工程师和学生必须掌握的关键能力。 AMD一直致力于通过开放、标准、可扩展的计算平台,推动高性能计算和人工智能生态的发展。 ROCm作为 AMD面向异构计算和 GPU加速的重要软件平台,为开发者提供了从底层并行计算到高层 AI框架、从单机多卡到数据中心集群的完整技术路径。它们不仅释放了 AMD GPU架构的算力潜能,也彰显了开放计算生态对产业创新的驱动作用。

欣喜地看到,这本《 AMD GPU编程——基于 ROCm/HIP的架构、工具链和开发流程》系统地梳理了 GPU编程所需的基础知识、核心概念和工程实践。全书从并行编程、GPU与 ROCm/HIP的基本原理讲起,逐步深入 HIP内核编程、运行时 API、内存管理、多 GPU编程, ROCm性能分析与优化,以及 rocBLAS、rocSPARSE、rocFFT、 rocRAND等常用库的使用方法。同时,书中还结合机器学习、 FlashAttention等前沿应用,帮助读者理解如何将 GPU编程能力转化为真实业务和科研问题中的计算效率。

这本书的价值,不仅在于介绍一套编程接口或工具链,更在于为中文读者搭建了一条系统学习 AMD GPU计算生态的路径。对于高校师生而言,它可以作为并行计算、异构计算、高性能计算和人工智能系统课程的重要参考;对于开发者而言,它提供了从入门到进阶、从编码到调优的工程指南;对于产业界而言,它也有助于培养更多熟悉开放 GPU计算生态的人才,推动本土应用、框架与解决方案在先进计算平台上的持续创新。尤其值得肯定的是,本书将体系结构、编程模型、工具链和应用实践结合起来,而不是停留在孤立的 API介绍。 GPU编程的难点,往往不只是“如何写出能运行的代码”,更在于理解硬件执行模型、内存层次、并行粒度、数据搬移、同步机制和性能瓶颈之间的关系。书中围绕 AMD GPU架构、 ROCm工具、性能剖析和典型算子优化展开的内容,能够帮助读者建立从“会用”到“用好”的能力,这对于培养高水平 GPU开发者尤为重要。

开源开放计算生态的发展离不开产业界、学术界和开发者社区的共同努力。 AMD愿与高校、科研机构、合作伙伴和广大开发者一道,持续推动 ROCm与 HIP生态在中国的发展。我们也期待更多优秀教材、课程和实践案例不断涌现,让先进计算技术更好地服务科研突破、产业升级和人才培养。

在此,我谨向本书作者团队表示诚挚祝贺。相信本书的出版,将为中文 GPU编程

序 二

教材体系补上一块重要拼图,也将帮助更多读者走近 ROCm/HIP开源开放计算生态。希望读者能够通过本书掌握扎实的方法,形成系统的工程能力,并在未来的科研与产业实践中创造出更多有价值的成果。

潘晓明 

AMD全球高级副总裁兼大中华区总裁 2026年 7月