SimdBench: Benchmarking Large Language Models for SIMD-Intrinsic Code Generation

📄 arXiv: 2507.15224v1 📥 PDF

作者: Yibo He, Shuoran Zhao, Jiaming Huang, Yingjie Fu, Hao Yu, Cunjian Huang, Tao Xie

分类: cs.SE, cs.AI

发布日期: 2025-07-21


💡 一句话要点

SimdBench:用于SIMD指令代码生成的大语言模型基准测试

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: SIMD指令 代码生成 大语言模型 基准测试 向量化 高性能计算 编译器内联函数

📋 核心要点

  1. 现有代码生成基准测试主要关注标量代码,缺乏针对SIMD指令代码生成的专门评估,无法有效衡量LLM在此领域的性能。
  2. SimdBench通过构建包含136个任务的基准测试,覆盖SSE、AVX、Neon、SVE和RVV等多种SIMD指令集,评估LLM生成SIMD内联代码的能力。
  3. 实验结果表明,LLM在SIMD内联代码生成方面的性能明显低于标量代码生成,揭示了LLM在向量化代码生成方面的挑战与机遇。

📝 摘要(中文)

现代处理器广泛支持SIMD(单指令多数据)指令及其编译器内联函数,以加速对性能要求严苛的任务。SIMD内联编程是编码效率和高性能之间的一种折衷方案,被广泛应用于主流性能关键库和日常计算任务的开发中。大型语言模型(LLM)在代码生成方面表现出强大而全面的能力,有望帮助程序员应对SIMD内联编程的挑战。然而,现有的代码生成基准测试仅关注标量代码,LLM在生成使用SIMD内联函数的向量化代码方面的表现尚不清楚。为了填补这一空白,我们提出了SimdBench,这是第一个专门为SIMD内联代码生成设计的代码基准测试,包含136个精心设计的任务,并针对五个具有代表性的SIMD内联函数:SSE(x86流式SIMD扩展)、AVX(x86高级向量扩展)、Neon(ARM高级SIMD扩展)、SVE(ARM可伸缩向量扩展)和RVV(RISC-V向量扩展)。我们对SimdBench上的18个代表性LLM进行了系统评估(测量正确性和性能),从而获得了一系列新颖而深刻的发现。我们的评估结果表明,与标量代码生成相比,LLM在SIMD内联代码生成期间的pass@k普遍下降。我们的深入分析突出了LLM在具有挑战性的SIMD内联代码生成领域进一步发展的有希望的方向。SimdBench在https://anonymous.4open.science/r/SimdBench-1B3F/完全开源,以使更广泛的研究社区受益。

🔬 方法详解

问题定义:论文旨在解决缺乏针对SIMD指令代码生成的大语言模型(LLM)基准测试的问题。现有代码生成基准主要关注标量代码,无法有效评估LLM在生成向量化SIMD代码方面的能力。这阻碍了LLM在高性能计算领域的应用,也限制了研究人员对LLM在SIMD编程方面的理解。

核心思路:论文的核心思路是构建一个专门针对SIMD内联代码生成的基准测试集SimdBench。通过精心设计的任务,SimdBench能够全面评估LLM在生成不同SIMD指令集(如SSE、AVX、Neon、SVE和RVV)代码时的正确性和性能。这样可以更准确地了解LLM在SIMD编程方面的优势和不足。

技术框架:SimdBench包含136个精心设计的任务,涵盖了五个代表性的SIMD指令集。每个任务都包含输入、输出和相应的SIMD内联代码实现。研究人员可以使用SimdBench来评估不同的LLM,并比较它们在生成SIMD代码方面的性能。评估指标包括代码的正确性(pass@k)和性能(执行时间)。

关键创新:SimdBench是第一个专门针对SIMD内联代码生成的基准测试集。与现有的代码生成基准相比,SimdBench更加关注向量化代码的生成,能够更准确地评估LLM在高性能计算领域的应用潜力。此外,SimdBench覆盖了多种SIMD指令集,可以更全面地了解LLM在不同硬件平台上的表现。

关键设计:SimdBench的任务设计考虑了SIMD编程的特点,例如数据对齐、向量化循环和内存访问模式。任务的难度也经过精心调整,以确保能够有效区分不同LLM的性能。此外,SimdBench还提供了详细的评估指南和工具,方便研究人员使用和扩展。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

实验结果表明,LLM在SimdBench上的pass@k值普遍低于标量代码生成,表明SIMD代码生成对LLM提出了更高的挑战。例如,某些LLM在标量代码生成上表现良好,但在SIMD代码生成上的性能显著下降。该研究还揭示了不同LLM在不同SIMD指令集上的性能差异。

🎯 应用场景

SimdBench可用于评估和改进LLM在高性能计算领域的代码生成能力,尤其是在需要利用SIMD指令加速的任务中,如图像处理、科学计算、深度学习等。该基准测试有助于推动LLM在嵌入式系统和移动设备等资源受限平台上的应用,并促进SIMD编程的自动化。

📄 摘要(原文)

SIMD (Single Instruction Multiple Data) instructions and their compiler intrinsics are widely supported by modern processors to accelerate performance-critical tasks. SIMD intrinsic programming, a trade-off between coding productivity and high performance, is widely used in the development of mainstream performance-critical libraries and daily computing tasks. Large Language Models (LLMs), which have demonstrated strong and comprehensive capabilities in code generation, show promise in assisting programmers with the challenges of SIMD intrinsic programming. However, existing code-generation benchmarks focus on only scalar code, and it is unclear how LLMs perform in generating vectorized code using SIMD intrinsics. To fill this gap, we propose SimdBench, the first code benchmark specifically designed for SIMD-intrinsic code generation, comprising 136 carefully crafted tasks and targeting five representative SIMD intrinsics: SSE (x86 Streaming SIMD Extension), AVX (x86 Advanced Vector Extension), Neon (ARM Advanced SIMD Extension), SVE (ARM Scalable Vector Extension), and RVV (RISC-V Vector Extension). We conduct a systematic evaluation (measuring both correctness and performance) of 18 representative LLMs on SimdBench, resulting in a series of novel and insightful findings. Our evaluation results demonstrate that LLMs exhibit a universal decrease in pass@k during SIMD-intrinsic code generation compared to scalar-code generation. Our in-depth analysis highlights promising directions for the further advancement of LLMs in the challenging domain of SIMD-intrinsic code generation. SimdBench is fully open source at https://anonymous.4open.science/r/SimdBench-1B3F/ to benefit the broader research community.