编者按:随着 RISC-V 生态的快速扩张,越来越多的基础软件和业务系统正从 x86、ARM 架构向 RISC-V 平台迁移。然而,跨架构代码迁移并非简单的“换一套指令集重新编译”——多套指令集语法的深度掌握、复杂的依赖层级梳理、大量同质化的重复改造工作,以及人工调试验证的巨大耗时,构成了横亘在迁移路上的现实壁垒。在RISC-V 编译器生态和性能优化 MeetUp上,中兴通讯 RCH 系统部生态工具专家申林分享了《面向 RISC-V 的跨架构代码智能迁移工具研发及性能优化实践》,介绍了其自主研发的 RISC-V 智能代码迁移工具,展示了一套从代码扫描、AI 生成、仿真验证到性能优化的全链路闭环体系,为 RISC-V 代码迁移提供了一条“端到端”的自动化路径。同时,中兴通讯作为龙蜥社区副理事长单位,深度参与社区基础软件适配、架构迁移生态共建工作,持续将自研工具能力对外开放,助力龙蜥社区 RISC-V 生态规模化落地、技术适配迭代,为社区软硬件兼容适配、性能优化工作赋能。以下为本次演讲全文:
跨架构迁移的挑战
跨架构代码迁移的复杂度远超常规的移植工作,主要体现在三个维度:多架构适配门槛高。一次完整的迁移往往需要同时掌握 x86、Arm、RISC-V 三套指令集语法,理解汇编和寄存器层面的底层操作,并区分不同编程语言在架构适配上的差异。依赖层级复杂,重复改造量大。实际项目通常存在多层嵌套的代码库和第三方库依赖,其中大量架构相关代码呈现同质化特征。开发者需要逐一梳理依赖关系,逐层进行代码改写和编译适配,大量重复性工作难以避免。人工调试验证耗时。人工迁移需完成大批量代码改写,汇编适配与跨架构性能调优,往往需要多轮编译和全量验证,人力投入巨大。
尽管通用 AI 工具能力持续演进,但在实际代码迁移场景中仍面临三重局限:场景泛化与专业适配能力不足、难以从大规模工程中提取范式并聚焦架构核心、全量输入导致 Token 消耗过高。为突破上述瓶颈,中兴通讯自研的RISC-V 智能迁移工具,将 AI 能力深度集成以提升研发效能。首先,内置编码规范与指令集手册,强化领域知识支撑;其次,通过参考现有 x86 和 Arm 代码实践,精准定位目标架构相关逻辑,使上下文更聚焦;最后,前置过滤无关代码,显著降低 Token 消耗,在保障迁移质量的同时实现了成本与效率的双重优化。
智能迁移工具:AI 驱动的四层架构
RISC-V 智能迁移工具的整体架构方案以 x86 和 Arm 源代码(含文件、目录结构)为输入,首先通过自动扫描精准定位汇编、向量指令及外部依赖等架构相关的差异化组件。通过 AI 内生智能迁移,依托多 Agent、RAG 及 Skill 调用等技术,构建自主优化的闭环迭代体系。
该闭环体系集成了 RISC-V 交叉编译工具链与仿真环境:先由 AI 生成单元测试代码,再通过工具链与仿真环境进行自主编译、运行与校验;针对编译异常或功能错误等问题,系统自动触发多轮自迭代修复,直至确保功能正确性。在功能验证通过后,进一步借助微架构分析工具对 RISC-V 指令进行深度优化,消除冗余逻辑并提升代码并行度,从而增强整体性能。最终,该方案以可视化 web 平台及 skill 开发插件两种形态对外呈现。
智能扫描与分析引擎。作为迁移流程的起点,该引擎内置了适配 x86、Arm、RISC-V 的解析能力,能够自动识别项目中的汇编代码、向量指令、外部依赖等架构差异化组件。通过对多语言源码(C/C++、Java、Python、Go)的词法语法分析,引擎会绘制代码依赖图谱、函数调用关系和数据流图,形成对项目结构的结构化认知。在此基础上,精准定位与特定架构平台相关的 API 调用、系统接口和依赖库,识别迁移风险点。
AI 内生智能生成。不同于传统的“自然语言对话”模式,在 Agent 层面引入了 Workflow 工作流和目标强制达成机制,通过脚本化的自然语言指令固化执行路径,显著提升了 Agent 与大模型引擎的目标达成率和行为一致性。针对扫描出的架构相关代码,我们以 Agent 作为核心执行主体,使其具备代码上下文理解、变量传递分析及函数调用追踪能力。通过整体语义理解与深度解析,Agent 能够自动生成符合 RISC-V 架构的新代码。同时,我们集成了 RISC-V 手册规范等 spec 知识库,并对其进行向量化存储至向量数据库。在工作流中,系统强制要求 Agent 在生成 RISC-V 架构代码时必须引用该权威知识库,确保代码生成有据可依,从而有效保障生成代码的准确性、规范性与可维护性。
闭环迭代验证体系。闭环迭代生成以单元测试通过率、编译兼容性及功能正确性为核心维度,对每轮迭代产物的质量进行量化评分,为自动迭代优化提供可度量、可优化的反馈依据。针对编译异常、单元测试失败及功能结果错误等问题,系统能够自动调整生成的代码与脚本以适配 RISC-V 架构,逐轮收敛缺陷,持续提升移植代码的可用性与运行效率。由此形成了“仿真校验-量化评估-AI 优化”的完整正向循环,使系统能够持续闭环修复迁移问题,不断提升代码迭代生成的通过率,实现全链路的闭环优化。
微架构性能分析。“能跑”只是起点,“跑得快”才是关键。在生成功能达标的代码后,我们引入了性能优化专题,聚焦迁移后的性能瓶颈。通过前述闭环体系,我们已实现初步迁移并建立了完备的验证能力,但真正的挑战在于释放 RISC-V 平台的全部性能潜力。为此,我们深入剖析架构特性与代码瓶颈,通过算法重构、指令集优化及并行计算开启,实现从“能跑”到“跑得快”的关键跨越。
当代 CPU 性能提升主要受限于两大因素:一是数据依赖,即指令需等待前序计算结果,打断流水线并导致乱序执行引擎无法有效隐藏延迟,直接降低 ipc;二是资源限制,硬件执行单元数量有限或被占用,导致指令在调度队列中阻塞,引发流水线停顿并限制指令并行度。
针对上述问题,我们开发了微架构分析工具作为静态性能分析器,通过模拟 CPU 流水线定位性能瓶颈根因:其一,识别数据依赖,以时间线视图直观展示指令间等待关系,精准定位流水线停顿点;其二,分析资源压力,识别竞争激烈的硬件执行单元;其三,计算每轮核心指标(如 ipc 与整体吞吐量),量化代码执行效率并提供优化基准线。基于该闭环指标体系,每一轮代码生成都会输出 ipc 与块吞吐量报告,自动关联后端压力与调度停顿,为 AI Agent 提供明确优化方向,例如循环展开、指令重排或指令替换,从而实现性能的持续迭代提升。
双重交付形态:Web 平台与 Skill 插件
为适配不同场景的使用需求,RISC-V 自动迁移工具提供两种交付形态。
Web 可视化平台提供直观的浏览器操作界面,开发者可直接上传代码文件或整个项目目录,系统自动识别待修改的架构相关问题——包括 Makefile、内联汇编、缺失的架构适配文件等,并给出问题数量和预估工作量。平台支持报告的导出,适合团队快速验证和评审。
Skill 插件将核心功能封装为 IDE可调用的开发插件,以 Plugin方式从代码库直接安装,无缝集成到开发者的 IDE 和CI/CD 流程中。该形态主要面向需要深度定制和复杂调试的核心开发场景,交互体验与日常编码工作深度融合。
这里用网页版平台做一个演示。在网页版平台中,用户只需上传代码文件或整个目录,系统即可自动识别待修改项。平台支持识别 makefile、内联汇编、独立汇编文件及各语言源码等,同时能检测缺失的 RISC-V 架构文件,并统计问题数量以评估后续工作量。针对缺失的 RISC-V 架构的汇编文件,系统会自动提示功能对等的 x86 或 Arm 源文件,便于人工或 AI 基于已有文件生成 RISC-V 适配代码。此外,平台还支持一键导出分析报告。
在具体问题详情页,用户可先对扫描结果进行人工校验。由于初始规则扫描可能存在误报或漏报,用户可在编辑框中手动选择代码块并添加至建议列表,从而在 AI 生成前构建一份经人工验证的精准待修改清单。点击“AI生成”后,系统将以 Agent 模式或单条建议形式自动输出 RISC-V 代码。用户也可通过自主配置 API 的方式,灵活对接不同的 AI Agent 完成代码生成。所有建议与生成结果均会在页面内直观展示。至于 skill 插件模式,因其深度集成于 IDE 中,此处不再赘述演示。
实战案例:从SM2 到 CRC 的跨越验证
在 SM2(国密)椭圆曲线算法的 Arm 到 RISC-V 迁移中,工具精准覆盖了十余个核心底层函数。Arm 架构中存在直接更新标志位的特殊指令,而 RISC-V 并无直接的进位/借位映射逻辑——这正是跨架构迁移中最棘手的“语义等价转换”问题。RISC-V 自动迁移工具自动构建了进位运算的等价逻辑,精准复现 Arm 汇编行为,最终自动生成 1500 余条汇编代码,并构建近 200 个边界条件测试用例,全部通过验证,实现了算法在 RISC-V 平台的高效落地。在性能层面,由于 SM2 未涉及向量化运算,迁移后的性能达到了人工手写的同等水准。
在 CRC 校验算法的性能优化中,原始代码存在严重的循环依赖,导致 CPU 流水线频繁等待,实测 IPC 仅为 3.69,性能较差。通过微架构分析工具的动态调优——循环展开增加单次迭代处理的数据量以降低循环控制开销、指令重排根据数据依赖关系重新组织指令流——经过迭代优化后,代码并行度充分释放了硬件资源,IPC 提升至 5.76。CRC 整体性能达到了社区人工手写最优版本的 63.92%。
综合来看,从代码迁移适配到验证的完整流程,工具相比人工方式实现了约 6 倍的效率提升。
从辅助工具到AI 驱动:定义迁移的新范式
RISC-V 自动迁移工具的思路并非简单的“AI 辅助编码”,而是构建了一套全新的代码迁移体系——从代码扫描到智能生成、再到验证与性能优化的全链路闭环,并将智能扫描作为节省 Token 消耗的关键入口,以 Workflow 固化和目标强制达成策略持续提升 AI 执行的可控性。
在生态层面,Web 可视化平台与 Skill 插件的双轨交付模式,兼顾了快速评审与深度开发两种典型场景。这套全新的代码迁移体系不仅有效突破了传统迁移的效率瓶颈,更从底层逻辑上明确了技术演进的实施路径。随着团队持续将 AI 的最新进展融入工具迭代,这条从“能跑”到“跑得快”的技术路径,正在为 RISC-V 生态的规模化代码迁移提供可复用的实践范式。
依托龙蜥社区副理事长单位身份,中兴通讯持续将这套成熟的跨架构智能迁移、性能优化能力对外开放、赋能社区,助力龙蜥社区完善 RISC-V 架构软硬件适配体系、丰富基础软件迁移生态,为社区各类开源项目、行业业务系统的跨架构迁移提供高效工具支撑。团队将持续深耕社区生态,持续迭代工具能力,助力龙蜥 RISC-V 生态规模化、高质量发展。
同时,本次技术成果与社区实践也得到了官方认可,团队核心成员申林凭借在龙蜥社区技术共建、生态推广、技术分享等方面的突出贡献,荣获龙蜥社区贡献者荣誉。未来,团队将持续依托龙蜥社区平台,深化跨架构迁移、AI 智能优化等技术方向的研究与落地,输出更多可复用的工程实践成果。
本次 MeetUp PPT 、视频回放已上线龙蜥官网,欢迎点击查看:
PPT 下载链接:
龙蜥社区MeetUp - OpenAnolis 龙蜥操作系统开源社区文档中心
视频回放:
Video - OpenAnolis code repository
—— 完 ——