摘要
arXiv:2406.12146v2 宣告类型: 替换
摘要: 传统的优化编译器在适应现代软件系统的日益复杂性方面发挥了重要作用。当前架构中高效并行编程的需求需要强大的优化技术。大型语言模型(LLMs)的出现引发了关于这些AI方法是否有可能彻底改变代码优化方法的有趣问题。本文旨在回答编译器社区的一个核心问题:“AI驱动的模型能否彻底改变我们处理代码优化的方式?”
为了回答这个问题,我们对三种经典优化编译器和两个最近的大型语言模型进行了比较分析,评估它们分别在优化代码以实现最大效率方面的能力和局限性。此外,我们引入了一组具有挑战性的优化模式基准套件和一种自动机制,用于评估生成的代码的性能和正确性。我们使用了三种不同的提示策略来评估LLMs的性能,分别是简单指令(IP)、详细指令提示(DIP)和思维链(CoT)。
一个关键发现是,虽然LLMs有可能超越当前的优化编译器,但在大代码规模下经常生成错误代码,这需要自动验证方法。此外,在LLMs提示中包含编译器策略极大地提升了其整体性能。我们跨三个基准套件的评估显示,CodeLlama-70B是表现最佳的LLM,能够实现高达1.75倍的速度提升。此外,CETUS在当前的优化编译器中表现最佳,达到最大速度提升1.67倍。我们还发现,三种提示策略之间存在显著差异。