论文

通过混合提示进行多级代码优化

Multi-level Code Optimization via Mixture of Prompts

摘要

运行时效率是影响软件质量和用户满意度的关键因素。提出了许多代码优化方法来提高运行时效率。传统的代码优化方法在静态语言编译期间对中间表示 (IR) 进行操作。它们很有效,但很难处理不需要编译的动态语言。最近,大语言模型(LLM)已被用来直接优化动态语言的源代码。然而,这些方法无法识别合适的优化目标,并且通常进行不全面的单级优化。为了应对这些挑战,我们提出了 Optimo,这是一种基于 LLM 的多级代码优化方法,构建在新颖的提示混合 (MoP) 架构上。在 MoP 架构中,Optimo 通过差异分析将时间关键型代码结构识别为性能瓶颈。然后,这些结构被路由到一些优化策略,类似于 MoE 中的专家模型,每个策略都是为了优化特定的代码模式而定制的。与仅关注语句级优化的传统方法不同,Optimo 在四个抽象级别上运行,从粗粒度算法改进到 API 使用中的细粒度优化。我们在两个代码效率基准测试(COFFE 和 Effibench)上评估 Optimo。我们的结果表明,Optimo 的 opt% 达到了高达 57.48%,即优化后的程序正确且至少比原始程序快 10% 的百分比,并且在优化人工编写的代码时加速高达 3.97 倍,并且在 opt% 方面始终优于最佳基线高达 96.51%。此外,Optimo 在优化 LLM 生成的代码时实现了高达 42.42% opt% 和高达 13.51 倍的加速。