⏶11
担保猜测:一种具有测试保证的CISC到RISC转译语言建模方法
发表
由
Ahmed Heakl 提交

作者:
Ahmed Heakl,
Sarim Hashmi, Chaimaa Abi, Celine Lee, Abdulrahman Mahmoud

摘要
硬件生态系统正在迅速发展,人们对如何快速、灵活、正确地将底层程序在不同指令集架构 (ISA) 之间进行转换越来越感兴趣,以增强现有代码的可移植性和生命周期。这种转译问题中一个特别具有挑战性的类别是在复杂指令集计算 (CISC) 和精简指令集计算 (RISC) 硬件架构之间进行转换,因为它们在指令复杂性、内存模型和执行范式上存在根本性差异。在这项工作中,我们引入了 GG(Guaranteed Guess),一个以 ISA 为中心的转译流程,它将预训练大型语言模型 (LLM) 的翻译能力与成熟的软件测试结构严谨性相结合。我们的方法利用 LLM 从一种 ISA 生成到另一种 ISA 的候选译文,并将这些译文嵌入到软件测试框架中,以建立对翻译结果可量化的信心。我们在两个不同的数据集上评估了 GG 方法,确保单元测试的代码覆盖率达到较高水平(>98%),并在 HumanEval 程序上实现了 99% 的功能/语义正确性,在 BringupBench 程序上实现了 49% 的功能/语义正确性。此外,我们将我们的方法与 Apple Silicon 上最先进的 Rosetta 2 框架进行了比较,展示了我们的转译代码在运行时性能上快 1.73 倍,能源效率提高 1.47 倍,内存使用量优化 2.41 倍,这证明了 GG 在真实世界 CISC 到 RISC 翻译任务中的有效性。我们将开源我们的代码、数据、模型和基准,为 ISA 级别的代码翻译研究奠定共同基础。


Guaranteed Guess 是一个强大的基于LLM的转译器,它将x86 (CISC) 汇编代码转换为高效的ARM和RISC-V (RISC) 代码,并经过测试验证了其正确性。与依赖仿真或反编译的现有方法不同,GG直接生成原生汇编代码,在HumanEval上实现了高达99.4%的正确性,在BringUpBench上实现了49.2%的正确性,并通过严格的单元测试强制执行。GG在超过130万个低级程序上进行训练,并结合了架构感知的分词和长上下文推理,其执行速度比Rosetta 2快1.73倍,能效高1.47倍,内存使用量低2.41倍,为快速便携的二进制翻译提供了一条切实可行的路径。