封面
版权信息
版权
内容提要
“新一代信息技术系列” 专家委员会
丛书序
丛书前言
培养基础软件人才 助力软件行业根深叶茂
前言
第1章 昇腾AI处理器软硬件架构
1.1 Atlas硬件计算平台
1.1.1 Atlas服务器
1.1.2 Atlas集群
1.2 昇腾AI处理器
1.3 达·芬奇架构
1.3.1 计算单元
1.3.2 存储系统
1.3.3 控制单元
1.3.4 指令集设计
1.4 硬件感知
1.5 昇腾异构计算架构
1.6 小结
1.7 测验题
1.8 实践题
第2章 Ascend C快速入门
2.1 并行计算的基本原理
2.1.1 并行体系结构的分类
2.1.2 大模型并行加速的基本原理
2.1.3 并行效率量化的原理
2.2 Ascend C开发环境准备
2.2.1 版本选择
2.2.2 环境依赖
2.2.3 安装开发套件软件包
2.3 Ascend C算子的开发调用
2.3.1 CANN算子的类型
2.3.2 运行时和任务调度
2.3.3 两种核函数的调用方式
2.3.4 调用一个昇腾算子
2.4 昇腾向量加法程序的加速比
2.5 小结
2.6 测验题
2.7 实践题
第3章 Ascend C编程模型与编程范式
3.1 Ascend C编程模型
3.1.1 AI Core硬件抽象
3.1.2 SPMD编程模型
3.1.3 流水线编程范式
3.2 Ascend C语法扩展
3.2.1 Ascend C API概述
3.2.2 数据存储
3.2.3 任务间通信与同步模块
3.2.4 资源管理模块
3.2.5 临时变量
3.3 向量编程范式
3.3.1 算子分析
3.3.2 核函数的定义与封装
3.3.3 算子的数据通路
3.3.4 算子类的实现
3.3.5 算子的切分策略
3.4 矩阵编程范式
3.4.1 基础知识
3.4.2 高阶API实现Matmul算子流程概述
3.4.3 Matmul算子Kernel侧的开发
3.4.4 Matmul算子Host侧的开发
3.5 混合编程范式
3.5.1 matmul_leakyrelu算子的基本概念
3.5.2 matmul_leakyrelu算子Kernel侧的开发
3.6 更多Ascend C算子样例
3.6.1 双曲正弦函数算子核函数的实现
3.6.2 Strassen矩阵乘法算子核函数的实现
3.6.3 LayerNorm核函数的实现
3.7 小结
3.8 测验题
3.9 实践题
第4章 Ascend C算子开发流程
4.1 算子开发流程概述
4.2 自动生成算子工程
4.3 算子开发流程:Kernel侧
4.3.1 函数原型的声明
4.3.2 算子类的实现
4.4 算子开发流程:Host侧
4.4.1 Tiling实现
4.4.2 shape推导等函数的实现
4.4.3 算子原型的注册
4.5 算子工程的编译部署
4.5.1 算子工程的编译
4.5.2 算子包的部署
4.6 PyTorch算子调用
4.6.1 PyTorch算子调用的基本原理
4.6.2 安装PyTorch框架
4.6.3 安装torch_npu插件
4.6.4 安装APEX模块
4.6.5 调用测试脚本
4.7 Ascend C算子在整网中的替换
4.7.1 替换算子的工程开发及编译部署
4.7.2 PyTorch适配插件的开发
4.7.3 算子替换
4.8 小结
4.9 测验题
4.10 实践题
第5章 Ascend C算子调试调优
5.1 算子调试工具
5.1.1 孪生调试
5.1.2 CPU域的调试
5.1.3 NPU域的调试
5.2 算子调优工具
5.2.1 算子性能调优原理
5.2.2 算子调优基本流程
5.3 算子异常检测工具
5.3.1 算子内存的检测原理
5.3.2 算子竞争的检测原理
5.3.3 异常检测工具的使用方法
5.4 昇腾算子性能的优化方法
5.4.1 算子计算流程优化
5.4.2 代码实现优化
5.4.3 层次化访存优化
5.4.4 计算资源利用优化
5.5 小结
5.6 测验题
5.7 实践题
第6章 Ascend C大模型算子优化
6.1 大模型与自注意力算子的基础知识
6.1.1 大模型的奠基石——Transformer
6.1.2 自注意力算子在GPU上加速计算的发展
6.2 自注意力算子的优化算法
6.2.1 自注意力算子在昇腾AI处理器上的优化思路
6.2.2 自注意力算子的前向传播优化
6.3 自注意力算子前向传播的实现
6.3.1 矩阵切分
6.3.2 矩阵乘法计算
6.3.3 Softmax计算
6.3.4 第二次矩阵乘法及输出合并计算
6.4 自注意力算子的测试
6.4.1 生成算子API
6.4.2 编写测试项目
6.4.3 编译与运行
6.5 小结
6.6 测验题
6.7 实践题
更新时间:2025-04-17 18:50:38