- 理解AI编译器架构:系统掌握AI编译器的基本框架与核心组件,解决对AI编译器整体认知模糊的问题。
- 掌握TVM定制开发:通过源码分析,学会针对特定AI芯片定制TVM,解决通用编译器无法适配专用硬件的问题。
- GPGPU后端设计:深入理解LLVM后端流程,解决在GPGPU上实现高效代码生成与优化的难题。
- 张量核编程支持:掌握张量核的编程方法及编译器支持,解决在GPU上充分利用张量核心加速计算的问题。
- 性能分析与优化:学会使用性能指标与占用率分析,解决AI模型在芯片上运行效率低下的问题。
- AI软硬件工程师:从事AI芯片或编译器开发,需要系统掌握编译器设计原理与实现细节。
- 计算机专业学生:智能科学与技术、计算机科学等专业本科生和研究生,可作为教材或参考书。
- 深度学习框架开发者:希望深入理解TVM、XLA等框架内部机制,提升框架性能优化能力。
- 高性能计算爱好者:对GPGPU编程与优化感兴趣,希望掌握底层编译器技术。
- 基础先行:建议先阅读第1章,掌握AI编译器与LLVM基础,为后续章节打底。
- 重点研读:第2、3章是核心,深入理解TVM等开源编译器实现与定制方法,可配合源码阅读。
- 实践结合:第4、5章涉及GPGPU后端与张量核,建议动手编写简单编译器pass或使用NVIDIA工具验证。
- 性能优化:第6章性能分析部分,可结合真实模型进行剖析,提升优化技能。
- 系统知识:全面掌握AI编译器的基本框架、开发流程与关键技术。
- 源码分析能力:学会分析TVM、XLA、Glow等开源项目,提升代码阅读与理解能力。
- 定制化技能:能够针对特定AI芯片定制编译器,解决实际部署中的性能瓶颈。
- GPGPU优化:掌握LLVM后端开发与指令调度、寄存器分配等优化方法。
- 性能调优思维:学会运用性能指标与占用率分析,系统性地优化AI模型。
📖 书籍简介










《AI编译器开发指南》结合专用AI加速器和GPGPU两类芯片架构,系统介绍了AI编译器的基本框架和开发流程,着重论述了在AI编译器开发过程中,针对这两类架构需要重点考虑的实现方法。全书共分为7章,内容涵盖了以TVM为代表的开源AI编译器实现分析和定制化方法,以及GPGPU编译器后端相关设计方法。在介绍AI编译器一般原理的同时,书中通过对开源编译器项目的源代码分析,使读者能通过实例对AI编译器开发过程有更直观的认识。
《AI编译器开发指南》填补了AI编译器开发类书籍的空白,可作为从事AI软硬件设计、开发人员的参考用书,也可作为普通高等院校智能科学与技术、计算机科学与技术等专业的本科生和研究生的教辅书籍。
前言
第1章 AI编译器基础
1.1AI编译器概述
1.1.1AI芯片及其分类
1.1.2AI编译器的结构与特征
1.2常用AI编译器介绍
1.2.1TVM整体架构
1.2.2TensorFlow XLA整体架构
1.2.3Glow整体架构
1.3LLVM编译器基础
1.3.1LLVM前端工作流程
1.3.2LLVM IR格式和语法
1.3.3LLVM后端工作流程
1.4GPGPU编译器基础
1.4.1GPGPU编译器工作流程
1.4.2Clang对CUDA的处理
1.4.3GPGPU编译器的IR优化
第2章 开源AI编译器实现分析
2.1TVM的系统设计
2.1.1TVM的图级优化
2.1.2TVM的计算与调度
2.1.3TVM的自动调优框架
2.2TensorFlow XLA的系统设计
2.2.1XLA的聚类过程
2.2.2XLA的IR设计和编译过程
2.2.3开启XLA的方式
2.2.4XLA JIT的图优化过程
2.2.5XLA JIT的代码生成
2.3Glow的系统设计
2.3.1Glow的高阶IR
2.3.2Glow的低阶IR
2.3.3Glow的量化方法
2.3.4Glow的后端设计
2.4AI编译器特性总结
2.4.1AI编译器的多阶IR设计
2.4.2AI编译器的前端优化
2.4.3AI编译器的后端优化
第3章 定制化AI编译器设计与实现
3.1定制化AI编译器设计框架
3.2TVM的高阶中间表示
3.2.1TVM高阶中间表示的表达
3.2.2TVM高阶中间表示的数据表示实现
3.2.3TVM高阶中间表示的算子实现
3.3TVM的低阶中间表示
3.3.1TVM低阶中间表示的表达
3.3.2TVM代码生成的定制化开发
3.3.3TVM运行时的定制化开发
3.4TVM的前后端优化
3.4.1TVM pass的功能与实现
3.4.2TVM的前端优化
3.4.3TVM的后端优化
第4章 GPGPU编译器后端设计
4.1LLVM后端开发流程
4.1.1异构计算程序工作流程
4.1.2LLVM后端执行流程
4.1.3LLVM中的pass及其管理机制
4.2指令选择
4.2.1指令选择原理与实现方式
4.2.2基于SelectionDAG的指令选择
4.2.3快速指令选择
4.2.4全局指令选择
4.3指令调度
4.3.1指令调度原理
4.3.2LLVM中的指令调度器及其工作过程
4.3.3调度pass的定制
4.4寄存器分配
4.4.1寄存器分配原理
4.4.2LLVM寄存器分配
4.4.3贪厌寄存器分配实现过程分析
第5章 张量核的编程方法与编译器支持
5.1沃尔塔、图灵和安培架构特性
5.1.1沃尔塔架构特性
5.1.2图灵架构特性
5.1.3安培架构特性
5.2张量核编程方法
5.2.1WMMA API及其用法
5.2.2CUTLASS中的张量核编程
5.3编译器后端对张量核的支持
5.3.1wmma PTX指令及其用法
5.3.2mma和ldmatrix PTX指令及其用法
5.3.3WMMA intrinsic函数定义
5.3.4NVPTX后端对wmma PTX指令的支持
第6章 AI模型性能分析与编译器优化方法
6.1AI模型性能的衡量指标和影响因素
6.1.1计算访存比
6.1.2算术强度和操作字节比
6.1.3内存级并行性和线程束并行性
6.2SM占用率及其编程接口
6.2.1理论占用率和实际占用率
6.2.2理论占用率约束条件分析
6.2.3CUDA运行时占用率编程接口
6.3基于占用率的指令调度优化
6.3.1AMD GPU编程模型和硬件执行模型
6.3.2AMDGPU后端的指令调度算法优化
第7章 AI芯片软硬件系统接口设计
7.1GPGPU软硬件接口设计
7.1.1GPGPU主机端编程接口
7.1.2内核分派过程
7.1.3GPGPU硬件分派过程
7.2AI加速器软硬件接口设计
7.2.1AI加速器硬件架构
7.2.2AI加速器设备软件栈
7.3量化技术与实现
7.3.1量化技术原理
7.3.2算子量化和激活函数量化
7.3.3激活函数量化方法
参考文献
📑 章节目录
- AI编译器基础
- 开源AI编译器实现分析
- 定制化AI编译器设计与实现
- GPGPU编译器后端设计
- 张量核的编程方法与编译器支持
- AI模型性能分析与编译器优化方法
- AI芯片软硬件系统接口设计