Awesome Tensor 编译器
一个关于 Tensor 计算和深度学习优秀编译器项目和论文的列表。
目录
开源项目
- TVM:端到端机器学习编译器框架
- MLIR:多层次中间表示
- XLA:机器学习优化编译器
- Halide:用于图像和 Tensor 快速便携计算的语言
- Glow:神经网络硬件加速器编译器
- nnfusion:灵活高效的深度神经网络编译器
- Hummingbird:将训练好的机器学习模型编译为 Tensor 计算
- Triton:用于平铺神经网络计算的中间语言和编译器
- AITemplate:一个 Python 框架,将神经网络呈现为高性能 CUDA/HIP C++ 代码
- Hidet:基于编译的深度学习框架
- Tiramisu:用于表达快速便携代码的多面体编译器
- TensorComprehensions:框架无关的高性能机器学习抽象
- PlaidML:让深度学习遍布各地的平台
- BladeDISC:用于机器学习工作负载的端到端动态形状编译器
- TACO:Tensor 代数编译器
- Nebulgym:易于使用的加速 AI 训练库
- Speedster:自动应用 SOTA 优化技术以在您的硬件上实现最大推理加速
- NN-512:生成神经网络推理 C99 代码的编译器
- DaCeML:用于机器学习的数据中心编译器
- Mirage:用于 Tensor 代数的多级超级优化器
论文
综述
- 深度学习编译器:全面综述 ,作者:Mingzhen Li 等人,TPDS 2020年
- 深度神经网络硬件编译器的深入比较 ,作者:Yu Xing 等人,ICESS 2019年
编译器和 IR 设计
- BladeDISC: 通过编译器方法优化动态形状机器学习工作负载 ,作者:Zhen Zheng 等人,SIGMOD 2024年
- Hidet: 深度学习任务映射编程范式 ,作者:Yaoyao Ding 等人,ASPLOS 2023年
- TensorIR: 自动化张量化程序优化的一种抽象 ,作者:Siyuan Feng, Bohan Hou 等人,ASPLOS 2023年
- Exocompilation: 硬件加速器的高效编程 ,作者:Yuka Ikarashi, Gilbert Louis Bernstein 等人,PLDI 2022年
- DaCeML: 用于机器学习的数据中心编译器 ,作者:Oliver Rausch 等人,ICS 22年
- FreeTensor: 一个用于不规则张量程序的自由形式 DSL 和综合优化 ,作者:Shizhi Tang 等人,PLDI 2022年
- Roller: 快速高效的深度学习 Tensor 编译 ,作者:Hongyu Zhu 等人,OSDI 2022年
- AStitch: 在现代 SIMT 架构上实现内存密集型机器学习训练和推理的新多维优化空间 ,作者:Zhen Zheng 等人,ASPLOS 2022年
- MLIR 中的组合和模块化代码生成:构建 Tensor 编译器的结构化和可重定向方法 ,作者:Nicolas Vasilache 等人,arXiv 2022年
- PET: 使用部分等效变换和自动纠正优化 Tensor 程序 ,作者:Haojie Wang 等人,OSDI 2021年
- MLIR: 为特定领域计算扩展编译器基础设施 ,作者:Chris Lattner 等人,CGO 2021年
- 统一机器学习预测服务的张量编译器 ,作者:Supun Nakandala 等人,OSDI 2020年
- Rammer: 通过 rTasks 实现整体深度学习编译器优化 ,作者:Lingxiao Ma 等人,OSDI 2020年
- 有状态数据流多图:异构架构上性能可移植性的数据中心模型 ,作者:Tal Ben-Nun 等人,SC 2019年
- TASO: 深度学习的张量代数超级优化器 ,作者:Zhihao Jia 等人,SOSP 2019年
- Tiramisu: 用于表达快速便携代码的多面体编译器 ,作者:Riyadh Baghdadi 等人,CGO 2019年
- Triton: 用于平铺神经网络计算的中间语言和编译器 ,作者:Philippe Tillet 等人,MAPL 2019年
- Relay: 深度学习的高级编译器 ,作者:Jared Roesch 等人,arXiv 2019年
- TVM: 一个用于深度学习的自动化端到端优化编译器 ,作者:Tianqi Chen 等人,OSDI 2018年
- Tensor Comprehensions: 框架无关的高性能机器学习抽象 ,作者:Nicolas Vasilache 等人,arXiv 2018年
- Intel nGraph: 深度学习的中间表示、编译器和执行器 ,作者:Scott Cyphers 等人,arXiv 2018年
- Glow: 神经网络的图级编译技巧 ,作者:Nadav Rotem 等人,arXiv 2018年
- DLVM: 深度学习系统的现代编译器基础设施 ,作者:Richard Wei 等人,arXiv 2018年
- Diesel: 在 GPU 上进行线性代数和神经网络计算的 DSL ,作者:Venmugil Elango 等人,MAPL 2018年
- Tensor 代数编译器 ,作者:Fredrik Kjolstad 等人,OOPSLA 2017年
- Halide: 用于优化图像处理流水线中的并行性、本地性和重复计算的语言和编译器 ,作者:Jonathan Ragan-Kelley 等人,PLDI 2013年
自动调优和自动调度
- 加速 Tensor 计算的 GPU Kernel 自动调优 ,作者:Chendi Li, Yufan Xu 等人,ICS 2024年
- 启用 Tensor 语言模型辅助生成高性能深度学习 Tensor 程序 ,作者:Yi Zhai 等人,OSDI 2024年
- Kernel 调度的 Droplet 搜索算法 ,作者:Michael Canesche 等人,ACM TACO 2024年
- 使用概率程序优化 Tensor 程序 ,作者:Junru Shao 等人,NeurIPS 2022年
- 深度学习编译器的一次调优 ,作者:Jaehun Ryu 等人,CC 2022年
- 稀疏张量代数的自动调度和渐进成本模型 ,作者:Peter Ahrens 等人,PLDI 2022年
- Bolt: 架起自动调优器和硬件原生性能之间的桥梁 ,作者:Jiarong Xing 等人,MLSys 2022年
- 深度学习加速器领域优化的全栈搜索技术 ,作者:Dan Zhang 等人,ASPLOS 2022年
- 用于 GPU 的成像和视觉流水线高效自动调度 ,作者:Luke Anderson 等人,OOPSLA 2021年
- Lorien: 高效的深度学习工作负载交付 ,作者:Cody Hao Yu 等人,SoCC 2021年
- 深度神经网络吞吐量优化的价值学习 ,作者:Benoit Steiner 等人,MLSys 2021年
- 多通道机器学习编译器的灵活自动调优方法 ,作者:Phitchaya Mangpo Phothilimthana 等人,PACT 2021年
- Ansor: 生成高性能深度学习 Tensor 程序 ,作者:Lianmin Zheng 等人,OSDI 2020年
- 面向 GPU 的 Halide 管道调度合成 ,作者:Sioutas Savvas 等人,TACO 2020年
- FlexTensor: 针对异构系统的 Tensor 计算框架自动调度和优化 ,作者:Size Zheng 等人,ASPLOS 2020年
- ProTuner: 使用蒙特卡罗树搜索调优程序 ,作者:Ameer Haj-Ali 等人,arXiv 2020年
- AdaTune: 自适应 Tensor 程序编译优化 ,作者:Menghao Li 等人,NeurIPS 2020年
- 通过组合自动转换来优化内存层次结构 ,作者:Jie Zhao 等人,MICRO 2020年
- Chameleon: 深度神经网络编译的自适应代码优化 ,作者:Byung Hoon Ahn 等人,ICLR 2020年
- 稀疏张量代数的稀疏迭代空间变换框架 ,作者:Ryan Senanayake 等人,OOPSLA 2020年
- 用树搜索和随机程序优化 Halide ,作者:Andrew Adams 等人,SIGGRAPH 2019年
- 学习优化 Tensor 程序 ,作者:Tianqi Chen 等人,NeurIPS 2018年
- 自动调度 Halide 图像处理流水线 ,作者:Ravi Teja Mullapudi 等人,SIGGRAPH 2016年
成本模型
- TLP: 基于深度学习的张量程序调优成本模型 作者:Yi Zhai 等人,ASPLOS 2023
- 用于自动调度稀疏张量程序的渐近成本模型 作者:Peter Ahrens 等人,PLDI 2022
- TenSet: 为学习型张量编译器提供的大规模程序性能数据集 作者:Lianmin Zheng 等人,NeurIPS 2021
- 基于深度学习的自动代码优化的成本模型 作者:Riyadh Baghdadi 等人,MLSys 2021
- 一个为张量处理单元设计的性能模型 作者:Samuel J. Kaufman 等人,MLSys 2021
- DYNATUNE: 深度神经网络编译中动态张量程序优化 作者:Minjia Zhang 等人,ICLR 2021
- MetaTune: 基于元学习的快速高效的自动调优框架成本模型 作者:Jaehun Ryu 等人,arxiv 2021
- 基于LightGBM的快速张量程序编译 作者:Gonghan Liu1 等人,JPCS 2021
CPU和GPU优化
- DeepCuts: 针对多种GPU工作负载的深度学习优化框架 作者:Wookeun Jung 等人,PLDI 2021
- CNN优化的分析表征和设计空间探索 作者:Rui Li 等人,ASPLOS 2021
- UNIT: 统一的张量化指令编译 作者:Jian Weng 等人,CGO 2021
- PolyDL: 创建高性能深度学习原语的多边形优化 作者:Sanket Tavarageri 等人,arXiv 2020
- Fireiron: 面向GPU的数据移动感知调度语言 作者:Bastian Hagedorn 等人,PACT 2020
- 用于Volta张量核心的自动内核生成 作者:Somashekaracharya G. Bhaskaracharya 等人,arXiv 2020
- Swizzle Inventor: 为GPU内核合成数据移动 作者:Phitchaya Mangpo Phothilimthana 等人,ASPLOS 2019
- 在CPUs上优化CNN模型推理 作者:Yizhi Liu 等人,ATC 2019
- 张量收缩的分析缓存建模和块大小优化 作者:Rui Li 等人,SC 19
NPU优化
- Heron: 自动约束高性能库生成用于深度学习加速器 作者:Jun Bi 等人,ASPLOS 2023
- AMOS: 通过硬件抽象使得张量计算在空间加速器上的自动映射 作者:Size Zheng 等人,ISCA 2022
- 走向神经网络和加速器的协同设计 作者:Yanqi Zhou 等人,MLSys 2022
- AKG: 使用多边形转换为神经处理单元生成自动内核 作者:Jie Zhao 等人,PLDI 2021
图级优化
- POET: 通过集成再材料化和分页训练微小设备上的神经网络 作者:Shishir G. Patil 等人,ICML 2022
- Collage: 通过自动摆放无缝集成深度学习后端 作者:Byungsoo Jeon 等人,PACT 2022
- Apollo: 通过逐层优化的自动分区操作融合 作者:Jie Zhao 等人,MLSys 2022
- 张量图超优化的相等饱和 作者:Yichen Yang 等人,MLSys 2021
- IOS: 用于加速CNN的内操作调度器 作者:Yaoyao Ding 等人,MLSys 2021
- 使用图替换优化DNN计算图 作者:Jingzhi Fang 等人,VLDB 2020
- ML编译器的可传输图优化器 作者:Yanqi Zhou 等人,NeurIPS 2020
- FusionStitching: 提高深度学习工作负载的内存密集型计算 作者:Zhen Zheng 等人,arXiv 2020
- Nimble: 深度学习的轻量级并行GPU任务调度 作者:Woosuk Kwon 等人,NeurIPS 2020
动态模型
- Axon: 深度学习图中动态形状的语言 作者:Alexander Collins 等人,arXiv 2022
- DietCode: 动态张量程序的自动优化 作者:Bojian Zheng 等人,MLSys 2022
- CoRa张量编译器:最小化填充的碎片张量编译 作者:Pratik Fegade 等人,MLSys 2022
- Nimble: 为模型推理高效编译动态神经网络 作者:Haichen Shen 等人,MLSys 2021
- DISC: 用于机器学习工作负载的动态形状编译器 作者:Kai Zhu 等人,EuroMLSys 2021
- Cortex: 递归深度学习模型的编译器 作者:Pratik Fegade 等人,MLSys 2021
图神经网络
- Graphiler: 利用消息传递数据流图优化图神经网络 作者:Zhiqiang Xie 等人,MLSys 2022
- Seastar: 面向图神经网络的顶点中心编程 作者:Yidi Wu 等人,Eurosys 2021
- FeatGraph: 用于图神经网络系统的灵活高效的后端 作者:Yuwei Hu 等人,SC 2020
分布式计算
- SpDISTAL: 编译分布式稀疏张量计算 作者:Rohan Yadav 等人,SC 2022
- Alpa: 为分布式深度学习自动化内外操作并行化 作者:Lianmin Zheng, Zhuohan Li, Hao Zhang 等人,OSDI 2022
- Unity: 通过代数变换和并行化的联合优化加速DNN训练 作者:Colin Unger, Zhihao Jia 等人,OSDI 2022
- 在深度学习中综合最佳的并行放置和减少策略 作者:Ningning Xie, Tamara Norman, Diminik Grewe, Dimitrios Vytiniotis 等人,MLSys 2022
- DISTAL: 分布式张量代数编译器 作者:Rohan Yadav 等人,PLDI 2022
- GSPMD: 通用且可扩展的ML计算图并行化 作者:Yuanzhong Xu 等人,arXiv 2021
- 在分布式机器学习工作负载中打破计算和通信抽象障碍 作者:Abhinav Jangda 等人,ASPLOS 2022
- OneFlow: 从头重新设计分布式深度学习框架 作者:Jinhui Yuan 等人,arXiv 2021
- 突破深度神经网络的数据和模型并行 作者:Zhihao 等人,MLSys 2019
- 使用自动数据流图分区支持非常大的模型 作者:Minjie Wang 等人,EuroSys 2019
- 分布式Halide 作者:Tyler Denniston 等人,PPoPP 2016
量化
- 后端感知的自动化训练后量化 作者:Ziheng Jiang 等人,arXiv 2021
- 高效执行量化深度学习模型:一种编译器方法 作者:Animesh Jain 等人,arXiv 2020
- 高性能量化机器学习内核的自动生成 作者:Meghan Cowan 等人,CGO 2020
稀疏
- 稀疏抽象机器 作者:Olivia Hsu 等,ASPLOS 2023
- SparseTIR:用于深度学习中的稀疏编译的可组合抽象 作者:Zihao Ye 等,ASPLOS 2023
- WACO:学习稀疏张量程序格式与时间表的工作量感知共优化 作者:Jaeyeon Won 等,ASPLOS 2023
- Looplets:一种结构化协作迭代语言 作者:Willow Ahrens 等,CGO 2023
- 稀疏张量格式转换和优化的代码合成 作者:Tobi Popoola 等,CGO 2023
- Stardust:将稀疏张量代数编译为可重构数据流架构 作者:Olivia Hsu 等,arXiv 2022
- 稀疏抽象机器 作者:Olivia Hsu 等,arXiv 2022
- 用于无损压缩和稀疏计算的统一编译 作者:Daniel Donenfeld 等,CGO 2022
- SparseLNR:通过循环嵌套重组加速稀疏张量计算 作者:Adhitha Dias 等,ICS 2022
- SparTA:通过稀疏属性张量实现深度学习模型稀疏化 作者:Ningxin Zheng 等,OSDI 2022
- MLIR 中稀疏张量计算的编译器支持 作者:Aart J.C. Bik 等,TACO 2022
- 稀疏数组编程模型的编译 作者:Rawn Henry 和 Olivia Hsu 等,OOPSLA 2021
- MLIR 中的高性能稀疏张量代数编译器 作者:Ruiqin Tian 等,LLVM-HPC 2021
- 动态稀疏张量代数编译 作者:Stephen Chou 等,arXiv 2021
- 高效稀疏张量格式转换例程的自动生成 作者:Stephen Chou 等,PLDI 2020
- TIRAMISU:一种用于稠密和稀疏深度学习的多面体编译器 作者:Riyadh Baghdadi 等,arXiv 2020
- 工作区中的张量代数编译 作者:Fredrik Kjolstad 等,CGO 2019
- 用于高效编译器生成检查器的稀疏计算数据依赖简化 作者:Mahdi Soltan Mohammadi 等,PLDI 2019
- Taichi:一种用于高性能稀疏数据结构计算的语言 作者:Yuanming Hu 等,ACM ToG 2019
- 稀疏多面体框架:组合编译器生成的检查器执行器代码 作者:Michelle Mills Strout 等,IEEE 会议 2018
- 稀疏张量代数编译器的格式抽象 作者:Stephen Chou 等,OOPSLA 2018
- ParSy:稀疏矩阵计算的检查与转换以实现并行化 作者:Kazem Cheshmi 等,SC 2018
- Sympiler:通过解耦符号分析转换稀疏矩阵代码 作者:Kazem Cheshmi 等,SC 2017
- 张量代数编译器 作者:Fredrik Kjolstad 等,OOPSLA 2017
- 下一代泛型编程及其在稀疏矩阵计算中的应用 作者:Nikolay Mateev 等,ICS 2000
- 从高级规范中合成稀疏矩阵代码的框架 作者:Nawaaz Ahmed 等,SC 2000
- 自动非零结构分析 作者:Aart Bik 等,SIAM 计算杂志 1999
- SIPR:一个生成稀疏矩阵计算高效代码的新框架 作者:William Pugh 等,LCPC 1998
- 稀疏矩阵计算的自动数据结构选择与转换 作者:Aart Bik 等,TPDS 1996
- 稀疏矩阵计算的编译技术 作者:Aart Bik 等,ICS 1993
程序重写
- 通过高级调度重写验证张量程序优化 作者:Amanda Liu 等,POPL 2022
- 通过访问模式进行纯张量程序重写(表示珍珠) 作者:Gus Smith 等,MAPL 2021
- 张量图超优化的等式饱和 作者:Yichen Yang 等, MLSys 2021
验证和测试
- NNSmith:生成多样且有效的深度学习编译器测试用例 作者:Jiawei Liu 等,ASPLOS 2023
- 通过联合IR通道变异进行覆盖引导的张量编译器模糊测试 作者:Jiawei Liu 等,OOPSLA 2022
- Halide语言的端到端翻译验证 作者:Basile Clément 等,OOPSLA 2022
- 深度学习编译器错误的全面研究 作者:Qingchao Shen 等,ESEC/FSE 2021
- 使用程序合成验证和改进Halide的术语重写系统 作者:Julie L. Newcomb 等,OOPSLA 2020
教程
贡献
我们鼓励对这个仓库的所有贡献。请开一个问题或者发送一个拉取请求。
链接格式说明
我们偏向于使用指向更具有信息页面的链接而不是单一的pdf。例如,对于arxiv论文,我们更喜欢 https://arxiv.org/abs/1802.04799 而不是 https://arxiv.org/pdf/1802.04799.pdf。对于USENIX论文(OSDI/ATC),我们更喜欢 https://www.usenix.org/conference/osdi18/presentation/chen 而不是 https://www.usenix.org/system/files/osdi18-chen.pdf。对于ACM论文(ASPLOS/PLDI/Eurosys),我们更喜欢 https://dl.acm.org/doi/abs/10.1145/3519939.3523446 而不是 https://dl.acm.org/doi/pdf/10.1145/3519939.3523446。