大語言模型 (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 上查找 數據集 。”