更新时间:2023-07-27 16:15:16
封面
版权信息
内容简介
前言
第1章 体系结构发展对编译技术的影响
1.1 面向经典体系结构的性能优化
1.2 编译器面临的挑战
1.3 循环优化的数学抽象
第2章 程序抽象表示基础
2.1 抽象表示在编译器中发挥的作用
2.2 整数集合与仿射函数
2.3 Fourier-Motzkin消去法
2.4 调度树
2.5 抽象语法树
2.6 各种抽象的工程实现
第3章 依赖关系分析
3.1 依赖关系分析在编译优化中的作用
3.2 依赖及其性质
3.3 依赖测试
3.4 耦合下标依赖测试
3.5 特殊的依赖测试
3.6 数据流分析
3.7 依赖与并行化
第4章 循环变换
4.1 适配体系结构特征的关键技术
4.2 预处理
4.3 多面体模型中的循环变换
4.4 仿射循环变换
4.5 近似仿射循环变换
4.6 代码生成过程中的循环变换
4.7 循环压紧
第5章 开发并行性
5.1 利用多面体模型发掘数据并行
5.2 复杂的分块形状
5.3 Feautrier调度算法
5.4 开发向量化
5.5 面向分布式存储结构的并行
第6章 挖掘局部性
6.1 金字塔形存储层次结构之外的挑战
6.2 面向不同优化目标的循环合并策略
6.3 循环合并与循环分块的组合
6.4 数据空间变换
6.5 提升局部性的调度优化
6.6 数组压缩
第7章 代码生成
7.1 一个比输出指令序列更复杂的任务
7.2 代码生成方法
7.3 分割代码生成
7.4 if控制流优化
7.5 内存管理
7.6 同步指令
第8章 多面体编译理论的最新进展
8.1 MLIR
8.2 Halide
8.3 Tiramisu
8.4 Tensor Comprehensions
8.5 AKG
8.6 面向Tensor Core的自动代码生成
参考文献