论文

Kaizen:LLM 翻译的 HPC 应用程序的变形模糊测试和差异测试

Kaizen: Metamorphic Fuzzing and Differential Testing for LLM-Translated HPC Applications

模型评测评测方法与指标

摘要

大语言模型 (LLM) 越来越多地用于跨异构高性能计算 (HPC) 编程模型移植科学代码,例如将 CUDA 转换为 OpenMP、OpenACC、Kokkos 或 SYCL。然而,当前的评估使用编译成功、词元级 相似性或开发人员编写的静态基准测试,这不能可靠地确保行为的正确性。我们提出 Kaizen,一个变质模糊测试和差异测试框架,用于评估 LLM 翻译的 HPC 代码的正确性。 Kaizen 使用通过源代码突变的变形模糊测试来生成语义等效的程序,使用基于语法的输入模糊测试来探索行为多样性,并使用差异测试来暴露原始应用程序和翻译后的应用程序之间的语义差异,这些应用程序编译并通过了开发人员编写的测试,但产生了不正确的科学结果。我们在内核级和全程序粒度上使用三个微调的 LLM 对七个领域的 16 个科学应用程序的 CUDA 到 OpenMP 转换进行了评估。我们的评估表明(1)编译成功并不能代表正确性; (2) LLM 翻译的程序表现出系统的编译时错误模式,内核级翻译有 9 类,全程序翻译有 27 类; (3) 编译后幸存的语义错误通常依赖于输入,需要差异测试才能暴露; (4) 完整程序翻译比内核级翻译困难得多。这些发现强调需要对 LLM 辅助的 HPC 代码翻译进行面向正确性的评估。