描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787115649720丛书名: 新一代信息技术系列
1、作者本身是哈工大软件学院副院长,具备教学经验和科研经验,且出版了两本?N腾方面的图书,具有一定的写作经验;
2、合作作者来自华为?N腾团队,是?N腾首席架构师,保证图书的技术是新且准确的;
3、本书介绍基于?N腾架构的人工智能编程在大模型等前沿领域的应用,覆盖新热点,适合ICT和人工智能行业工程师学习,也适合高校学生阅读。
本书以?N腾算子编程语言Ascend C的高效开发为核心,系统介绍华为面向人工智能的?N腾AI处理器架构、硬件抽象及其软件栈。本书由浅入深,通过案例讲解知识点,理论与实践并重。全书分为6章,分别介绍了?N腾AI处理器软硬件架构、Ascend C 快速入门、Ascend C编程模型与编程范式、Ascend C算子开发流程、Ascend C算子调试调优和Ascend C大模型算子优化。
本书适合人工智能产业的研发人员阅读,也适合软件工程、人工智能、信息安全、大数据、物联网等专业的本科生学习。
第 1 章 ?N腾AI处理器软硬件架构 1
1.1 Atlas硬件计算平台 1
1.1.1 Atlas服务器 1
1.1.2 Atlas集群 3
1.2 ?N腾AI处理器 3
1.3 达 芬奇架构 5
1.3.1 计算单元 6
1.3.2 存储系统 13
1.3.3 控制单元 17
1.3.4 指令集设计 19
1.4 硬件感知 20
1.5 ?N腾异构计算架构 22
1.6 小结 23
1.7 测验题 23
1.8 实践题 24
第 2 章 Ascend C快速入门 25
2.1 并行计算的基本原理 25
2.1.1 并行体系结构的分类 26
2.1.2 大模型并行加速的基本原理 28
2.1.3 并行效率量化的原理 29
2.2 Ascend C开发环境准备 30
2.2.1 版本选择 30
2.2.2 环境依赖 31
2.2.3 安装开发套件软件包 31
2.3 Ascend C算子的开发调用 32
2.3.1 CANN算子的类型 32
2.3.2 运行时和任务调度 34
2.3.3 两种核函数的调用方式 38
2.3.4 调用一个?N腾算子 39
2.4 ?N腾向量加法程序的加速比 43
2.5 小结 43
2.6 测验题 43
2.7 实践题 44
第 3 章 Ascend C编程模型与编程范式 45
3.1 Ascend C编程模型 45
3.1.1 AI Core硬件抽象 45
3.1.2 SPMD编程模型 47
3.1.3 流水线编程范式 48
3.2 Ascend C语法扩展 50
3.2.1 Ascend C API概述 51
3.2.2 数据存储 53
3.2.3 任务间通信与同步模块 56
3.2.4 资源管理模块 57
3.2.5 临时变量 58
3.3 向量编程范式 59
3.3.1 算子分析 60
3.3.2 核函数的定义与封装 61
3.3.3 算子的数据通路 62
3.3.4 算子类的实现 63
3.3.5 算子的切分策略 67
3.4 矩阵编程范式 68
3.4.1 基础知识 68
3.4.2 高阶API实现Matmul算子流程概述 72
3.4.3 Matmul算子Kernel侧的开发 72
3.4.4 Matmul算子Host侧的开发 78
3.5 混合编程范式 81
3.5.1 matmul_leakyrelu算子的基本概念 81
3.5.2 matmul_leakyrelu算子Kernel侧的开发 82
3.6 更多Ascend C算子样例 88
3.6.1 双曲正弦函数算子核函数的实现 89
3.6.2 Strassen矩阵乘法算子核函数的实现 91
3.6.3 LayerNorm核函数的实现 101
3.7 小结 105
3.8 测验题 106
3.9 实践题 106
第 4 章 Ascend C算子开发流程 108
4.1 算子开发流程概述 108
4.2 自动生成算子工程 109
4.3 算子开发流程:Kernel侧 111
4.3.1 函数原型的声明 113
4.3.2 算子类的实现 113
4.4 算子开发流程:Host侧 114
4.4.1 Tiling实现 114
4.4.2 shape推导等函数的实现 117
4.4.3 算子原型的注册 118
4.5 算子工程的编译部署 119
4.5.1 算子工程的编译 119
4.5.2 算子包的部署 121
4.6 PyTorch算子调用 122
4.6.1 PyTorch算子调用的基本原理 122
4.6.2 安装PyTorch框架 122
4.6.3 安装torch_npu插件 123
4.6.4 安装APEX模块 124
4.6.5 调用测试脚本 125
4.7 Ascend C算子在整网中的替换 126
4.7.1 替换算子的工程开发及编译部署 126
4.7.2 PyTorch适配插件的开发 127
4.7.3 算子替换 129
4.8 小结 130
4.9 测验题 130
4.10 实践题 131
第 5 章 Ascend C算子调试调优 132
5.1 算子调试工具 132
5.1.1 孪生调试 132
5.1.2 CPU域的调试 132
5.1.3 NPU域的调试 135
5.2 算子调优工具 139
5.2.1 算子性能调优原理 139
5.2.2 算子调优基本流程 142
5.3 算子异常检测工具 143
5.3.1 算子内存的检测原理 143
5.3.2 算子竞争的检测原理 146
5.3.3 异常检测工具的使用方法 146
5.4 ?N腾算子性能的优化方法 147
5.4.1 算子计算流程优化 147
5.4.2 代码实现优化 150
5.4.3 层次化访存优化 152
5.4.4 计算资源利用优化 153
5.5 小结 154
5.6 测验题 154
5.7 实践题 155
第 6 章 Ascend C大模型算子优化 156
6.1 大模型与自注意力算子的基础知识 156
6.1.1 大模型的奠基石——Transformer 156
6.1.2 自注意力算子在GPU上加速计算的发展 156
6.2 自注意力算子的优化算法 160
6.2.1 自注意力算子在?N腾AI处理器上的优化思路 160
6.2.2 自注意力算子的前向传播优化 161
6.3 自注意力算子前向传播的实现 167
6.3.1 矩阵切分 168
6.3.2 矩阵乘法计算 170
6.3.3 Softmax计算 171
6.3.4 第二次矩阵乘法及输出合并计算 173
6.4 自注意力算子的测试 176
6.4.1 生成算子API 176
6.4.2 编写测试项目 178
6.4.3 编译与运行 188
6.5 小结 188
6.6 测验题 189
6.7 实践题 189
评论
还没有评论。