RuyiAI系统软件栈:RISC-V AI新起点
中国科学院软件研究所智能软件研究中心推出RuyiAI系统软件栈(以下简称RuyiAI )。当前,RISC-V凭借开放、可扩展的特点,已经成为AI算力平台的重要发展方向。然而,AI系统软件生态的各个层级对RISC-V的支持与适配仍存在明显不足。RuyiAI面向RISC-V指令集架构,致力于构建统一、高效、可扩展的人工智能系统软件栈,为AI模型在各类RISC-V平台部署筑牢软件根基。

在技术路线上,RuyiAI采用“原生+适配”的方案。一方面,坚持“RuyiAI原生”路线,以RISC-V为核心目标架构开展系统化设计与优化,构建面向 RISC-V AI计算的自主组件体系;另一方面,推进“RuyiAI适配”路线,积极适配对接主流生态,提升AI系统软件在RISC-V平台的可用性与稳定性。
RuyiAI以PyTorch和MLIR为生态锚点,以RuyiAI Compiler 、RuyiAI Library和RuyiAI DSL为关键组件,搭配推理框架、硬件抽象层与运行时环境,形成端到端的推理部署方案。其中,RuyiAI Compiler负责接入AI模型并进行多级编译优化;RuyiAI Library聚焦关键算子的极致性能优化;RuyiAI DSL针对灵活的融合算子提供高性能实现。各关键组件相互协同,形成统一的推理部署体系,推动RuyiAI成为RISC-V AI系统软件栈的新起点。

RuyiAI围绕PyTorch和MLIR两大生态构建AI系统软件栈。PyTorch是AI训练推理的关键框架,MLIR是多级编译的核心基础设施,将二者作为生态锚点,能够最大化兼容并适配当前的AI软件生态。
PyTorch RISC-V支持
PyTorch目前尚未提供RISC-V的原生支持,社区内也缺少持续稳定的RISC-V 测试与维护团队。RuyiAI团队与玄铁团队在PyTorch社区RFC[1]基础上展开合作推进,已将CI核心测试集测试时间缩短至2小时之内,并联合发出PyTorch RISC-V Support Tracking Issue[2],将在CI基础设施、AI计算内核库、AI编译器及AI编程语言方面持续推进。

RuyiAI将PyTorch的使用和适配分为两类:
-
RISC-V标准扩展(如RISC-V Vector扩展):以向上游社区贡献移植与优化为主,直接使用PyTorch原生接口。
-
RISC-V草案/定制扩展(如RISC-V各类Matrix扩展):可通过RuyiAI Compiler进行JIT或者AOT的编译执行。
○ 在torch.compile中通过backend=dynamo_compiler显式指定后端编译器,即可将RuyiAI Compiler 接入PyTorch运行流程。
○ RuyiAI Compiler支持直接导入PyTorch模型,当前已覆盖约85%的PyTorch算子。编译器前端生成标准MLIR高层级Dialect,不引入冗余的同层级Dialect;同时集成buddy-opt、buddy-translate、buddy-llc等工具链,支持对生成的MLIR进行进一步优化与转换。
LLVM/MLIR RISC-V特性支持
RuyiAI团队较早布局MLIR面向RISC-V Vector特性的支持,逐步推动解决VP Intrinsic相关问题[3],发起RVV Dialect提案[4],并进一步推动Vector Dialect中Scalable Vector Type的上游演进。

在实际推进中,RuyiAI团队梳理当前MLIR测试套件在RISC-V平台上的失败项并进行针对性修复。相关修复将整理为清晰规范的补丁持续提交上游社区。同时,团队还将建立定期同步LLVM上游更新的机制,确保RISC-V平台能够持续兼容最新的技术演进与优化成果。
RuyiAI关键生态集成与同步
RuyiAI围绕PyTorch和MLIR 构建了面向RISC-V的CI基础设施与版本同步智能体。为更好地服务RISC-V用户,RuyiAI团队在GitHub组织内部长期维护PyTorch与LLVM-Project仓库,将共性问题向上游贡献,对专用扩展进行长期维护。

-
RVCI:负责RISC-V硬件的维护,采用Jenkins+Docker的方式对接GitHub Actions。目前重点支撑PyTorch相关工作,未来将逐步扩展至LLVM及其生态项目。
-
SyncBots智能体系统:针对生态项目的版本同步难题而研发,为RuyiAI关键组件及其他生态项目提供自动化版本同步能力。
RVCI搭配SyncBots,致力于实现“测试–验证–修复–同步”的迭代闭环,持续稳定地维护关键生态组件,降低人工维护成本。
RuyiAI系统软件栈关键组件
RuyiAI系统软件栈关键组件以RuyiAI Compiler为核心,通过AI编译器将模型及计算负载进行逐层编译和多级优化,搭配RuyiAI DSL对灵活的融合算子进行编写,集成RuyiAI Library对关键算子进行极致性能优化。
RuyiAI Compiler
RuyiAI Compiler(akaRuyiAI Buddy Compiler[5])旨在成为PyTorch和RISC-V各类扩展的“Buddy System”,将 PyTorch计算负载通过多级编译的方式映射到各类RISC-V目标硬件。

在前端图层,RuyiAI Buddy Compiler通过PyTorch 2.x TorchDynamo捕获FX Graph与Aten IR,经Importer接入统一图级别表示,并由Graph Driver完成子图划分、依赖管理与编译调度,生成由Core MLIR Dialects与Custom MLIR Dialects构成的中间表示;在中间部分,进一步根据目标硬件特征制定编译策略及向量长度等关键参数。编译后端对接RISC-V扩展定制Dialects以及LLVM工具链,总体形成“模型接入—图级别优化—多级编译优化—目标代码生成”的端到端编译通路。
RuyiAI DSL
针对AI计算内核的灵活高效开发,RuyiAI DSL致力于适配Triton与TileLang,实现RISC-V平台的原生执行。Triton和TileLang采用不同的编译技术路线(MLIR & TVM),针对Triton和TileLang的适配需求,RuyiAI团队探索同源编译方式,通过将两者的计算、访存、同步与布局语义收敛到统一的编译抽象之上,复用同一套编译基础设施,降低移植适配开销。

Triton-RISCV是面向RISC-V平台的Triton 编译后端,TileLang-RISCV是面向RISC-V平台的TileLang编译后端,将Triton和TileLang编译至MLIR对应层级,复用RuyiAI Buddy Compiler向量化能力,可以在SG2044平台上直接完成构建与运行,无需交叉编译。其中,Triton-RISCV在覆盖率方面,已跑通25个Triton核心测例,并覆盖FlagGems中attention、blas、norm和distributed等典型算子类型;在性能方面,单线程评测设置下,Triton-RISCV在15个代表性算子上实现了平均1.57×的加速,最高达到 4.16×(matmul),初步验证了其在RVV平台上的可用性与性能潜力。
RuyiAI Library
RuyiAI Library致力于提供极致性能的算子实现,并结合RuyiAI Compiler的图级表示能力,在编译阶段根据目标硬件生成相应的Call节点,从而调用高性能算子实现。

RuyiAI Library包含三类计算核心来源:
-
基于AI的计算内核生成:面向目标算子的计算特征与硬件约束,利用AI自动生成计算内核汇编级别实现。
-
高性能计算内核移植:将ARM、x86等成熟平台上的高性能计算内核移植到RISC-V平台。
-
厂商计算内核集成:对接硬件厂商提供的专有优化内核,发挥特定硬件平台的性能优势。
RuyiAI系统软件栈集成
-
OpenClaw+Ruyi Book:飞书移动端与OpenClaw Agent通过 HTTPS + WebSocket/SSE建立双通道,前者负责请求提交与身份校验,后者负责流式回传。其中,OpenClaw运行在RISC-V架构的Ruyi Book上。
-
RuyiAI Serving+SG2044:OpenClaw Agent与RuyiAI Serving通过内部gRPC/HTTP协议交互,将意图类型、上下文摘要等业务语义转换为平台可执行请求。其中,RuyiAI Serving运行在RISC-V架构的SG2044上。
-
RuyiAI+Tenstorrent:基于RuyiAI Compiler / DSL / Library的推理框架对接RuyiAI Serving的推理请求。其中,AI计算负载执行在Tenstorrent的RISC-V加速器上。
面向计算节点的Tenstorrent加速器,RuyiAI Compiler将PyTorch模型转换到图级别表示后,进而编译到Tenstorrent相关IR,并接入tt-mlir的编译流程。除了使用Tenstorrent原生软件栈,RuyiAI自研DSL通过构建时空编程抽象,保留对底层执行行为的控制能力,也降低了高性能算子开发的复杂度。性能方面,RuyiAI DSL通过编译优化和调优能够更好地利用片上资源,性能可以超越原生Tenstorrent原生软件栈和算子库。RuyiAI自研DSL的工作正在整理代码与撰写论文,计划近期开放论文并开源代码。
RuyiAI系统软件栈合作与应用
RISC-V AI软硬件生态的搭建需要广泛合作与共建,RuyiAI团队积极联动多方伙伴推进技术合作与生态落地,构建全方位、多层次的协同体系。
RuyiAI矩阵扩展合作
在矩阵扩展合作方面,RuyiAI团队围绕RISC-V矩阵扩展,联合产业伙伴推进从上层框架到后端工具链的协同贯通。面向PyTorch、Triton、TileLang等主流编程与编译生态,RuyiAI持续推进RuyiAI Compiler、Triton-RISCV、TileLang-RISCV等编译通路建设;面向不同厂商的矩阵扩展能力,进一步联合北京开源芯片研究院、玄铁、进迭时空等伙伴,探索矩阵扩展的编译支持,逐步完善相应的Dialect、Intrinsic及配套编译机制;同时结合厂商定制的LLVM、GNU Toolchain、QEMU、gem5等基础工具链与仿真验证环境,形成协同开发验证体系,加快RISC-V矩阵扩展的软件生态落地与应用。

RuyiAI向量扩展合作
在RISC-V向量扩展合作方面,RuyiAI团队致力于推动MLIR动态向量语义扩展,增强编译器对RVV动态向量长度模型的表达能力,并向MLIR上游社区发起相关提案[6],在RuyiAI Buddy Compiler中完成具体实现。与此同时,在RISC-V Vector扩展的软硬件协同设计方面,RuyiAI团队为Titan-I Vector Processor团队提供软件栈支持,面向高性能RISC-V向量核心,探索chaining与动态向量抽象协同的编译优化方法,在编译阶段进一步释放向量硬件性能。相关成果已发表论文Titan-I: An Open-Source, High Performance RISC-V Vector Core[7]。

RuyiAI定制扩展应用
在RISC-V定制扩展支持方面,RuyiAI Buddy Compiler中构建的Gemmini Dialect已被UC Berkeley[8]项目使用。通过数据流分析、硬件信息感知与规则驱动的编译策略,RuyiAI Buddy Compiler能够使计算负载更好适配脉动阵列加速器的执行特征。UC Berkeley开发者在典型AI计算负载上的测试[9]表明,相较于Gemmini原生软件栈,RuyiAI Buddy Compiler取得了显著的性能优势,体现出其在RISC-V定制AI加速器编译支持方面的实用价值与先进性。

RuyiAI并行编译基础设施
在并行编译基础设施方面,子图划分是支撑并行计算与分布式推理的关键环节。RuyiAI团队与北京工业大学团队围绕大模型推理场景开展合作,依托RuyiAI Compiler,分别对Prefill阶段和Decode阶段的计算图进行划分,生成多个可独立调度、可并行执行的子图中间表示,并结合并行配置完成编译。这些子图可部署到多个计算节点上协同执行,形成面向Prefill与Decode不同计算特征的并行推理流水线,为大模型推理中的多节点并行执行、分阶段优化与资源高效利用提供关键基础设施支撑。

RuyiAI软硬件协同设计
在NPU软硬件协同设计方面,RuyiAI团队与东南大学Buckyball团队合作,构建了以模块化架构为核心的NPU敏捷开发与优化体系。通过RuyiAI Compiler 与硬件RTL实现的深度协同设计,协同仿真,实现了从工作负载分析、异构系统映射到子图集成的全链路优化。该方案支持针对不同算子特征进行“即插即用”的硬件后端定制,允许编译器IR与硬件逻辑同步迭代,从而大幅缩短了专用加速器的开发周期。目前,该体系已在多种典型神经网络负载上完成端到端原型与流片验证,充分展现了软硬件协同优化在提升处理效率与系统灵活性方面的显著优势。

RuyiAI系统软件栈作为中国科学院软件研究所主导研发、开源开放、协同共建的RISC-V AI系统软件栈,致力于面向RISC-V硬件平台部署AI模型与应用。围绕PyTorch和MLIR两大生态锚点,RuyiAI构建了以Compiler、Library、DSL为核心的关键组件体系,逐步形成覆盖模型接入、编译优化、算子实现、推理部署的端到端能力。通过与上游社区、产业伙伴及高校团队的持续合作,RuyiAI正不断完善面向RISC-V的人工智能系统软件生态。未来,RuyiAI将以产业真实应用需求为牵引,维护关键软件生态,持续迭代完善核心组件,紧贴产业实际场景推动软硬件协同演进,携手合作伙伴,共建开放共赢的RISC-V AI产业生态。
联系我们
对RuyiAI生态建设感兴趣的伙伴们,可关注我们的GitHub仓库或官方主页获取最新的技术文档与项目进展。
RISC-V AI软硬件生态的繁荣离不开广泛合作,RuyiAI团队长期开放实习岗位,并诚挚欢迎各类项目合作,联系邮箱:hongbin2019@iscas.ac.cn(张洪滨)
相关链接
[1]https://github.com/pytorch/pytorch/issues/171659
[2]https://github.com/pytorch/pytorch/issues/180975
[3]https://discourse.llvm.org/t/mlir-vp-ops-on-rvv-backend-integration-test-and-issues-report/66343
[4]https://discourse.llvm.org/t/rfc-add-risc-v-vector-extension-rvv-dialect/4146
[5]https://buddy.ruyiai.org/
[6]https://discourse.llvm.org/t/rfc-dynamic-vector-semantics-for-the-mlir-vector-dialect/75704
[7]https://dl.acm.org/doi/full/10.1145/3725843.3756059
[8]https://github.com/ucb-bar/merlin
[9]https://github.com/ucb-bar/merlin/pull/11
项目与社区
RuyiAI 官方主页:https://www.ruyiai.org/
RuyiAI Buddy Compiler 项目仓库:https://github.com/buddy-compiler/buddy-mlir
RuyiAI Triton-RISCV 项目仓库:https://github.com/RuyiAI-Stack/triton-riscv
RuyiAI TileLang-RISCV 项目仓库:https://github.com/RuyiAI-Stack/tilelang-riscv
EuroLLVM 技术报告:https://www.youtube.com/watch?v=EELBpBA-XCE
CGO C4ML 技术报告:https://www.ruyiai.org/docs.html#C4ML2024
夜雨聆风