摘要
arXiv:2503.19449v1 宣传类型:交叉
摘要:大型语言模型(LLMs)在代码生成方面展现了巨大的能力,但在编译器优化方面的有效应用仍面临着诸多挑战,这些问题包括幻觉现象和缺乏特定领域的推理能力。向量化是一种提高代码性能的关键优化技术,但由于编译器难以识别复杂的代码模式,而这些模式通常需要大量的实证专业知识,因此常常失败。LLMs能够捕捉复杂的模式,从而为解决这一挑战提供了有前途的解决方案。本文提出了VecTrans,这是一种新颖的框架,利用LLMs来增强基于编译器的代码向量化。VecTrans首先利用编译器分析来识别潜在可向量化代码区域,然后利用LLMs重新整理这些区域,使其更易于编译器的自动向量化。为了确保语义正确性,VecTrans在中间表示(IR)级别上进一步整合了一种混合验证机制。通过上述努力,VecTrans结合了LLMs的适应性和编译器向量化的精确性,从而有效地开拓了向量化的机会。实验结果显示,在Clang、GCC和BiShengCompiler都未能向量化的50个TSVC函数中,VecTrans成功向量化了23个案例(46%),并实现了平均2.02倍的加速,大幅超过了现有最先进的性能。