- 在解决的是什么问题?
- 为何成功,标志/准是什么?
- 在前人基础上的关键创新是什么?
- 关键结果有哪些?
- 有哪些局限性?如何优化?
- 这个工作可能有什么深远的影响?
和基于 loop 的编译器相比,优化空间
rTile和数据处理管线的这两个抽象让 ROLLER 构造了一个重叠的,但是和已有的 DNN 编译器重叠的优化空间(比如 Ansor)。这些编译器把tensor编译过程当做嵌套的循环优化。例如 Ansor 只允许在一个 tensor的某个维度上进行tiling 大小的切分来吧一个循环的轴划分均匀。这让它的tensor形状在维度为素数的情况下性能很差。ROLLER 关注在从数据处理管线的角度,去看如何最大化硬件效率,这样让更加激进的优化成为可能。例如,可以探索无法整除但是硬件对齐的tiling size,有fused adjacent axis 和 padded tensor shapes。我们观察发现大部分 DNN 的算子都是显存受限,所以 ROLLER 与已有的DNN 编译器差别主要在于先优化数据tile的吞吐,比如最大化重用,对齐硬件feature,然后才是并行。这样的妥协下,编译速度飞快,在有足够并行下,op的速度非常快