TinyIREE: An ML Execution Environment for Embedded Systems from Compilation to Deployment
在过去十年中,用于训练和执行的机器学习模型部署一直是工业和学术研究的重要主题。大部分注意力都集中在开发特定的工具链来支持加速硬件。在本文中,我们提出了IREE,一个统一的编译器和运行时堆栈,其明确目标是将机器学习程序缩减到移动和边缘设备的最小占用空间,同时保持扩展到更大部署目标的能力。IREE采用基于编译器的方法,并通过使用MLIR编译器基础设施来优化异构硬件加速器,该基础设施提供了快速设计和实现多层编译器中间表示(IR)的方法。更具体地说,本文重点关注TinyIREE,这是IREE中的一组部署选项,可适应嵌入式系统和裸机平台中有限的内存和计算资源,同时还展示了IREE的直观工作流程,可通过LLVM为不同的ISA扩展和ABI生成工作负载。
2022-05-28 cs.PL
Introducing Molly: Distributed Memory Parallelization with LLVM
为分布式内存机器编程一直是一项乏味的任务,但这是必要的,因为编译器本身还没有足够的能力为这样的机器进行优化。Molly是LLVM编译器工具链的一个扩展,如果程序被组织在静态确定的循环控制流中,它能够分发和重组工作负载和数据。这些被表示为多面体整数点集,允许应用于它们的程序转换。程序员可以根据需要声明内存分布和布局,并自动生成必要的异步MPI通信。主要动机是在IBM Blue Gene/Q超级计算机上运行Lattice QCD模拟,但由于实施尚未完成,本文展示了Conway生命游戏的功能。
2014-09-07 cs.DC cs.PL
Compiler-Driven Approximation Tuning for Hyperdimensional Computing
University of Illinois Urbana-Champaign(伊利诺伊大学厄巴纳-香槟分校);University of California San Diego(加州大学圣迭戈分校)
提出ApproxHDC框架,通过编译器自动识别和应用超维计算中的领域特定近似,结合高效搜索与多硬件后端支持,实现性能大幅提升且精度损失极小。
2026-06-26 cs.CL cs.PF cs.PL
TVM: An Automated End-to-End Optimizing Compiler for Deep Learning
Paul G. Allen School of Computer Science & Engineering, University of Washington(华盛顿大学保罗·G·艾伦计算机科学与工程学院);AWS(亚马逊云科技);Shanghai Jiao Tong University(上海交通大学);UC Davis(加州大学戴维斯分校);Cornell(康奈尔大学)
越来越需要将机器学习引入各种各样的硬件设备。目前的框架依赖于特定于供应商的运算符库,并针对范围较窄的服务器级GPU进行了优化。将工作负载部署到新平台--例如移动电话、嵌入式设备和加速器(例如,FPGA、ASIC)--需要大量的手动工作。我们提出了TVM,这是一个编译器,它公开了图形级和操作符级优化,为跨不同硬件后端的深度学习工作负载提供性能可移植性。TVM解决了特定于深度学习的优化挑战,例如高级操作符融合,映射到任意硬件原语和内存延迟隐藏。它还采用了一种新的,基于学习的成本建模方法,用于快速探索代码优化,从而自动优化低级程序的硬件特性。实验结果表明,TVM在硬件后端提供的性能与低功耗CPU,移动GPU和服务器级GPU的最先进的手工调优库竞争。我们还展示了TVM针对新加速器后端的能力,例如基于FPGA的通用深度学习加速器。该系统是开源的,并在几家大公司的生产中使用。
2018-10-05 cs.AI cs.LG cs.PL
RAF: Holistic Compilation for Deep Learning Model Training
Amazon Web Services, Inc(亚马逊云科技);Scroll Foundation(Scroll基金会);OctoML, Inc(OctoML公司)
随着深度学习在现代应用中的普及,许多深度学习框架被提出来供深度学习从业者快速开发和训练DNN模型。与此同时,随着近年来训练大型深度学习模型成为一种趋势,训练吞吐量和内存占用变得至关重要。因此,通过编译器优化来优化训练工作量是必然的,也越来越受到人们的关注。然而,现有的深度学习编译器(DLC)主要以推理为目标,并且在训练工作负载中没有结合整体优化,例如自动微分和自动混合精度。在本文中,我们提出了RAF,一个用于训练的深度学习编译器。与现有的DLC不同,RAF接受前向模型并在内部生成训练图。因此,RAF能够系统地整合性能,内存和分布式训练的图形优化。此外,为了赶上手工制作的内核库以及张量编译器的最新性能,RAF提出了一种操作符方言机制来无缝集成所有可能的内核实现。我们证明,通过内部训练图生成和操作员方言机制,我们能够执行整体优化,并针对PyTorch(渴望和torchscript模式),XLA和DeepSpeed针对GPU上流行的Transformer模型实现更好的训练吞吐量或更大的批量。
2023-03-08 cs.DC cs.LG cs.PL
NPUEval: Optimizing NPU Kernels with LLMs and Open Source Compilers
本文提出NPUEval基准,包含102个机器学习算子,用于评估LLM在AMD NPU上生成内核的功能正确性与向量化效率,并揭示即使前沿模型平均得分也仅约10%的挑战。
2025-07-18 cs.PL
TIRx: A Unified Tile Primitive ML Compiler Across Heterogeneous Backends
Axe提出了一种统一的布局抽象,通过多轴物理空间映射逻辑张量坐标,实现跨设备分布和设备内布局的一致表达,并结合多粒度DSL和编译器提升性能。
2026-11-02 cs.AI cs.DC cs.LG
AI Powered Compiler Techniques for DL Code Optimization
在CPU上创建深度学习原语的高性能实现是一项具有挑战性的任务。包括多级缓存层次结构和CPU平台的宽SIMD单元在内的多种考虑因素影响了应用于性能优化的程序转换的选择。在本文中,我们提出了机器学习驱动的编译器技术来优化循环嵌套。我们采取双管齐下的方法来进行代码优化:我们首先应用高级优化来优化代码,以最佳地利用缓存内存。然后,我们执行低级别的、特定于目标的优化,以有效地对代码进行向量化,从而在机器的SIMD单元上运行良好。对于高级优化,我们使用多面体编译技术和深度学习方法。对于低级优化,我们使用目标特定的代码生成器,该代码生成器使用向量内在函数和强化学习(RL)技术生成代码,以找到代码生成器的最佳参数。我们对流行的深度学习工作负载中发生的各种矩阵乘法进行了实验评估。实验结果表明,本文提出的编译技术在串行运行和并行运行时分别获得了7.6倍和8.2倍的速度提升。
2021-04-12 cs.PL
swTVM: Towards Optimized Tensor Code Generation for Deep Learning on Sunway Many-Core Processor
Beihang University(北京航空航天大学);National University of Singapore(新加坡国立大学);Tsinghua University(清华大学)
深度学习框架和硬件平台的蓬勃发展一直要求高效的编译器能够屏蔽软件和硬件的多样性,以提供应用程序的可移植性。在现有的深度学习编译器中,TVM以其在不同硬件设备上的代码生成和优化效率而闻名。与此同时,Sunway众核处理器凭借其在科学计算和深度学习工作负载方面的诱人计算能力,成为一个有竞争力的候选者。本文结合这两个方向的趋势。具体来说,我们提出了swTVM,扩展了原来的TVM,以支持提前编译的架构,需要交叉编译,如Sunway。此外,我们在编译过程中利用了架构特性,例如用于大规模并行的核心组,用于高带宽内存传输的DMA和用于数据局部性的本地设备内存,以便为Sunway上的深度学习工作负载生成高效的代码。实验结果表明,在六个有代表性的基准测试中,与Sunway上最先进的深度学习框架相比,swTVM生成的代码平均达到1.79倍。这项工作是第一次尝试从编译器的角度来弥合深度学习和Sunway处理器的差距,特别是考虑到生产力和效率。我们相信这项工作将鼓励更多的人接受深度学习和神威众核处理器的力量。
2022-07-11 cs.LG cs.PL stat.ML
AutoPhase: Juggling HLS Phase Orderings in Random Forests with Deep Reinforcement Learning
University of California, Berkeley(加州大学伯克利分校);Massachusetts Institute of Technology(麻省理工学院)
编译器生成的代码的性能取决于它应用优化过程的顺序。选择一个好的顺序-通常被称为相位排序问题,是一个NP难题。因此,现有的解决方案依赖于各种不同的方法。在本文中,我们评估了一种解决相位排序问题的新技术:深度强化学习。为此,我们实现了AutoPhase:一个框架,它采用程序并使用深度强化学习来找到一系列编译通道,以最大限度地减少其执行时间。不失一般性,我们在LLVM编译器工具链和目标高级合成程序的背景下构建了这个框架。我们使用随机森林来量化给定通道的有效性与程序特征之间的相关性。这有助于我们减少搜索空间,避免相位排序,不太可能提高给定程序的性能。我们将AutoPhase的性能与解决相位排序问题的最先进算法进行了比较。在我们的评估中,我们表明,与使用-O3编译器标志相比,AutoPhase将电路性能提高了28%,并且与最先进的解决方案相比,实现了具有竞争力的结果,同时需要更少的样本。此外,与现有的最先进的解决方案不同,我们的深度强化学习解决方案在对100个随机生成的程序进行训练后,在推广到真实基准和12,874个不同的随机生成程序方面表现出了良好的效果。
2020-03-04 cs.DC cs.LG cs.PL
Control Flow Duplication for Columnar Arrays in a Dynamic Compiler
列式数据库是一种加快联机分析处理(OLAP)查询的成熟方法。如今,数据处理(例如,存储、可视化和分析)通常在程序设计语言级执行,因此还希望采用用于公共语言运行时的列式数据结构。虽然有框架、库和API可以支持程序设计语言中的列式数据存储,但将它们集成到应用程序中通常需要开发人员的干预。在之前的工作中,研究人员在GraalVM JavaScript运行时中实现了一种将数组自动转换为列数组的方法。然而,这种方法在较小的工作负载以及更复杂的嵌套数据结构上存在性能问题。我们发现,优化对列数组的访问的关键是识别查询并对其应用特定的优化。在本文中,我们描述了新的编译器优化的GraalVM优化列数组上的查询。在JIT编译时,我们识别访问潜在列数组的循环,并复制它们,以便专门优化对列数组的访问。此外,我们描述了一种新的方法,通过执行 ** 多级存储转换 **,从由复杂对象组成的数组中创建列数组。我们通过JavaScript `Date`对象的实现来演示我们的方法。[完整摘要见https://doi.org/10.22152/programming-journal.org/2023/7/9]
2023-02-20 cs.PL
Design-Intent Compilation for Heterogeneous Fabrication
University of Colorado Boulder(科罗拉多大学博尔德分校);The Charles Stark Draper Laboratory, Inc.(查尔斯·斯塔克·德雷珀实验室有限公司)
针对异构制造中设计意图难以重用问题,提出将设计视为分阶段、类型化降阶问题的编译器架构,通过翻译模型和后端编译器实现不同表示形式转换,经实验验证有效并开源相关内容加速研究。
2026-07-28 cs.GR cs.PL
Neptune: Advanced ML Operator Fusion for Locality and Parallelism on GPUs
University of Illinois Urbana-Champaign(伊利诺伊大学厄巴纳-香槟分校);IBM Research(IBM研究院)
Neptune通过引入新的运算融合方法,有效融合复杂减少运算,提升深度学习性能,其在多个基准测试中表现出优于现有编译器的效率。
2026-04-20 cs.LG cs.PL
HSTREAM: A directive-based language extension for heterogeneous stream computing
本文提出HSTREAM,一种基于指令的异构流计算语言扩展,通过编译器自动生成目标代码和运行时负载分配,在保持OpenMP级编程简易性的同时,实现超越纯CPU或纯GPU的执行性能。
2018-09-25 cs.PL