DLCompilerResource

Note: 同一论文在不同分类目录下可能会出现多次

DL编译框架

survey

一篇很好的DL编译器的survey,总结了DL编译器的设计框架

image-20200831204337565

比较了Halide, XLA, TVM, TC等几种编译器的性能

image-20200831210442908

  • UC伯克利AI-Sys课程AI compiler sides

    依次介绍了Halide/TVM/TC三个工作,勾勒出DL compilers发展的脉络。Halide把调度从硬件的复杂性中抽象出来;TVM自动地为不同硬件优化算子调度;TC为算子全自动代码生成,完全不同考虑硬件。

TVM系列工作

TVM的第二代high-level IR,类似于编程语言,设计了语法规则,引入了let-binding机制。DL背景的开发者可以使用data flow graph来定义计算图,PL(Program Language)背景的研究人员可以使用let binding来定义计算图。Let binding机制通过compute scope解决了AST的二义性问题。

TVM设计的一套通用的后端设计方案,设计了指令集,可以基于FPGA实现。VTA与Relay, TVM组成一套完整的end-to-end的DL编译栈。TVM基于VTA尝试了hardware-software codesign.

Auto-tuning相关工作

把schedule分成sketch和annotation两层,sketch相当于TVM的schedule template,Ansor可以先搜索出sketch,再搜索annotation。

用强化学习来做schedule搜索

Polyhedral

上面面三篇公众号文章介绍Poly的一些基本原理和在DL领域中的应用,作者是要术甲杰,是Poly研究领域的博士

同样是要术甲杰写的介绍Pluto算法的文章

其他

用shared memory来实现更激进的operator fusion策略

两篇关于自动微分的survey

schedule和execution阶段进行联合优化

阿里杨军的系列文章

用TVM在神威超算上生成算子

TensorFow中的图优化