搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
多面体编译理论与深度学习实践
0.00     定价 ¥ 138.00
图书来源: 浙江图书馆(由浙江新华配书)
此书还可采购23本,持证读者免费借回家
  • 配送范围:
    浙江省内
  • ISBN:
    9787302616467
  • 作      者:
    编者:赵捷//李宝亮|责编:杨迪娜
  • 出 版 社 :
    清华大学出版社
  • 出版日期:
    2022-11-01
收藏
畅销推荐
内容介绍
本书分十大章节和三章附录章节,以现代体系结构特征为目标,从理论、方法及应用等不同角度,详细描述了各种提升程序并行性、数据局部性及适配目标架构特征的高级编译优化技术。本书还结合深度学习应用场景展开讨论,介绍了如何在深度学习框架中使用高级编译优化技术。
展开
目录
第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.3.3 基于多面体模型的编译流程
第2章 程序抽象表示基础
2.1 抽象表示在编译器中发挥的作用
2.2 整数集合与仿射函数
2.2.1 静态仿射约束
2.2.2 整数集合
2.2.3 仿射函数
2.2.4 集合与映射的运算
2.3 Fourier-Motzkin消去法
2.4 调度树
2.4.1 调度的表示方式
2.4.2 调度树的结点
2.4.3 调度树的操作
2.4.4 调度表示的比较
2.5 抽象语法树
2.5.1 被执行关系
2.5.2 上下文信息
2.5.3 结点和表达式
2.6 各种抽象的工程实现
2.6.1 整数集合和仿射函数的实现
2.6.2 调度树的实现
2.6.3 抽象语法树的实现
第3章 依赖关系分析
3.1 依赖关系分析在编译优化中的作用
3.2 依赖及其性质
3.2.1 依赖的分类
3.2.2 距离向量与方向向量
3.2.3 循环无关依赖和循环携带依赖
3.2.4 依赖与变换
3.2.5 依赖的复杂性
3.3 依赖测试
3.3.1 精确测试与保守测试
3.3.2 ZIV测试
3.3.3 SIV测试
3.3.4 GCD测试
3.3.5 Banerjee测试
3.3.6 I测试
3.4 耦合下标依赖测试
3.4.1 扩展的GCD测试
3.4.2 ζ测试
3.4.3 Delta测试
3.4.4 Omega测试
3.5 特殊的依赖测试
3.5.1 D测试
3.5.2 Range依赖测试
3.6 数据流分析
3.6.1 精确数据流分析
3.6.2 近似数据流分析
3.6.3 带标记的数据流分析
3.7 依赖与并行化
第4章 循环变换
4.1 适配体系结构特征的关键技术
4.2 预处理
4.2.1 循环正规化
4.2.2 死代码删除
4.2.3 别名分析
4.2.4 迭代空间分裂
4.3 多面体模型中的循环变换
4.3.1 循环变换分类
4.3.2 循环变换的复杂性
4.3.3 Pluto调度算法
4.4 仿射循环变换
4.4.1 循环交换
4.4.2 循环反转
4.4.3 循环延展
4.4.4 循环倾斜
4.4.5 循环合并
4.4.6 循环分布
4.5 近似仿射循环变换
4.5.1 循环分块
4.5.2 循环分段
4.5.3 循环展开压紧
4.6 代码生成过程中的循环变换
4.6.1 分块分离
4.6.2 循环展开
4.6.3 其他循环变换
4.7 循环压紧
第5章 开发并行性
5.1 利用多面体模型发掘数据并行
5.2 复杂的分块形状
5.2.1 交叉分块
5.2.2 分裂分块
5.2.3 钻石分块
5.2.4 六角形分块
5.3 Feautrier调度算法
5.3.1 一维时间表示的调度计算
5.3.2 多维时间表示的调度计算
5.4 开发向量化
5.4.1 可向量化Codelet
5.4.2 利于向量化的调度算法
5.5 面向分布式存储结构的并行
5.5.1 构造通信数据集
5.5.2 通信优化
第6章 挖掘局部性
6.1 金字塔形存储层次结构之外的挑战
6.2 面向不同优化目标的循环合并策略
6.2.1 基于依赖图的循环合并算法
6.2.2 拆分弱连通图
6.2.3 合并强连通分量
6.3 循环合并与循环分块的组合
6.3.1 先合并后分块
6.3.2 分块后再合并
6.3.3 提升高速缓存的使用率
6.4 数据空间变换
6.4.1 间接数据空间变换
6.4.2 显式数据空间变换
6.5 提升局部性的调度优化
6.5.1 循环分块后的重新调度
6.5.2 面向数据访存连续性的调度优化
6.6 数组压缩
6.6.1 内存竞争关系
6.6.2 划分数据空间
6.6.3 代价模型
第7章 代码生成
7.1 一个比输出指令序列更复杂的任务
7.2 代码生成方法
7.2.1 凸包算法
7.2.2 分割算法
7.3 分割代码生成
7.3.1 for循环生成
7.3.2 if语句的生成位置
7.3.3 循环展开
7.3.4 分块分离
7.3.5 循环退化
7.3.6 带偏移的跨步循环
7.4 if控制流优化
7.5 内存管理
7.5.1 CPU与GPU间的传输
7.5.2 内存提升
7.6 同步指令
第8章 多面体编译理论的最新进展
8.1 MLIR
8.1.1 MLIR基本概念
8.1.2 与多面体模型的集成
8.2 Halide
8.2.1 Halide设计理念
8.2.2 Halide调度树
8.3 Tiramisu
8.4 TensorComprehensions
8.5 AKG
8.6 面向TensorCore的自动代码生成
参考文献
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证