Reasoning Compiler: LLM-Guided Optimizations for Efficient Model Serving¶
会议: NeurIPS 2025
arXiv: 2506.01374
代码: https://github.com/he-actlab/REASONING_COMPILER
领域: 编译器优化 / 模型服务
关键词: LLM引导编译, MCTS, 程序优化, 神经编译器, 采样效率
一句话总结¶
提出 Reasoning Compiler,将编译器优化建模为序列决策过程,用 LLM 作为上下文感知提案引擎 + MCTS 平衡探索/利用,在 5 个代表性 benchmark 和 5 个硬件平台上实现平均 5.0× 加速且采样效率比 TVM 进化搜索提升 10.8×。
研究背景与动机¶
-
领域现状:大规模模型推理成本高昂,编译器优化(tiling, fusion, vectorization 等)是关键加速手段。现有神经编译器(TVM, Ansor 等)使用进化搜索或模拟退火探索变换空间。
-
现有痛点:
- 规则编译器依赖手工启发式,对特定负载或硬件过拟合
- 随机搜索方法采样效率低——不利用变换间的上下文依赖关系
-
变换组合空间指数级大且高度相互依赖(如 loop tiling 的收益取决于之前是否做了 fusion)
-
核心矛盾:编译器变换间存在复杂的非局部交互,盲目搜索无法有效捕获这些上下文依赖。
-
切入角度:LLM 天然擅长上下文推理——给它当前代码状态、变换历史、性能反馈,让它推理下一步应该做什么变换。
-
核心idea一句话:LLM 提供上下文感知的变换提案 + MCTS 提供结构化搜索 = 高采样效率的编译器优化。
方法详解¶
整体框架¶
将程序优化建模为有限视野 MDP:\(\mathcal{M} = \langle \mathcal{S}, \mathcal{A}, \mathcal{P}, \mathcal{R} \rangle\)。状态是程序变体,动作是编译器变换,转移确定性,奖励由硬件代价模型评估。MCTS 做结构化搜索,LLM 在每个扩展节点提出变换提案。
关键设计¶
- LLM 引导的上下文推理:
- 做什么:在 MCTS 每次扩展时,让 LLM 基于完整上下文提出下一步变换
- 核心思路:Prompt 包含当前程序 \(p_i\) 及其父/祖父程序的源码、性能预测和变换历史,以及所有可用变换集 \(O\)。指示 LLM 进行 CoT 推理——分析变换间的协同/拮抗效应
-
设计动机:变换组合存在复杂交互(如 tiling 后做 vectorization 可能更优),LLM 能推理这些关系
-
MCTS 结构化搜索:
- 做什么:平衡探索和利用,复用公共变换前缀
- 核心思路:UCT 选择 \(\text{UCT}(p_i) = \frac{W(p_i)}{N(p_i)} + c\sqrt{\frac{\ln N(p_{i-1})}{N(p_i)}}\),LLM 提案做节点扩展,随机 rollout + 代价模型做评估,反向传播更新统计量
-
设计动机:MCTS 的树结构天然支持变换序列的回溯和复用,解决了纯随机搜索的低效问题
-
硬件感知代价模型:
- 做什么:替代真实硬件运行,提供快速性能评估
- 核心思路:学习的代理模型 \(\hat{f}\) 预测延迟,用于 rollout 奖励计算
- 设计动机:真实编译+运行太慢(分钟级),代理模型评估毫秒级
训练策略¶
- LLM 零样本使用(GPT-4o mini),无需微调
- MCTS 超参:探索系数 \(c = \sqrt{2}\),分支因子 \(B = 2\)
- 变换验证:LLM 输出经解析和过滤,无效变换回退至随机采样
实验关键数据¶
主实验(5 个 kernel × 5 个硬件平台)¶
| 方法 | 平均加速比 | 平均采样数 | 采样效率提升 |
|---|---|---|---|
| TVM 进化搜索 | 基线 | 5.8× 更多 | 1.0× |
| MCTS (无LLM) | 中等 | 中等 | 中等 |
| Reasoning Compiler | 5.0× | 5.8× 更少 | 10.8× |
端到端 Llama-3-8B¶
| 方法 | 加速比 | 采样数减少 | 采样效率提升 |
|---|---|---|---|
| TVM | 基线 | 基线 | 基线 |
| Reasoning Compiler | 4.0× | 3.9× 更少 | 5.6× |
关键发现¶
- 在 FLUX attention 上,Reasoning Compiler 36 样本达 2× 加速,TVM 需 600+ 样本(16× 减少)
- 在 Llama-4 MLP 上,20 样本达 12.7× 加速,TVM 3000 样本仍未达到
- 低预算场景优势最大——前几十个样本就能发现高质量优化序列
亮点与洞察¶
- LLM 做提案而非做决策:LLM 的角色被精确定位为"上下文感知的变换提案器",正确性和搜索结构由 MCTS 保证。这种 LLM-in-the-loop 设计范式值得学习
- 编译优化的 MDP 建模:将变换序列建模为 MDP,让 MCTS 的理论保证自动适用
- 跨硬件泛化:同一框架在 ARM、x86、Apple Silicon 上均有效,不需要硬件特定调整
局限性 / 可改进方向¶
- 依赖 LLM API 调用,对于大规模部署成本可能较高
- GPT-4o mini 的代码理解能力有限,更强的 LLM 可能进一步提升
- rollout 中的随机变换序列可能不够高效
- 未与其他 LLM for code 的编译优化工作比较
相关工作与启发¶
- vs TVM/Ansor/MetaSchedule:这些用进化搜索/模拟退火,采样效率低;Reasoning Compiler 通过 LLM 推理大幅提升
- vs STOKE:STOKE 用 MCMC 做超级优化但也不利用上下文;本文的 LLM+MCTS 组合更高效
- 展示了 LLM 在系统级优化中的巨大潜力
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ LLM+MCTS 的编译器优化框架是首创,将 LLM 推理与结构化搜索优雅结合
- 实验充分度: ⭐⭐⭐⭐⭐ 5 个 benchmark × 5 个硬件平台 + 端到端评估,非常全面
- 写作质量: ⭐⭐⭐⭐⭐ 形式化清晰,动机阐述到位
- 价值: ⭐⭐⭐⭐⭐ 对编译器和模型服务社区有重大影响力