随着深度学习的应用场景的不断泛化,深度学习计算任务也需要部署在不同的计算设备和硬件架构上;同时,实际部署或训练场景对性能往往也有着更为激进的要求,例如针对硬件特点定制计算代码。
这些需求在通用的AI框架中已经难已得到满足。由于深度学习计算任务在现有的AI框架中往往以DSL(Domain Specific Language)的方式进行编程和表达,这本身使得深度学习计算任务的优化和执行天然符合传统计算机语言的编译和优化过程。因此,深度学习的编译与优化就是将当前的深度学习计算任务通过一层或多层中间表达进行翻译和优化,最终转化成目标硬件上的可执行代码的过程。本章将围绕现有AI编译器中的编译和优化工作的内容展开介绍。
编号 | 名称 | 具体内容 | 备注 |
编译器基础 | 01 课程概述 | silde, video | |
1 | 传统编译器 | 02 开源编译器的发展 | silde, video |
传统编译器 | 03 GCC编译过程和原理 | silde, video | |
传统编译器 | 04 LLVM设计架构 | silde, video | |
传统编译器 | 05(上) LLVM IR详解 | silde, video | |
传统编译器 | 05(中) LLVM前端和优化层 | silde, video | |
传统编译器 | 05(下) LLVM后端代码生成 | silde, video | |
2 | AI 编译器 | 01 为什么需要AI编译器 | silde, video |
AI 编译器 | 02 AI编译器的发展阶段 | silde, video | |
AI 编译器 | 03 AI编译器的通用架构 | silde, video | |
AI 编译器 | 04 AI编译器的挑战与思考 | silde, video | |
3 | 前端优化 | 01 内容介绍 | silde, video |
前端优化 | 02 计算图层IR | silde, video | |
前端优化 | 03 算子融合策略 | silde, video | |
前端优化 | 04(上) 布局转换原理 | silde, video | |
前端优化 | 04(下) 布局转换算法 | silde, video | |
前端优化 | 05 内存分配算法 | silde, video | |
前端优化 | 06 常量折叠原理 | silde, video | |
前端优化 | 07 公共表达式消除 | silde, video | |
前端优化 | 08 死代码消除 | silde, video | |
前端优化 | 09 代数简化原理 | silde, video | |
前端优化 | 10 优化Pass排序 | silde, video | |
4 | 后端优化 | 01 AI编译器后端优化介绍 | silde, video |
后端优化 | 02 算子分为计算与调度 | silde, video | |
后端优化 | 03 算子优化手工方式 | silde, video | |
后端优化 | 04 算子循环优化 | silde, video | |
5 | PyTorch2.0 | 01 PyTorch2.0 特性串讲 | silde, video |
5.1 | TorchDynamo | 02 TorchScript 静态图尝试 | silde, video |
TorchDynamo | 03 Torch FX 与 LazyTensor 特性 | silde, video | |
TorchDynamo | 04 TorchDynamo 来啦 | silde, video | |