AutoVecCoder: Teaching LLMs to Generate Explicitly Vectorized Code

📄 arXiv: 2605.17978v1 📥 PDF

作者: Shangzhan Li, Xinyu Yin, Xuanyu Jin, Ye He, Yuxin Zhou, Yuxuan Li, Xu Han, Wanxiang Che, Qi Shi, Ting Liu, Maosong Sun

分类: cs.CL

发布日期: 2026-05-18


💡 一句话要点

AutoVecCoder:教导LLM生成显式向量化代码,提升高性能计算效率

🎯 匹配领域: 支柱二:RL算法与架构 (RL & Architecture) 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 显式向量化 大型语言模型 代码生成 强化学习 高性能计算 SIMD intrinsics

📋 核心要点

  1. 编译器自动向量化效果不佳,开发者依赖intrinsics显式向量化,但LLM难以生成此类代码。
  2. AutoVecCoder通过VecPrompt合成领域知识,并利用VecRL强化学习对齐代码生成与执行效率。
  3. AutoVecCoder-8B在SimdBench上达到SOTA,部分超越-O3优化,突破传统自动向量化瓶颈。

📝 摘要(中文)

本文提出AutoVecCoder,一个旨在赋予大型语言模型(LLM)自动显式向量化能力的新框架。显式向量化利用单指令多数据(SIMD)架构,是高性能计算的基石。由于编译器自动向量化常常因保守的静态分析而产生次优结果,开发者通常使用intrinsics进行显式向量化。尽管LLM在通用代码生成方面表现出色,但由于高质量语料库的稀缺以及底层硬件指令的严格语义约束,它们在显式向量化方面表现不佳。AutoVecCoder集成了两个核心组件:VecPrompt,一个自动数据合成管道,用于注入特定领域的intrinsics知识;以及VecRL,一个强化学习框架,用于使代码生成与执行效率对齐。经此框架训练的AutoVecCoder-8B在SimdBench的SSE和AVX子集上实现了最先进的性能,并且在某些情况下,生成的实现超越了标准的-O3优化,有效克服了传统自动向量化的固有瓶颈。

🔬 方法详解

问题定义:论文旨在解决大型语言模型(LLM)在生成显式向量化代码方面的不足。现有编译器自动向量化效果有限,开发者依赖手工编写intrinsics代码,但LLM由于缺乏高质量的训练数据和对底层硬件指令的理解,难以胜任这项任务。这导致了高性能计算中硬件资源的利用率不高。

核心思路:论文的核心思路是通过数据增强和强化学习来提升LLM生成显式向量化代码的能力。具体来说,首先通过自动数据合成的方式,为LLM注入特定领域的intrinsics知识,使其能够理解和使用这些指令。然后,利用强化学习框架,根据生成的代码的执行效率来调整LLM的生成策略,使其能够生成更高效的代码。

技术框架:AutoVecCoder框架包含两个主要模块:VecPrompt和VecRL。VecPrompt是一个自动数据合成管道,用于生成包含intrinsics知识的训练数据。VecRL是一个强化学习框架,用于优化LLM的代码生成策略。整个流程是,首先使用VecPrompt生成的数据训练LLM,然后使用VecRL对LLM进行微调,使其能够生成更高效的向量化代码。

关键创新:论文的关键创新在于将数据合成和强化学习相结合,用于提升LLM生成显式向量化代码的能力。VecPrompt通过自动生成数据,解决了LLM缺乏高质量训练数据的问题。VecRL通过根据代码执行效率进行奖励,解决了LLM难以生成高效代码的问题。这种结合使得LLM能够更好地理解和利用底层硬件指令,从而生成更高效的向量化代码。

关键设计:VecPrompt的关键设计在于如何自动生成包含intrinsics知识的数据。论文采用了一种基于模板的方法,首先定义一些常用的intrinsics代码模板,然后随机填充模板中的参数,生成不同的代码片段。VecRL的关键设计在于如何定义奖励函数。论文采用了一种基于代码执行时间的奖励函数,即执行时间越短,奖励越高。此外,论文还使用了一种策略梯度算法来优化LLM的生成策略。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

AutoVecCoder-8B在SimdBench数据集的SSE和AVX子集上取得了state-of-the-art的性能。在某些情况下,AutoVecCoder生成的代码甚至超越了使用-O3优化编译器的结果,证明了其在显式向量化方面的强大能力。这表明AutoVecCoder能够有效克服传统自动向量化的局限性,充分利用硬件资源。

🎯 应用场景

AutoVecCoder具有广泛的应用前景,可用于自动优化科学计算、图像处理、视频编解码等高性能计算任务中的代码。通过自动生成高效的向量化代码,可以显著提升程序的执行效率,降低计算成本,并加速相关领域的研发进程。未来,该技术有望应用于嵌入式系统、移动设备等资源受限的平台,实现更高效的计算。

📄 摘要(原文)

Vectorization via Single Instruction, Multiple Data (SIMD) architectures is a cornerstone of high-performance computing. To fully exploit hardware potential, developers often resort to explicit vectorization using intrinsics, as compiler-based auto-vectorization frequently yields suboptimal results due to conservative static analysis. While Large Language Models (LLMs) have demonstrated remarkable proficiency in general code generation, they struggle with explicit vectorization due to the scarcity of high-quality corpora and the strict semantic constraints of low-level hardware instructions. In this paper, we propose AutoVecCoder, a novel framework designed to empower LLMs with the capability of automated explicit vectorization. AutoVecCoder integrates two core components: VecPrompt, an automated data synthesis pipeline to inject domain-specific intrinsic knowledge; and VecRL, a reinforcement learning framework that aligns code generation with execution efficiency. AutoVecCoder-8B trained by this framework achieves state-of-the-art performance on the SSE and AVX subsets of SimdBench and, in some cases, generates implementations surpassing standard -O3 optimizations, effectively overcoming the inherent bottlenecks of traditional automated vectorization.