中文

OpenAI Codex 在 HPC 并行编程模型核函数生成中的评估

人工智能 2023-09-20 v1 新兴技术 编程语言

摘要

我们在高性能计算(HPC)的基础数值核函数上评估 AI 辅助生成能力,包括 AXPY、GEMV、GEMM、SpMV、Jacobi Stencil 和 CG。我们针对多种语言支持的编程模型测试所生成的核函数代码,包括(1)C++(例如 OpenMP [含 offload]、OpenACC、Kokkos、SyCL、CUDA 和 HIP),(2)Fortran(例如 OpenMP [含 offload] 和 OpenACC),(3)Python(例如 numba、Numba、cuPy 和 pyCUDA),以及(4)Julia(例如 Threads、CUDA.jl、AMDGPU.jl 和 KernelAbstractions.jl)。我们使用截至 2023 年 4 月在 Visual Studio Code 中由 OpenAI Codex 提供支持的 GitHub Copilot 能力,在给定简单的 <核函数> + <编程模型> + <可选提示> 提示变体的情况下生成大量实现。为量化并比较结果,我们针对每个提示给出的前 10 条建议提出了一个熟练度度量。结果表明,C++ 的 OpenAI Codex 输出与编程模型的采用度和成熟度相关。例如,OpenMP 和 CUDA 得分很高,而 HIP 仍显不足。我们发现,来自 Fortran 等特定语言或更通用的 Python 的提示可通过添加代码关键字而受益,而 Julia 提示在其成熟编程模型(例如 Threads 和 CUDA.jl)上表现尚可。我们期望这些基准能为各编程模型的社区提供参考点。总体而言,由于大语言模型、AI 与 HPC 的融合因其快速发展及其对人机交互的重塑而至关重要,理解这一融合十分关键。

关键词

引用

@article{arxiv.2306.15121,
  title  = {Evaluation of OpenAI Codex for HPC Parallel Programming Models Kernel Generation},
  author = {William F. Godoy and Pedro Valero-Lara and Keita Teranishi and Prasanna Balaprakash and Jeffrey S. Vetter},
  journal= {arXiv preprint arXiv:2306.15121},
  year   = {2023}
}

备注

Accepted at the Sixteenth International Workshop on Parallel Programming Models and Systems Software for High-End Computing (P2S2), 2023 to be held in conjunction with ICPP 2023: The 52nd International Conference on Parallel Processing. 10 pages, 6 figures, 5 tables