摩尔线程GPU架构与编程实践

978-7-115-69780-6
作者: 摩尔线程
译者:
编辑: 张涛
分类: 其他

图书目录:

第 1 章 GPU 原理与生态...... 1

1.1 并行计算的历史与现状...... 1

1.1.1 摩尔定律的失效...... 1

1.1.2 并行计算的兴起...... 2

1.1.3 典型并行计算场景...... 3

1.1.4 核心并行算法模式...... 3

1.2 GPU 并行计算原理...... 4

1.2.1 计算机体系结构分类...... 4

1.2.2 GPU 和 CPU 的对比...... 8

1.2.3 GPU 与 CPU 的异构计算模型...... 9

1.2.4 体系结构中各类架构的编程模型演进......10

1.2.5 GPU 在计算系统中的位置......11

1.2.6 从应用到 GPU:一次任务的旅程......13

1.3 MUSA GPU 及其生态简介...... 14

1.3.1 MUSA GPU 设计概述......15

1.3.2 MUSA 生态系统......17

1.4 MUSA 并行计算应用...... 18

小结...... 19

练习题...... 20

第 2 章 MUSA 硬件架构...... 21

2.1 前端调度系统...... 21

2.1.1 Command Queue 与前端调度单元......21

2.1.2 Kernel 依赖处理与同步机制......23

2.2 MUSA 计算体系...... 24

2.2.1 MUSA 处理器系统架构......24

2.2.2 运算单元......27

2.3 线程组织与调度...... 31

2.3.1 线程束调度器......31

2.3.2 指令调度器......32

2.3.3 线程块到 MP 的映射关系......35

2.3.4 资源限制与优化......36

2.4 MUSA 存储体系...... 38

2.4.1 存储层次......39

2.4.2 内存访问模式优化......44

2.4.3 常量内存与纹理内存的典型用途......47

2.5 张量核心架构...... 48

2.5.1 TME......48

2.5.2 TCE(Tensor Compute Engine) ......52

2.5.3 ASYNC......52

小结...... 53

练习题...... 53

第 3 章 MUSA 编程模型...... 54

3.1 内核函数...... 54

3.1.1 内核函数的定义......54

3.1.2 内核函数的特性......54

3.2 设备、上下文与任务流...... 55

3.2.1 MUSA 设备(Device) ......55

3.2.2 上下文(Context) ......56

3.2.3 MUSA 任务流(Stream)......57

3.2.4 上下文、设备、流三者关系总结......57

3.3 内存管理...... 58

3.4 任务与同步...... 59

3.4.1 任务类型......59

3.4.2 同步机制......60

3.5 MUSA 编程示例:矩阵乘法...... 61

小结...... 63

练习题...... 63

第 4 章 MUSA 软件架构...... 64

4.1 软件架构概览...... 64

4.2 驱动与运行时库...... 64

4.2.1 MUSA 驱动与运行时库简介......64

4.2.2 驱动和运行时库之间的互操作......65

4.3 编译器工具链...... 65

4.3.1 mcc 编译流程:从.mu 文件到可执行文件......66

4.3.2 编译控制选项......67

4.3.3 MTX 编译器......68

4.4 计算加速库...... 69

4.4.1 muBLAS ......70

4.4.2 muRAND ......72

4.4.3 muFFT ......74

4.4.4 muSPARSE ......77

4.4.5 muSOLVER ......84

4.5 AI 与通信库...... 87

4.5.1 muDNN 加速库......87

4.5.2 MCCL......91

4.6 性能分析工具...... 98

小结...... 98

练习题...... 98

第 5 章 MUSA 开发环境搭建及快速入门......100

5.1 系统基础配置......100

5.2 驱动安装......101

5.3 MUSA Toolkit 安装......102

5.4 在 MUSA 上输出 “Hello Musa”......104

5.5 muDNN 加速库安装......105

5.6 MCCL 安装......105

5.7 常见问题排查......107

小结......109

第 6 章 MUSA 编程基础......110

6.1 设备管理......110

6.1.1 MUSA-runtime API ......110

6.1.2 MUSA 环境变量......111

6.1.3 mthreads-gmi 工具......112

6.2 模块管理......113

6.2.1 模块的加载与卸载......113

6.2.2 延迟加载......115

6.3 虚拟内存管理......117

6.3.1 核心 API 函数......117

6.3.2 核心 API 函数的使用方法......117

6.3.3 虚拟内存管理的高级特性......119

6.3.4 虚拟内存管理的应用场景......119

6.4 纹理内存......119

6.4.1 纹理内存简介......119

6.4.2 纹理对象的实操流程......120

6.4.3 核函数中的纹理访问......122

6.4.4 纹理参数......123

6.4.5 图像旋转完整示例......124

6.4.6 常见问题、限制说明与解决方案......124

6.4.7 其他类型的纹理......125

6.5 异步执行模型...... 126

6.5.1 流管理......126

6.5.2 事件管理......129

6.6 同步机制...... 132

6.6.1 MUSA 中的线程级同步管理......132

6.6.2 MUSA 中的任务级同步管理......133

6.6.3 MUSA API 的默认同步行为......134

6.7 MUSA Graph 管理...... 135

6.7.1 MUSA Graph 基本概念......135

6.7.2 MUSA Graph 主要优势......136

6.7.3 MUSA Graph 核心 API ......136

6.7.4 MUSA Graph 构建方式......137

6.7.5 MUSA Graph 高级特性......138

6.7.6 MUSA Graph 最佳实践......138

6.7.7 MUSA Graph 适用场景......138

6.8 MUSA 图形互操作...... 138

6.8.1 MUSA 图形互操作概述......139

6.8.2 OpenGL 互操作......139

小结...... 140

第 7 章 MUSA 程序调试...... 142

7.1 调试环境搭建...... 142

7.1.1 MUSA-GDB 简介......142

7.1.2 调试环境准备......142

7.1.3 调试命令规范......143

7.2 内核调试技巧......143

7.2.1 内核线程坐标与焦点管理......143

7.2.2 断点设置与状态信息查询......144

7.3 内核调试完整示例......145

小结......148

第 8 章 MUSA 性能优化与扩展......149

8.1 计算机体系结构的量化研究方法......149

8.2 计算优化......151

8.2.1 调控 Occupancy......151

8.2.2 减少线程束分歧......152

8.2.3 指令级并行......153

8.2.4 Warp Specialization ......154

8.3 内存优化......155

8.3.1 合并访存......155

8.3.2 向量化访存......156

8.3.3 减少线程间共享存储器的存储体冲突......156

8.4 MUSA 多卡编程......158

8.4.1 单机多卡......158

8.4.2 多机多卡......160

8.5 性能优化案例实践......160

8.5.1 Reduce 优化......160

8.5.2 GEMV 优化......164

8.5.3 Flash Attention 优化......165

8.5.4 GEMM 优化......170

小结......178

第 9 章 MUSA 性能分析工具......180

9.1 Moore Perf Tools ......180

9.2 Moore Perf System...... 181

9.3 Moore Perf Compute ...... 184

小结...... 187

第 10 章 基于 MUSA 的应用实战...... 188

10.1 PyTorch 编程...... 188

10.1.1 torch_musa 简介......188

10.1.2 MUSAExtension 简介......189

10.2 CIFAR-10 图像分类...... 190

10.2.1 图像分类知识基础......190

10.2.2 代码实现......191

10.3 大模型训练实战...... 200

10.3.1 MT-Megatron 环境搭建......201

10.3.2 使用 MT-Megatron 训练大模型......201

10.3.3 MT-Megatron 代码结构简介......212

10.4 HPC 应用...... 216

10.4.1 HPC 简介......216

10.4.2 HPC 常见基准测试......217

10.4.3 GROMACS 的 MUSA GPU 加速......218

小结...... 220

详情

本书面向计算技术开发人员、科研工作者和高性能计算学习者,旨在全面解析摩尔线程公司自主研发的MUSA;本书从并行计算原理出发,深入剖析MUSA的架构设计、编程模型、软件生态及实践应用。 全书共10章,内容由浅入深,体系完整。第1章以并行计算的历史与现状切入,阐述GPU 并行计算原理,并介绍MUSA GPU的设计理念与生态系统等。第2~4章系统解析MUSA硬件架构、编程模型及软件架构,涵盖前端调度系统、MUSA计算体系、存储体系、张量核心架构、驱动与运行时库、编译器工具链及计算加速库等内容。第5~7章聚焦开发实践,详细介绍开发环境搭建、MUSA编程基础、MUSA程序调试等内容。第8~9章深入性能优化与性能分析工具的使用,结合丰富案例展示性能优化方法。第10章介绍基于MUSA的应用实战,涵盖PyTorch编程、CIFAR-10图像分类、大模型训练实战及HPC应用。 本书兼具理论深度与实践指导性,既可作为深入理解国产GPU架构原理的参考书,也可作为基于MUSA进行高性能计算与AI应用开发的实用手册,以及高校相关专业的教材。

图书摘要

相关图书

Agent设计模式 图解可复用智能体架构
Agent设计模式 图解可复用智能体架构
AI科研绘图:Nano Banana极速实战指南
AI科研绘图:Nano Banana极速实战指南
SDD实战:规范驱动开发之道
SDD实战:规范驱动开发之道
Skills+OpenClaw:从零打造个性化AI助理
Skills+OpenClaw:从零打造个性化AI助理
十倍速开发:AI时代的Cursor编程手记
十倍速开发:AI时代的Cursor编程手记
GESP编程能力等级认证一本通(C++ 四级)
GESP编程能力等级认证一本通(C++ 四级)

相关文章

相关课程