大语言模型 (LLMs) 正在彻底改变开发者的编码方式和编码学习方式。对于经验丰富的或初级的开发者来说,如今的先进模型可以生成 Python 脚本、基于 React 的网站等。未来,强大的 AI 模型将帮助开发者编写高性能 GPU 代码。这就提出了一个重要问题:如何确定 LLM 是否能够处理复杂的 CUDA 编程?
ComputeEval 是一个开源框架和数据集,旨在评估 LLM 在 CUDA 代码生成上的能力。该数据集旨在评估 LLM 在不同的并行编程领域(如内存管理和线程同步)生成正确 CUDA 代码的能力。该框架旨在简化对生成代码的评估。
本文将介绍 ComputeEval 作为评估框架的工作原理、我们对先进模型的评估结果,以及它对 AI 辅助 GPU 开发的未来意味着什么。
高性能 GPU 代码生成的新基准测试
ComputeEval 旨在专门为 CUDA 和高性能 GPU 代码提供值得信赖的社区驱动基准测试。它的灵感来自其他语言 (例如 HumanEval ) 中的基准测试。在 CUDA 方面,精度、并行性和性能至关重要。
ComputeEval 包含以下内容:
- 手工制作的现实世界 CUDA 问题:我们的团队精心策划了一系列挑战,涵盖从 kernel 启动和线程管理到内存布局和共享内存利用率的方方面面。我们的初始版本包含 128 个 CUDA 问题,为评估 LLMs 如何应对 GPU 编程挑战奠定了基础。
- 功能正确性测试:提供代码,以便在沙盒环境中运行功能正确性测试。这意味着您可以安全地执行生成的代码,并验证其是否按预期工作。
要查看代码,请访问 NVIDIA/compute-eval GitHub 存储库。在 Hugging Face 上查找数据集。
模型性能
我们的团队在 ComputeEval 上评估了多个领先的 LLM,以建立基准性能指标并了解 AI 辅助 CUDA 编程的现状 (表 1) 。
模型 | pass@1 | pass@3 |
OpenAI o3-mini | 0.61 | 0.74 |
Anthropic Claude Sonnet 3.7 | 0.54 | 0.60 |
Llama 3.1 405b | 0.4 | 0.55 |
Google Gemini 2.0 Flash Thinking | 0.37 | 0.52 |
这些结果突出表明,虽然 LLM 在某些基本情况下能够生成有效的 CUDA 代码,但即使是最好的模型也无法为复杂问题生成正确的 CUDA 代码,并且在某些情况下不遵循能够使用其他语言执行的基本指令,这表明在这一复杂领域仍有改进空间。
开始使用
ComputeEval 不仅仅是衡量当前模型的性能,它还涉及制定标准,推动 AI 辅助 CUDA 编程的持续改进。我们的团队希望突破 LLM 在高性能计算领域的极限。作为一个开源平台,ComputeEval 是社区可以信任和构建的资源。通过提出跨 CUDA-X 库和 GPU 架构的专家主题的挑战,ComputeEval 还通过默认利用最佳实践来推动现代化。
在第一个版本中,您将发现 128 项精心设计的 CUDA 挑战。但我们不会止步于此。我们已经在与内部团队和合作伙伴合作收集更多问题。我们也将开源这些问题。未来的更新将包括优化测试和更详细的指标,这些指标不仅能捕获正确性,还能捕获性能衡量标准。
“我们邀请经验丰富的 HPC 专业人士、学生和业余爱好者在其他模型上运行基准测试,通过拉取请求提交新的 CUDA 和 CUDA 库问题,并在 GitHub Issues 中提供常规反馈。您的反馈和贡献将有助于塑造此基准测试的未来,并让加速计算更好地为所有人服务。要查看代码,请访问 NVIDIA/compute-eval GitHub 存储库。在 Hugging Face 上查找 数据集 。”