论文
AutoVecCoder:教 LLM 生成显式矢量化代码
AutoVecCoder: Teaching LLMs to Generate Explicitly Vectorized Code
摘要
通过单指令、多数据 (SIMD) 架构进行矢量化是高性能计算的基石。为了充分利用硬件潜力,开发人员通常诉诸于使用内部函数的显式矢量化,因为基于编译器的自动矢量化由于保守的静态分析经常会产生次优结果。虽然 大语言模型 (LLM) 在通用代码生成方面表现出了非凡的熟练程度,但由于高质量语料库的稀缺和低级硬件指令的严格语义约束,它们在显式矢量化方面遇到了困难。在本文中,我们提出了 AutoVecCoder,这是一种新颖的框架,旨在使 LLM 具有自动显式矢量化的能力。 AutoVecCoder 集成了两个核心组件:VecPrompt,一个自动数据合成管道,用于注入特定领域的内在知识; VecRL,一种强化学习框架,可将代码生成与执行效率结合起来。经该框架训练的 AutoVecCoder-8B 在 SimdBench 的 SSE 和 AVX 子集上实现了最先进的性能,并且在某些情况下,生成超越标准 -O3 优化的实现,有效克服了传统自动矢量化的固有瓶颈。