论文
CUDABeaver:基于 LLM 的自动化 CUDA 调试的基准测试
CUDABeaver: Benchmarking LLM-Based Automated CUDA Debugging
摘要
调试 CUDA 程序长期以来一直具有挑战性,因为失败通常是由硬件行为、编译器决策、内存层次结构和异步执行之间的微妙交互引起的。更重要的是,随着科学计算、机器学习、图形和系统工作负载中 GPU 使用量的快速扩展,CUDA 调试变得比以往更具挑战性。当前对基于 LLM 的 CUDA 编程的评估很大程度上忽略了这一设置:模型可以通过退化修复的正确性测试,将 CUDA 代码简化为更安全但更慢的程序,放弃原来的优化结构。我们引入了 CUDABEAVER,这是一个用于从基于 LLM 的 CUDA 生成期间生成的真实失败工作区进行 CUDA 调试的基准。每个任务都提供损坏的候选、本机构建/测试命令、原始错误证据和单个可编辑文件。 CUDABEAVER 评估修复程序是否真正修复了失败的 CUDA 代码,还是仅仅找到了测试通过速度较慢的替代品,并按故障类别、调试轨迹、停滞模式和性能保留报告结果。我们通过使修复器 M、语料库 C 和协议轴 A 显式化,进一步提出了 pass@k(M,C,A),一种协议条件 CUDA 调试指标。在 213 个任务和 7 个前沿 LLM 中使用这个指标,我们表明协议感知评估可以更真实地反映 CUDA 调试能力:当性能损失容忍度很高时,修复程序显得更强大,但即使是稍微严格的性能要求也会急剧降低测量的成功率,使分数最多改变 40 个百分点。