当前位置:网站首页>图书 > 正文 >>

Ascend C异构并行程序设计—— 昇腾算子编程指南

图书信息

作者苏统华,杜鹏,闫长江 编著
出版社人民邮电出版社有限公司
ISBN9787115649720
出版时间2024-12-01
字数17.6万
分类闫长江 编著,人民邮电出版社有限公司,科技,计算机,网络,计算机教材

读书简介

本书以昇腾算子编程语言Ascend C的高效发为核心,系统介绍华为面向人工智能的昇腾AI处理器架构、硬件抽象及其软件栈。本书由浅深,通过案例讲解知识,理论与实践并重。全书分为6章,分别介绍了昇腾AI处理器软硬件架构、Ascend C 快速门、Ascend C编程模型与编程范式、Ascend C算子发流程、Ascend C算子调试调优和Ascend C大模型算子优化。

目录

内容提要

“新一代信息技术系列” 专家委员会

丛书序

丛书前言

前 言

第 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 实践题

推荐图书