作者:高伟,韩林,李嘉楠
页数:318
出版社:清华大学出版社
ISBN:9787302675518
电子书格式:pdf/epub/txt
网盘下载地址:下载深度学习编译器设计
内容简介
随着大模型的发展与应用,深度学习编译器的内涵和外延逐步扩展。与传统编译器相比,深度学习编译器增加了特定于人工智能模型实现的设计与优化。本书共12章。第1章从深度学习的起源、发展与爆发出发,引出深度学习模型的基础概念、深度学习应用的开发流程和深度学习框架。第2章介绍深度学习运算特征、深度学习硬件平台和深度学习编译技术,通过分析典型深度学习编译器的架构,给出深度学习编译器的一般架构。第3章介绍面向深度学习应用开发的编程模型和编程接口。第4章从计算图的构成、分类、转换和分析4个角度,介绍深度学习编译器前端的工作流程。第5章从中间表示的概念、分类和设计3个角度,分析深度学习编译器中间表示的设计方法和重要作用。第6~12章介绍深度学习编译优化,包括自动微分、计算图优化、内存分配与优化、算子选择与生成、代码生成与优化、自动并行及模型推理等。
本书可作为计算机科学与技术专业、软件工程专业的教学参考书,也可供人工智能大模型性能优化人员参考。
作者简介
高伟,先进编译实验室成员,博士,主要研究领域为高性能计算和先进编译技术。
韩林,先进编译实验室成员,教授,博士生导师,主要研究领域为高性能计算和先进编译技术。
李嘉楠,先进编译实验室成员,博士研究生,主要研究领域为高性能计算和先进编译技术。
本书特色
面向深度学习应用领域的深度学习编译器是充分调度算力、发挥硬件潜力的枢纽,是解决深度学习大模型在硬件平台上训练和部署任务的关键系统软件
目录
第1章深度学习简介
1.1深度学习的起源、发展与爆发
1.1.1深度学习的起源
1.1.2深度学习的发展
1.1.3深度学习的爆发
1.2深度学习模型的基础概念
1.2.1深度学习模型的组成
1.2.2深度学习模型的运行
1.2.3深度学习模型的分类
1.3深度学习应用的开发流程
1.3.1通用开发流程
1.3.2特定领域典型应用的开发流程
1.4深度学习框架
1.4.1发展历程
1.4.2典型框架
1.4.3核心组件
第2章深度学习编译简介
2.1深度学习运算特征
2.1.1深度学习中的矩阵运算
2.1.2大规模矩阵运算面临的挑战
2.2深度学习硬件平台
2.2.1深度学习硬件技术架构
2.2.2深度学习硬件应用挑战
2.3深度学习编译技术
2.3.1典型深度学习编译器
2.3.2深度学习编译器的结构
第3章编程模型与编程接口
3.1编程模型
3.1.1任务划分
3.1.2数据分布
3.1.3通信和同步
3.1.4任务映射
3.1.5兼容性及发展趋势
3.2编程接口
3.2.1基于C/C 的接口
3.2.2基于Python的接口
3.2.3Python调用C/C 的绑定技术
第4章前端
4.1计算图构成
4.1.1数据节点
4.1.2计算节点
4.1.3控制节点
4.1.4依赖边
4.2计算图分类
4.2.1静态计算图
4.2.2动态计算图
4.3计算图转换
4.3.1动静结合技术
4.3.2动静统一技术
4.4计算图分析
4.4.1类型系统
4.4.2类型推导
4.4.3类型转换
4.4.4形状推导
第5章中间表示
5.1中间表示的概念
5.2中间表示的分类
5.2.1线性中间表示
5.2.2图中间表示
5.2.3混合中间表示
5.3中间表示的设计
5.3.1单层中间表示设计
5.3.2两层中间表示设计
5.3.3多层中间表示设计
第6章自动微分
6.1自动微分的概念
6.2自动微分的模式
6.2.1前向模式
6.2.2反向模式
6.3自动微分的实现
6.3.1基本表达式法
6.3.2操作符重载法
6.3.3源码转换法
第7章计算图优化
7.1算子融合
7.1.1融合规则
7.1.2融合策略
7.1.3内存融合
7.1.4并行融合
7.1.5动态融合
7.2混合精度改写
7.3数据布局转换
7.4其他图优化方法
7.4.1常量折叠
7.4.2公共子表达式消除
7.4.3代数化简
第8章内存分配与优化
8.1内存分配
8.2内存复用
8.2.1原地置换
8.2.2内存共享
8.3张量迁移
8.3.1迁移机制
8.3.2迁移优化
8.4重计算
8.4.1静态图重计算
8.4.2动态图重计算
8.4.3快速注意力机制
第9章算子选择与生成
9.1算子选择
9.2算子生成
9.2.1基于机器学习的算子生成
9.2.2基于多面体变换的算子生成
第10章代码生成与优化
10.1过程间优化
10.2循环优化
10.2.1循环展开
10.2.2循环合并
10.2.3循环分布
10.2.4循环剥离
10.2.5循环分段
10.2.6循环分块
10.2.7循环交换
10.3语句级优化
10.3.1冗余语句删除
10.3.2公共子表达式消除
10.4指令级优化
10.4.1指令流水
10.4.2超标量
10.4.3超长指令字
10.5自动并行化
10.5.1自动向量化
10.5.2自动张量化
10.5.3自动OpenMP并行化
10.6访存优化
10.6.1寄存器优化
10.6.2内存优化
第11章自动并行
11.1并行划分
11.1.1数据并行划分
11.1.2模型并行划分
11.1.3序列并行划分
11.1.4混合并行划分
11.2并行策略
11.2.1搜索空间
11.2.2代价模型
11.2.3搜索算法
11.3通信优化
11.3.1通信优化基础
11.3.2通信优化策略
第12章模型推理
12.1模型部署
12.1.1部署工具
12.1.2部署方式
12.2模型压缩
12.2.1量化
12.2.2剪枝
12.2.3知识蒸馏
12.3推理加速
12.3.1图优化
12.3.2算法优化
12.3.3运行时优化
参考文献