第 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