跳转至

CUDABench: Benchmarking LLMs for Text-to-CUDA Generation

会议: NeurIPS 2026
arXiv: 2603.02236
代码: https://github.com/CUDA-Bench/CUDABench
领域: 代码智能
关键词: 大语言模型, CUDA核函数生成, 基准评测, Roofline模型, 硬件无关性能指标

一句话总结

提出了首个涵盖六大计算领域、多尺度输入与分级提示的三维评测基准 CUDABench,并构建了基于 Roofline 模型的硬件无关性能指标 CUDABench-Score 与生成式验证流水线,全面揭示了现代大语言模型在直接文本生成 CUDA 核函数时编译成功率虚高、功能语义错误频发以及硬件利用率严重受限的核心瓶颈。

研究背景与动机

随着大语言模型在通用代码生成领域的快速进展,利用模型自动编写高性能 GPU 核函数(尤其是 CUDA)正成为降低异构并行计算开发门槛的关键方向。然而,现有的 GPU 代码生成基准(如 KernelBench、TritonBench、BabelTower 等)普遍局限于“代码到代码”的翻译范式,多是将现成的 PyTorch 算子或高层控制流翻译为底层 CUDA/Triton 代码。这种设置下算法结构与计算意图已在输入代码中显式定义,无法反映从真实自然语言需求直接合成 CUDA 代码(Text-to-CUDA)这一更通用也更严苛的现实场景;同时现有工作覆盖领域过度集中于常规深度学习算子,严重缺乏对科学计算、信号处理、金融模拟等跨领域复杂负载的考察。

更为关键的矛盾在于,CUDA 编程具有极强的硬件相关性与性能敏感性,核函数不仅要求功能语义正确,更追求对 GPU 计算吞吐量与内存带宽的极致逼近。单纯依靠功能一致性或绝对运行时间(Execution Time)来评判模型生成的核函数存在严重缺陷:绝对耗时极易受到具体硬件规格(如 SM 数量、内存带宽、体系结构代际)的干扰,无法公平横向对比不同算子和不同硬件平台上的生成质量,导致开发者难以获知模型生成的代码究竟距离理论硬件性能上限还有多大差距。

面对文本到 CUDA 的泛化挑战与硬件多态性评估难题,本文系统性地拓宽了评测维度。核心 idea:构建解耦具体硬件规格的 Text-to-CUDA 三维评测基准 CUDABench,引入融合 Roofline 模型上下界的硬件无关综合指标 CUDABench-Score,并通过全自动生成式验证流水线,对大模型生成的 CUDA 核函数进行编译、功能与硬件利用效率的细粒度量化。

方法详解

整体框架

CUDABench 围绕文本到 CUDA 生成任务,建立了一套涵盖多维数据集、硬件无关评价指标以及端到端生成式验证的完整闭环评测体系。系统首先由具备广度(Breadth)、深度(Depth)与难度(Difficulty)三维特性的 CUDABench-Set 提供规范化的自然语言提示;随后大语言模型生成对应的 CUDA 源码;最后,生成式验证流水线动态合成测试向量,完成 NVCC 编译检查、执行级功能一致性验证,并通过 Nsight Compute 硬件性能剖析计算得出 CUDABench-Score。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["自然语言任务提示<br/>(CUDABench-Set 提示输入)"] --> B["CUDABench-Set 三维评测空间构建<br/>广度领域覆盖 × 深度尺度层级 × 难度上下文消减"]
    B --> C["LLM 候选核函数代码生成<br/>(直接生成完整 CUDA 源码)"]
    C --> D["两阶段正确性过滤验证<br/>NVCC 语法编译检查 + 动态数据功能一致性校验"]
    D -->|通过校验| E["基于 Roofline 的硬件无关性能评估<br/>动态剖析 FLOPs 与数据搬运量计算 Performance-Score"]
    D -->|未通过| F["评分归零 (Score = 0)"]
    E --> G["CUDABench-Score 综合量化输出<br/>统一衡量可靠性与硬件算力利用率"]

关键设计

1. CUDABench-Set 三维评测空间构建:系统化解耦领域覆盖、硬件负载压力与知识检索能力

传统基准往往只关注单一算子类型或固定小规模输入,无法全面度量模型在真实工程场景中的适应力。为此,CUDABench-Set 从三个正交维度构建了评测空间:在广度(Breadth)上覆盖基础线性代数(如 GEMM、矩阵转置、最小二乘法)、深度学习算子(GELU、LayerNorm、AdamW 等)、计算机视觉与点云处理(高斯滤波、Ball Query、FPS)、数据分析(基数排序、Top-k 筛选、Prefix Sum)、信号处理(FIR 滤波、Haar 小波变换)以及科学仿真与金融(Monte Carlo 积分、PDE 求解器、Black-Scholes 模型)共 6 大核心领域、500 个真实任务;在深度(Depth)上,为每个任务设计了从 Tiny、Small、Medium、Large 到 Huge 的 5 级指数递增输入规模(从数 KB 跨越至 1 GB 以上),以充分压榨 GPU 显存与计算单元;在难度(Difficulty)上设计了 3 级提示策略:Level 1(引导实现)提供详细算法和明确硬件映射指导(如共享内存使用、线程块组织),Level 2(算法规范)提供纯算法描述而隐去底层硬件提示,Level 3(概念检索)仅提供任务名称,强制考察模型从内部参数知识中自主检索算法公式并映射为并行硬件模型的能力。

2. 两阶段正确性过滤验证:防止无意义性能测量的严格执行级保障

针对大语言模型代码生成中常见的“幻觉语法通过但计算逻辑错误”现象,流水线设立了严格的前置两级判别机制。首先通过标准 NVIDIA CUDA 编译器驱动(NVCC)进行编译测试,捕获语法错误、未定义符号与架构不匹配问题;随后,专用数据生成器根据当前输入规模在线合成大动态范围的随机测试数据(避免浮点下溢造成误判),并将待测核函数的输出与任务附带的黄金标准参考核函数(Ground Truth Reference Implementation)进行误差容限范围内的逐元素严格比对。只有同时满足编译成功(\(\text{Compilation}_i=1\))与执行功能一致(\(\text{Functional}_i=1\))的双重条件,该候选核函数才有资格进入下一轮性能分析。

3. 基于 Roofline 模型的硬件无关性能评估:自适应瓶颈区域的算力利用率量化

依赖物理运行时间评估代码性能极易受硬件更换或平台差异影响。CUDABench 引入经典 Roofline 模型,通过执行耗时、浮点运算总数(FLOPs)以及全局显存数据传输字节数计算出算术强度(Arithmetic Intensity, \(\text{Arith}\))。在给定硬件架构下,理论可达性能上界定义为硬件峰值算力与峰值显存带宽支持能力的最小值: $\(\text{Attainable GFLOPs/sec} = \min\left\{\text{Peak Floating-Point Performance},\; \text{Peak Memory Bandwidth} \times \text{Arith}\right\}\)$ 在此基础上,定义衡量核函数对理论性能极限逼近程度的 \(\text{Performance-Score}\): $\(\text{Performance-Score} = \frac{\text{Achieved GFLOPs/sec}}{\text{Attainable GFLOPs/sec}}\)$ 该指标展现出优异的自适应性:在低算术强度的访存密集型(Memory-Bound)区域,分子分母的 \(\text{Arith}\) 相互抵消,指标退化为实测显存带宽利用率(\(\frac{\text{Achieved Memory Bandwidth}}{\text{Peak Memory Bandwidth}}\));在计算密集型(Compute-Bound)区域,指标直接对应峰值算力利用率(\(\frac{\text{Achieved GFLOPs/sec}}{\text{Peak GFLOPs/sec}}\))。因此,无论算子落在何种瓶颈区域,均能在统一标尺下衡量优化水平,实现跨 GPU 架构的鲁棒归一化。

4. CUDABench-Score 综合量化输出:软硬件指标融合的端到端标量度量

为了在宏观上全面衡量模型在整个测试集上的综合表现,CUDABench 将编译指示函数、功能正确指示函数与连续型性能得分融合成统一的标量指标: $\(\text{CUDABench-Score} = \frac{1}{N} \sum_{i=1}^{N} \left[ \mathbb{I}\left(\text{Compilation}_i \land \text{Functional}_i\right) \times \text{Performance-Score}_i \right]\)$ 其中 \(N\) 为总任务数。该得分兼具惩罚项与激励项:任何编译失败或计算结果错误的样本均直接记为 0 分,杜绝了靠生成空核函数或语法壳子刷高分数的可能;对正确实现的代码,则根据其实际发挥硬件潜能的百分比给出线性奖励。配合 NVIDIA Nsight Compute 自动化探针,系统实现了测试用例“即时生成、即时验证、即时分析、用后即焚”的无持久化大文件存储机制。

实验关键数据

主实验

主实验在配备 48 GB GDDR6 显存(带宽 696 GB/s、峰值单精度浮点 37.4 TFLOPS)的 NVIDIA A40 GPU 上开展,选取 7 款主流前沿大模型进行三级难度的 Pass@1 与 Pass@3 评测。

评测难度层级 模型名称 Pass@1 编译率 Pass@1 功能正确率 Pass@1 性能得分 (Score) Pass@3 编译率 Pass@3 功能正确率 Pass@3 性能得分 (Score)
Level 1 Claude 4.5 Sonnet 99.8% 85.8% 40.2% 100.0% 90.0% 42.9%
Level 1 GPT-5.2 (High) 93.4% 79.8% 40.9% 99.6% 88.6% 45.4%
Level 1 Gemini 3 Flash 97.6% 83.0% 40.1% 100.0% 88.6% 44.2%
Level 1 Kimi K2 Thinking 82.6% 69.8% 35.1% 95.6% 85.6% 41.3%
Level 1 Qwen3 Max 93.8% 76.8% 32.1% 98.6% 85.2% 36.5%
Level 1 DeepSeek-V3.2 96.0% 65.2% 31.6% 99.6% 77.6% 38.9%
Level 1 MiniMax-M2.1 87.0% 55.2% 26.7% 98.8% 77.0% 36.9%
Level 2 Claude 4.5 Sonnet 99.2% 82.8% 39.4% 100.0% 86.6% 42.6%
Level 2 GPT-5.2 (High) 93.4% 75.2% 37.9% 99.0% 85.0% 44.5%
Level 2 Gemini 3 Flash 98.6% 77.6% 37.6% 100.0% 83.2% 41.7%
Level 2 Qwen3 Max 92.6% 73.8% 30.2% 98.4% 80.4% 35.2%
Level 2 DeepSeek-V3.2 94.2% 63.4% 31.4% 99.6% 77.6% 37.9%
Level 2 MiniMax-M2.1 89.6% 57.6% 26.6% 99.8% 76.0% 38.5%
Level 2 Kimi K2 Thinking 64.8% 53.8% 29.1% 84.4% 73.0% 37.2%
Level 3 Claude 4.5 Sonnet 99.0% 63.2% 28.4% 100.0% 69.8% 32.3%
Level 3 GPT-5.2 (High) 92.4% 60.8% 29.8% 99.4% 70.6% 35.5%
Level 3 Gemini 3 Flash 96.8% 59.4% 28.4% 100.0% 68.6% 33.6%
Level 3 Qwen3 Max 92.0% 50.6% 22.5% 99.2% 61.0% 26.8%
Level 3 DeepSeek-V3.2 96.4% 49.8% 22.5% 100.0% 61.4% 28.7%
Level 3 Kimi K2 Thinking 76.4% 49.0% 23.5% 92.4% 63.2% 30.5%
Level 3 MiniMax-M2.1 86.6% 42.6% 20.1% 99.6% 59.8% 28.8%

跨架构硬件无关性验证实验

为验证 CUDABench-Score 是否真实具备硬件归一化能力,研究选取了硬件规格差异显著的消费级旗舰 NVIDIA GeForce RTX 4090 GPU(Ada Lovelace 架构,128 个 SM,82.6 TFLOPS 单精度峰值算力,1,008 GB/s 显存带宽)作为对照实验平台,测试了 4 款代表性模型在不同难度下的表现。

难度等级 模型名称 A40 实测性能分 (Score) RTX 4090 实测性能分 (Score) 跨硬件分值绝对偏差 RTX 4090 功能正确率 (Pass@1)
Level 1 DeepSeek-V3.2 31.6% 28.2% -3.4% 64.0%
Level 1 Qwen3 Max 32.1% 28.0% -4.1% 76.8%
Level 1 Kimi K2 Thinking 35.1% 25.5% -9.6% 51.5%
Level 1 MiniMax-M2.1 26.7% 24.0% -2.7% 56.2%
Level 2 DeepSeek-V3.2 31.4% 27.1% -4.3% 62.8%
Level 2 Qwen3 Max 30.2% 27.6% -2.6% 75.6%
Level 2 Kimi K2 Thinking 29.1% 26.9% -2.2% 56.4%
Level 2 MiniMax-M2.1 26.6% 22.9% -3.7% 55.3%
Level 3 DeepSeek-V3.2 22.5% 20.0% -2.5% 51.1%
Level 3 Qwen3 Max 22.5% 19.7% -2.8% 54.8%
Level 3 Kimi K2 Thinking 23.5% 23.7% +0.2% 50.1%
Level 3 MiniMax-M2.1 20.1% 18.0% -2.1% 42.6%

关键发现

  • 语法编译率与功能一致性严重脱节:几乎所有前沿模型在各层级上的编译通过率均在 90% 以上(Claude 4.5 Sonnet 甚至逼近 100%),然而其实际功能正确率却大幅下跌。在 Level 3 难度下,DeepSeek-V3.2 编译率高达 96.4%,功能正确率却仅为 49.8%,约 47% 的生成代码属于“能编译但算错”的无效核函数,暴露出模型在线程协同、同步屏障(__syncthreads())及边界越界处理上的语义盲区。
  • 领域特定算法与底层知识检索存在巨大断层:难度从 Level 1 降至 Level 3(仅提供任务名)时,所有模型的功能正确率均暴跌 20~25 个百分点。在基础“线性代数”领域,GPT-5.2 的失败率仅为 8.0%;但在“科学计算与金融仿真”领域,Claude 4.5 Sonnet 的失败率飙升至 85.0%,表明 LLM 内部记忆重度偏向通用数学概念,极度匮乏偏门专业数值算法的实现模板。
  • 硬件算力利用率普遍极低,瓶颈具有系统一致性:即便是表现最优的 GPT-5.2 与 Claude 4.5 Sonnet,在最高指引提示下(Level 1)的性能得分也仅达到 40% 左右,意味着约 60% 的 GPU 硬件算力与带宽潜力被白白浪费;前三强模型的得分仅相差不到 1%,说明缺乏硬件特化优化是当前 LLM 的共有瓶颈。
  • Roofline 指标成功抹平异构硬件代际偏差:在算力密度高出一倍多的 RTX 4090 与企业级 A40 之间,同一模型在各难度下的 Performance-Score 保持了惊人的一致性(多数偏差在 2%~4% 以内),有效证明了归一化指标的硬件无关性。

亮点与洞察

  • 将 Roofline 理论上下界转化为生成代码的归一化质量度量:巧妙通过动态检测算术强度,使评价指标在 Memory-bound 下自动等价于显存带宽利用率、在 Compute-bound 下自动等价于算力吞吐利用率,摆脱了传统基准绑定绝对物理耗时的弊端。
  • 即时合成且即刻销毁的生成式验证流水线:为 500 个任务配套专属数据生成器与验证器,动态构造测试集并支持 1GB+ 的超大输入压测,兼顾了深度硬件压力验证与零磁盘存储开销。
  • 精准刺破大模型编程能力的“语法繁荣假象”:通过多级提示与分领域细粒度剖析,确凿证明大模型掌握 CUDA API 语法并不等同于掌握并行编程语义与硬件级优化技术,为后续编译器和代码大模型研究指明了真实难点所在。

局限与展望

  • 作者承认的局限:目前评测空间主要针对单个 CUDA 核函数,尚未扩展到由多个核函数组合的复杂计算图级(Kernel Graph)协同流水线与异步流(CUDA Stream)并发调度;同时仅对 NVIDIA 平台提供了深入评测,尚未覆盖 AMD ROCm、Intel OneAPI 等其他异构计算生态。
  • 自身发现的局限:数据生成器虽采用了动态随机数据以防下溢,但对于部分科学模拟任务中的数值稳定性(如累加舍入误差、病态矩阵)判断阈值仍主要依赖相对误差,可能掩盖部分极端数值问题;此外评测未深入量化生成核函数的寄存器溢出(Spill to Local Memory)开销。
  • 具体改进思路:可引入多轮交互式调试或反思(Self-Refinement / Agentic Loop)机制,将 Nsight Compute 导出的内存利用瓶颈反馈给大语言模型,探索基于性能反馈引导的自主内核调优。

相关工作与启发

  • vs KernelBench (ICLR 2025 Workshop): KernelBench 仅聚焦 PyTorch 到底层 CUDA 的转换,任务局限于常见深度学习算子且缺少标准参考实现;本文不仅覆盖六大科学计算领域,且直面更通用的自然语言文本到 CUDA 生成,并提出了硬件无关的 Roofline 得分体系。
  • vs ComputeEval (NVIDIA 2025): ComputeEval 虽采用自然语言描述,但依赖固定的小规模测试用例,缺乏运行性能考量;CUDABench 提供了覆盖 5 级规模(涵盖 1GB+ 输入)的高压测试,并深度整合了 Nsight Compute 硬件剖析。
  • vs TritonBench (ACL 2025): TritonBench 聚焦高层 Python-like 的 Triton 语言代码生成;而 CUDA 需要开发者显式精细管理共享内存、Warp 同步与线程束发散,CUDABench 直接直面了异构底层编程的本质复杂性。

评分

  • 新颖性: ⭐⭐⭐⭐⭐ 首次系统性确立了 Text-to-CUDA 的三维基准空间,并首创性地利用 Roofline 模型建立硬件无关综合评分。
  • 实验充分度: ⭐⭐⭐⭐⭐ 覆盖 7 款顶级闭源与开源前沿模型,结合跨架构 GPU 硬件实测剖析,数据极为翔实严谨。
  • 写作质量: ⭐⭐⭐⭐⭐ 叙述逻辑严谨顺畅,图表规范美观,动机分析与发现归纳深刻透彻。
  • 价值: ⭐⭐⭐⭐⭐ 为大模型在高性能计算、系统工程与底层并行代码生成领域建立了标杆性的评估基础设施。