更新时间:2025-04-17 18:50:38
封面
版权信息
版权
内容提要
“新一代信息技术系列” 专家委员会
丛书序
丛书前言
培养基础软件人才 助力软件行业根深叶茂
前言
第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 实践题