awesome-machine-learning-in-compilers
机器学习赋能编译器优化的学术精选库,185篇论文+15个工具,覆盖Auto-tuning、程序表示学
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
机器学习赋能编译器优化的学术精选库,185篇论文+15个工具,覆盖Auto-tuning、程序表示学
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
假设你是一位编译器工程师,正在为一款嵌入式芯片优化 LLVM 后端。面对数以百计的编译选项(-O2 vs -O3、循环展开因子、向量化宽度)组合,每次手动调参都像在黑箱中摸索——改一个参数,benchmark 可能提升 5%,也可能倒退 20%,而你根本不知道为什么。
或者,你是一位深度学习编译器开发者,正在为 TVM 设计新的调度原语(Schedule Primitive)。每次探索新的调度策略,都需要运行完整的 benchmark 套件,而单次实验可能耗时数小时。你想知道:有没有办法让 AI 自动找到最优的编译策略?
awesome-machine-learning-in-compilers 正是为解决这些痛点而生的精选资源库。它由研究者 Zhi Wang(卡内基梅隆大学相关)维护,汇集了机器学习应用于编译器优化这个交叉领域最权威的学术论文、开源工具、基准数据集和学术会议信息,堪称该领域的"百科全书"。
该项目由卡内基梅隆大学(CMU)相关研究者发起并持续维护,采用 CC0-1.0 开放许可证(完全公共领域),允许任何人自由使用、修改和分发。仓库创建于 2020 年 6 月,截至 2026 年 6 月已获得 1677 颗 GitHub Stars, topics 覆盖 artificial-intelligence、compiler、machine-learning、auto-tuning、optimisation 等 10 个领域标签。
作为一个典型的 awesome list(精选列表)项目,它遵循 Sindre Sorhus 的 Awesome 规范,使用 Markdown 文件组织内容,通过 shields.io 徽章展示论文页数等元数据,不包含实际代码仓库。
仓库 README 收录了 260+ 条精选资源,分布在 8 个主要类别中:
Papers(185 篇) 是核心内容,覆盖 12 个研究方向子领域。其中最热门的方向包括:
Auto-tuning and Design Space Exploration(38 篇):研究如何自动探索编译优化参数空间,包括贝叶斯优化、强化学习、LLM 引导等方法。代表作如 Ansor(AutoScheduler)来自 TVM 团队,发表在 OSDI 2020,通过递归神经网络自动生成高性能张量程序。
Learning Program Representation(30 篇):研究如何将程序代码转化为机器学习可处理的向量表示(Embeddings)。代表性工作包括 CodeBERT(微软,EMNLP 2020)、IR2Vec(IITH,LLVM'19)、ProGraML(Chris Cummins,ICML 2020),这些工作将程序的控制流图(CFG)、数据流图(DFG)转化为图神经网络(GNN)的输入。
Iterative Compilation and Compiler Option Tuning(29 篇):研究如何通过迭代实验找到编译器最优参数配置。经典工作包括 OpenTuner(Jansel et al., TACO 2015),一个构建领域特定 autotuner 的通用框架,以及 MILEPOST GCC(通过机器学习让 GCC 自动适应不同硬件平台)。
Instruction-level Optimisation(17 篇):研究如何用 RL 优化指令级优化决策,如寄存器分配、指令调度、VEGA 自动生成向量化器、NeuroVectorizer 用深度强化学习预测最优向量化 pragma。
Parallelism Mapping and Task Scheduling(17 篇):研究如何在多核/异构系统中自动进行并行性映射和任务调度。
Cost and Performance Models(15 篇):研究如何构建编译器性能预测模型,用于指导编译优化决策。
Software(15 个工具) 列出了该领域最重要的开源软件:
Benchmarks and Datasets(10 个) 收录了该领域的标准评测集:
Conferences(27 个) 收录了该领域相关的顶级学术会议,涵盖 PLDI、ASPLOS、CGO、PPoPP、ICML、ICLR、MLSys 等。
从论文发表的时间线来看,该领域经历了几个重要阶段:
2010-2015 萌芽期:以 Auto-tuning 为核心,主要方法是贝叶斯优化和强化学习,解决编译器选项自动配置问题。典型代表 MILEPOST GCC(2015)和 OpenTuner(2015)。
2016-2019 发展期:程序表示学习兴起,IR2Vec、ProGraML 等工作将深度学习引入编译器。编译器选项自动调优扩展到指令调度、向量化等更细粒度的优化。Ansor 的出现标志着 learned cost model 在实际编译器中达到 production-ready 水平。
2020-2024 爆发期:LLM for Code 浪潮推动领域快速发展。CodeBERT(2020)、AlphaCode(2022)、Compiler-R1(2025)、REASONING COMPILER(2025)等工作探索 LLM 在编译器优化中的深度应用。同时该领域与其他方向(程序合成、二进制分析、安全编译)深度交叉。
可复现性危机:学术论文中的 ML 优化方法往往在特定 benchmark 上调优,迁移到真实代码库时效果大打折扣。CompilerGym 的出现部分缓解了这个问题,但其覆盖的编译器类型仍然有限。
可扩展性瓶颈:基于 RL 的编译器优化方法在大规模代码库上的训练成本极高,与生产环境中的实时编译需求存在矛盾。
可解释性缺失:深度学习模型作为"黑盒"给出优化建议,编译器工程师难以理解其决策依据,限制了这些方法在安全关键系统(如航空控制、医疗设备)中的应用。
该领域正处于从学术研究向工业落地转型的关键时期。TVM/MLC-LLM/IREE 等开源项目已经在生产环境中部署,服务于数十亿设备上的 AI 推理任务。MLSys(Machine Learning and Systems)会议的崛起标志着 ML+Systems 交叉研究已成为独立学科方向。
未来趋势包括:
由于是纯静态精选列表,无需安装。访问 GitHub 仓库 https://github.com/zwang4/awesome-machine-learning-in-compilers 即可浏览全文。对于开发者,建议重点关注 Software 章节中的工具,从 CompilerGym(体验 RL 调优)或 TVM(深入编译器架构)入手实践。