OSDI 2021论文选读

Table of Contents

PET: Optimizing Tensor Programs with Partially Equivalent Transformations and Automated Corrections

这篇文章的思路很简单,要求完整的等价变换可能会限制我们优化算子的手段,这篇文章放松了“等价”这个需求:如果我们对一个算子 \(f\) 应用了一系列变换 \(\{t_i\}_{i=1}^{n}\) ,只要求

\[ t_n(t_{n-1}(\cdots t_1(f))) \equiv f\]

即可,并不要求每个中间时刻

\[ t_i(\cdots t_1(f)) \equiv f\]

即我们可以先做带错误的变换(partially equivalent transformation),最后把错误的位置给修正。

文中举了一个depthwise convolution的例子:

pet.png

在允许了PET之后,对于group convolution和depthwise convolution,在图层面可以并行和融合的粒度提高了很多,进而可以提升端到端的整体性能。

让我感觉比较失望的是这篇文章似乎只是设计了一些模板来指导怎么做PET和修正,并没有从程序中自动提取出PET的能力。

跟Max讨论了一下PET在egraph下有没有对应的策略,Max介绍了一下他们在CAD问题上使用过的 Inverse Transformation 方法。

Author: expye(Zihao Ye)

Email: expye@outlook.com

Date: 2021-07-08 Thu 00:00

Last modified: 2022-04-26 Tue 23:33

Licensed under CC BY-NC 4.0