返回
Tensor Program Superoptimization through Cost-Guided Symbolic Program Synthesis
DOI:10.1109/CGO68049.2026.11395198.png)
摘要
En 中文
现代张量编译框架(如JAX和PyTorch)通过将领域特定语言(DSL)代码编译或映射为高效可执行程序来加速数值程序。然而,它们依赖于一组固定的转换规则和启发式方法,这意味着它们可能会错过有利的优化机会。这导致程序中大量优化潜力未被利用,尤其是那些不符合固定模式的程序。本文提出了STENSO,一种张量DSL程序的超级优化器,用于发现这些缺失的重写规则。STENSO的核心是一种基于符号程序合成的搜索算法,它系统地探索等价程序的空间。通过结合符号执行和基于草图的程序合成,它生成等价候选实现。为了使搜索在计算上可行,STENSO进一步整合了成本模型与分支限界算法方案。这有效剪枝了搜索空间,在合理时间内找到最优解。我们在超过30个基准测试上评估了STENSO。发现的程序在NumPy上实现了3.8倍的几何平均加速,在JAX和PyTorch-Inductor等最先进的编译器上实现了1.6倍的加速。这些结果突显了基于启发式的编译方法的局限性,并证明了STENSO在自动发现此类优化方面的有效性。
Keyword:
Superoptimization
Tensor Programs
Program Synthesis
Compiler Optimization

