Migrating codebases from one instruction set architecture (ISA) to another is a major engineering challenge. A recent example is the adoption of Arm (in addition to x86) across the major Cloud hyperscalers. Yet, this problem has seen limited attention by the academic community. Most work has focused on static and dynamic binary translation, and the traditional conventional wisdom has been that this is the primary challenge.
In this paper, we show that this is no longer the case. Modern ISA migrations can often build on a robust open-source ecosystem, making it possible to recompile all relevant software from scratch. This introduces a new and multifaceted set of challenges, which are different from binary translation.
By analyzing a large-scale migration from x86 to Arm at Google, spanning almost 40,000 code commits, we derive a taxonomy of tasks involved in ISA migration. We show how Google automated many of the steps involved, and demonstrate how AI can play a major role in automatically addressing these tasks. We identify tasks that remain challenging and highlight research challenges that warrant further attention.
academic- 论文ID: 2510.14928
- 标题: Instruction Set Migration at Warehouse Scale
- 作者: Eric Christopher, Kevin Crossan, Wolff Dobson, Chris Kennelly, Drew Lewis, Kun Lin, Martin Maas, Parthasarathy Ranganathan, Emma Rapati, Brian Yang (Google, USA)
- 分类: cs.SE (Software Engineering), cs.LG (Machine Learning)
- 发表时间: 2025年10月16日 (arXiv预印本)
- 论文链接: https://arxiv.org/abs/2510.14928
本文通过分析Google从x86到Arm的大规模ISA迁移(涉及近40,000个代码提交),挑战了传统关于指令集架构迁移的观点。研究表明,现代ISA迁移的主要挑战不再是代码翻译,而是一系列多方面的工程任务。论文提出了ISA迁移任务的分类法,展示了Google如何自动化许多迁移步骤,并证明AI在自动化处理这些任务中的重要作用。
- 核心问题:大规模代码库的指令集架构迁移是一项重大工程挑战,但学术界对此关注有限
- 实际需求:主要云服务商(Amazon、Google、Microsoft)都在采用Arm架构以补充x86,需要系统性的迁移方法论
- 传统观点局限:过往研究主要关注静态和动态二进制翻译,认为这是ISA迁移的主要挑战
- 技术环境变化:现代ISA在上游编译器、运行时库和Linux内核中得到良好支持,使得从源码重新编译成为可能
- 实践经验缺失:缺乏对现代ISA迁移实际涉及任务的系统性分析
- 自动化机遇:现代软件工程工具和AI技术为自动化迁移提供了新的可能性
- 首次系统性分析:提供了首个大规模ISA迁移任务的详细分解和分类法,基于38,156个真实提交
- 颠覆传统认知:证明ISA迁移的复杂性不在于代码翻译,而主要涉及构建和配置文件的重写
- 自动化框架:展示了许多迁移任务高度可自动化的特性,并开发了AI驱动的自动化工具CogniPort
- 实用指导:识别仍然具有挑战性的任务,为未来研究方向提供指导
本文研究的核心任务是:将多十亿行代码库从x86架构迁移到同时支持x86和Arm的多架构环境
输入:单架构(x86)的大规模代码库
输出:支持多架构(x86+Arm)的代码库
约束:保持性能、安全性和稳定性的对等性
- 数据源:Google单一代码仓库中38,156个与Arm迁移相关的提交
- 自动分类:使用Gemini 2.5 Flash LLM进行大规模提交分析
- 分类流程:
- 将提交消息和代码差异传入LLM的1M token上下文窗口
- 每批100个提交,让模型选择20个类别
- 整合400×20个类别为50个,最终手工精化为16个类别
定义了五步迁移流程:
- 测试阶段:修复在新ISA上失败的测试和构建
- 设置多架构CI:修改Blueprint文件确保无回归
- 配置发布:修改Blueprint文件使发布默认支持多架构
- 推出新二进制文件:在新ISA机器上运行并评估性能稳定性
- 全面生产:允许生产作业调度到新ISA机器
- 创新性地使用大语言模型分析数万个代码提交
- 建立了ISA迁移任务的系统性分类法(17个类别)
- Large-Scale Changes (LSCs):通过Rosie工具实现大规模自动化代码修改
- CHAMP系统:持续健康监控平台,自动评估Arm构建应用的行为差异
- CogniPort AI代理:三层嵌套代理循环,自动修复构建和测试错误
CogniPort包含三个嵌套的代理循环:
- 编排器代理:根据工作空间状态调用构建/测试修复代理
- 构建修复代理:尝试构建目标并修改文件直到成功
- 测试修复代理:运行测试并修改代码直到通过
- 规模:38,156个提交,约700K行代码变更
- 时间跨度:多年的迁移过程
- 覆盖范围:Google内部数十亿行代码的代表性子集
- 自动化程度:每个类别中自动生成的提交和代码行比例
- AI修复成功率:CogniPort在245个测试提交上的修复成功率
- 迁移效果:应用合格率从4.8%提升到59.6%,回滚率控制在1.8%以下
- 历史提交分析:恢复历史提交并评估AI代理的修复能力
- 分类准确性验证:手工检查模型输出确保分类准确性
- 自动化效果评估:统计LSC和CHAMP系统的自动化覆盖率
- 构建配置占主导:84%的提交涉及构建、打包和CI/CD配置(类别8)
- 代码修改占比极小:代码适应和修正(类别1-5)仅占1%的提交和不到4%的代码行
- 测试适应重要:测试相关修改(类别6-7)占据相当比例
- 早期阶段:主要是工具开发和测试适应
- 中期阶段:代码适应类提交比例增加
- 后期阶段:几乎全部是配置文件和支持流程,提交量快速增长
- 整体自动化率:83.82%的提交和14.15%的代码行实现自动化
- LSC生成提交:31,984个提交通过Rosie自动生成
- 应用合格率提升:从4.8%提升至59.6%
- 低回滚率:最终阶段回滚率降至0.8%以下
CogniPort在245个测试提交上的表现:
- 整体成功率:30%
- 最佳类别:测试修复、平台特定条件代码、数据表示修复
- 困难类别:内存模型、测试执行环境、性能优化
AI评估的自动化难度(1=简单,5=困难):
- 高度可自动化:构建配置文件、测试执行环境
- 中等难度:代码和测试适应(类别1-7)
- 仍需人工:复杂性能优化、特殊服务配置
- 二进制翻译:静态和动态二进制翻译技术,如Rosetta系统
- 代码自动编辑:性能优化、安全问题修复、错误纠正的自动化方法
- 从二进制翻译转向源码重编译:利用现代开源生态系统的成熟支持
- 系统性任务分析:首次提供ISA迁移任务的全面分类法
- AI驱动自动化:将大语言模型应用于大规模代码迁移
- 颠覆传统观点:ISA迁移的复杂性不在代码翻译,而在多方面工程任务
- 高度可自动化:大部分迁移任务可通过现代工具自动化完成
- 一次性工作价值:许多任务在首次多架构迁移后可重用
- AI潜力巨大:现代AI可处理许多剩余的手工任务
- 评估方法限制:AI代理评估可能存在信息泄露或测试不完善
- Google特定环境:结论可能不完全适用于其他组织的软件环境
- Arm特定性:研究专注于x86到Arm迁移,其他ISA迁移可能有不同挑战
- ISA特定向量代码:需要复杂的性能优化搜索空间
- 深度性能优化:需要算法级别的重构和内在函数使用
- 复杂边缘情况:需要超出代码本身的专业知识
- 性能调优:需要重新生成超参数和反馈导向优化配置文件
- 增强AI代理能力:支持文档搜索、性能测量的更强大代理
- 向量化自动化:自动生成高性能ISA特定向量代码
- 多架构工具链:进一步改进自动化多架构支持工具
- 实践价值极高:基于真实的工业级大规模迁移经验,具有很强的指导意义
- 方法论创新:首次系统性地分析和分类ISA迁移任务,建立了该领域的基础框架
- 数据规模庞大:38,156个提交的分析规模在软件工程研究中极为罕见
- 技术前瞻性:展示了AI在大规模软件工程任务中的实际应用潜力
- 结果反直觉:挑战了领域内的传统认知,具有重要的学术价值
- 环境特定性:研究基于Google的特定软件环境,泛化能力可能有限
- 评估方法局限:AI代理的评估可能存在偏差,需要更严格的基准测试
- 成本分析缺失:缺乏对迁移成本(人力、时间、资源)的定量分析
- 长期维护考虑不足:对多架构代码库长期维护成本的分析较少
- 学术影响:为软件工程和系统架构领域提供了新的研究方向
- 工业价值:为其他组织进行ISA迁移提供了实用的方法论和工具参考
- 技术推动:推动了AI在软件工程中的应用发展
- 标准建立:可能成为ISA迁移领域的重要参考标准
- 大型科技公司:拥有大规模代码库需要进行架构迁移的组织
- 云服务提供商:需要支持多种硬件架构以优化成本和性能
- 开源项目维护者:需要扩展架构支持的大型开源项目
- 研究机构:研究软件工程自动化和AI应用的学术团队
论文引用了27篇重要文献,涵盖:
- 二进制翻译技术(Altman et al., 2000; Gouicem et al., 2022)
- 大规模软件工程(Potvin & Levenberg, 2016; Winters et al., 2020)
- 代码自动化修复(Bader et al., 2019; Lin et al., 2025)
- 系统架构(Verma et al., 2015; Corbett et al., 2012)
总结:这是一篇具有重要实践意义和学术价值的论文,首次系统性地分析了现代大规模ISA迁移的实际挑战和解决方案。论文不仅挑战了传统观点,还展示了AI技术在软件工程中的巨大潜力,为该领域的未来发展提供了重要指导。