并行科学代码翻译不再盲目重试:智能体按错误类型分派修复,18组模型与方向全部超过LASSI
核心概要
并行科学代码在CUDA、OpenMP与SYCL之间的翻译长期依赖固定顺序的流水线,所有错误都走同一种修复,且正确性只看编译与运行是否通过。一个由裁决驱动的编排器把翻译、编译诊断和执行验证拆成三个智能体,并按失败类型分派补丁、语义、同步或内存修复技能。在30个HeCBench内核、三个开源模型和六个翻译方向上,该流程在全部18个模型与方向组合中取得高于LASSI的验证正确率,同时最多少用52.4%的token。
深度剖析
并行科学代码翻译从一条固定顺序的流水线,改成由裁决驱动的编排器协调三个智能体:翻译、编译诊断和执行验证各管一段,失败不再一律重试。 此前的LLM翻译流程对所有错误采用同一种修复策略,不区分根因,因而产生不必要的模型调用。 在30个HeCBench内核、CUDA/OpenMP/SYCL六个方向、三个开源模型共18个组合上,该流程的验证正确率全部高于LASSI,每模型平均为78.6%至94.6%,LASSI为34.5%至65.5%。
每次失败先被归类成具体裁决,再交给对应的修复技能:编译错误走补丁或内存修复,运行崩溃走同步修复,输出不符走语义修复。 修复技能是动态加载的独立单元,新增一对源语言与目标语言只需替换技能实现和提示模板,不改动编排器与智能体代码。 token消耗随模型不同比LASSI低29.5%至52.4%,每方向在1018k至1115k之间;18个组合中只有两个比LASSI花得更多,且都换来最高60.0%的正确率提升。
启示与展望
演示范围限于HeCBench中选出的30个内核级基准,在CUDA、OpenMP与SYCL之间双向翻译,其中6个内核缺少OpenMP实现,因此以OpenMP为源的方向只有24个基准;编译上限300秒、执行上限120秒、修复循环最多9轮。作者提出下一步把框架扩展到多文件代码库与完整应用,并计划把性能反馈纳入修复循环。
循环内的编译与运行检查会高估两个系统的成功率,离线LLM校验把通过率压低8.3%至17.3%,共识别出117个假阳性,其中占位实现31例、数值错误28例、跳过验证25例。作者也指出修复收益在约五轮之后递减,且多轮后仍失败的属于系统性失败;离线校验器自身还可通过更细的评分细则和多校验器投票来加强。
