Skip to main content
QUICK REVIEW

[论文解读] TIRAMISU: A Polyhedral Compiler for Dense and Sparse Deep Learning

Riyadh Baghdadi, Abdelkader Nadir Debbagh|arXiv (Cornell University)|May 7, 2020
Parallel Computing and Optimization Techniques参考文献 37被引用 10
一句话总结

Tiramisu 是一种多面体编译器,通过利用多面体模型和用户引导的调度命令,为多核 CPU 上的稀疏和循环神经网络(RNNs)生成高度优化的代码。它在深度学习基准测试中,相较于 Intel MKL-DNN 最快提升 5 倍,并在最先进编译器中实现最高 2 倍的性能超越,证明了首个能够高效利用非结构化权重重叠稀疏性并支持具有未知展开因子的一般 RNN 的 DNN 编译器。

ABSTRACT

In this paper, we demonstrate a compiler that can optimize sparse and recurrent neural networks, both of which are currently outside of the scope of existing neural network compilers (sparse neural networks here stand for networks that can be accelerated with sparse tensor algebra techniques). Our demonstration includes a mapping of sparse and recurrent neural networks to the polyhedral model along with an implementation of our approach in TIRAMISU, our state-of-the-art polyhedral compiler. We evaluate our approach on a set of deep learning benchmarks and compare our results with hand-optimized industrial libraries. Our results show that our approach at least matches Intel MKL-DNN and in some cases outperforms it by 5x (on multicore-CPUs).

研究动机与目标

  • 解决现有深度学习编译器对稀疏和循环神经网络支持不足的问题。
  • 实现对非结构化权重重叠稀疏性的高性能代码生成,这类稀疏性通常难以通过传统编译器加速。
  • 支持具有动态展开因子的一般 RNN,这类结构在无环数据流编译器中无法表达。
  • 通过先进的循环和数据布局转换,在多核 CPU 上超越现有工业界和学术界编译器。
  • 证明结合用户调度的多面体编译器在性能上优于完全自动或结构受限的编译器。

提出的方法

  • 编译器使用嵌入 C++ 的领域特定语言(DSL)分别表达算法和调度命令,实现与架构无关的高级别规格描述。
  • 将稀疏和循环神经网络映射到多面体模型,支持复杂的仿射变换,如循环分块、融合、向量化和迭代空间倾斜。
  • 通过调度命令指导代码生成,使用户能够对数组打包、寄存器分块和数据预取等优化进行细粒度控制。
  • 多面体表示支持正确的依赖性分析,允许合法但保守的融合与变换决策,避免非法代码生成。
  • 系统支持非矩形迭代空间和循环数据流图,从而能够建模具有未知展开因子的一般 RNN。
  • 与 PyTorch 等高层框架集成,生成针对多核 CPU 优化的 C++ 代码,并应用关键性能优化。

实验结果

研究问题

  • RQ1多面体编译器能否有效优化具有非结构化权重重叠稀疏性的深度神经网络,这类网络通常被现有 DNN 编译器忽略?
  • RQ2编译器如何表达并优化展开因子在编译时未知的一般循环神经网络?
  • RQ3在 CPU 架构上,多面体编译器中用户引导的调度能否在性能上超越完全自动调度器和工业级库?
  • RQ4通过多面体框架应用数组打包、寄存器分块和预取等高级优化,对稀疏和循环 DNN 的影响如何?
  • RQ5基于多面体模型的编译器在性能上能达到与手写优化库(如 Intel MKL-DNN)相当或更优的程度到何种程度?

主要发现

  • Tiramisu 在多核 CPU 上对稀疏和循环 DNN 的性能相较 Intel MKL-DNN 最快提升 5 倍,展现出显著的性能提升。
  • 该编译器在所有基准测试中达到与 Intel MKL-DNN 相当的性能,并在多个场景中实现超越,尤其在非结构化稀疏性情况下表现更优。
  • Tiramisu 是首个为非结构化权重重叠稀疏性生成高效代码的 DNN 编译器,实现了因计算和内存访问减少而带来的性能提升。
  • 它成功表达并优化了展开因子未知的一般 RNN,这是 Halide 或其他无环数据流编译器所不支持的能力。
  • 通过使用调度命令,实现了对数组打包和预取等优化的细粒度控制,而这些功能在完全自动的多面体编译器中缺失。
  • Tiramisu 在最先进编译器中实现最高 2 倍的性能超越,表明在多面体框架中采用用户引导调度可超越完全自动方法。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。