基于RAG的交叉架构编译器模糊测试
密码学与安全
2025-04-15 v1
摘要
OneAPI是一种支持跨架构软件开发的开放标准,需开发者极少工作量即可实现。它包含DPC++和C++编译器,需要进行彻底测试以验证其正确性、可靠性和安全性。编译器拥有大量的代码路径和优化功能。此过程需要深入了解不同编译流程的开发者为针对特定编译路径编写特定测试用例。这种测试用例创建耗时且成本高昂。本文提出一种基于大语言模型(LLM)的编译器模糊测试工具,集成检索增强生成(RAG)的概念。该工具自动化了测试用例生成任务,减轻了经验丰富的编译器开发者关于编写测试用例模式的投入。我们在Intel DPC++/C++编译器上测试了该方法。该编译器可编译SYCL代码,允许开发者将其卸载到来自不同供应商的GPU和CPU。通过该工具,我们在仅几小时内(无需对受测试编译器路径的先决背景)即可识别出87个导致Intel DPC++和clang++编译器在不同架构上运行时产生输出值不匹配或编译器运行时错误的SYCL代码测试用例。该工具通过LLM提供的动态测试用例创建能力,显著降低了开发者时间要求,实现了高效的编译器模糊测试。
引用
@article{arxiv.2504.08967,
title = {RAG-Based Fuzzing of Cross-Architecture Compilers},
author = {Rana Elnaggar and Brian Delgado and Jason M. Fung},
journal= {arXiv preprint arXiv:2504.08967},
year = {2025}
}