YiRage
chenxingqiang/YiRage加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
2024 年,大模型推理优化的战场被撕裂成无数碎片:NVIDIA 工程师守着 CUDA 调优 Triton 内核,AMD 工程师在 ROCm 上复刻同样的优化,Ascend 开发者苦于算子适配,华为 MACA 团队则在与 CUDA 行为不一致的泥潭中挣扎。Chen Xingqiang 在 2026 年初开源的 YiRage,正是试图回答这个问题:能否用一套代码,让所有硬件平台都跑出接近硬件原生的高性能?
这个项目的野心,从它的全称就能看出来——Yield Revolutionary AGile Engine,直译是"产率革命式敏捷引擎"。听起来很宏大,但背后的工程实现也相当扎实。
LLM 推理优化的核心瓶颈是内核融合(Kernel Fusion)——将多个独立 CUDA 算子融合为一个融合内核,减少 GPU 显存带宽压力。但每个硬件平台的融合策略差异巨大:CUDA 上的优化模式不能直接移植到 Ascend NPU 或华为 MACA。
传统方案的问题在于:
YiRage 的解法是统一抽象层 + 后端注册机制。在它的架构中,Search(搜索最优融合方案)、Profile(测量硬件性能)、Cache(缓存搜索结果)、Execute(在目标硬件上执行)是四个分离的模块,同一硬件上完成搜索和执行,确保结果真实有效。
YiRage 系统架构:RuntimeFusion 嵌入推理引擎(vLLM/SGLang),统一管理多硬件后端融合优化
YiRage 的代码组织采用五层架构,每一层解决一个粒度的问题:
| 层级 | 内容 | 说明 |
|---|---|---|
| Layer 5 | Persistent Kernel Runtime | 底层内存管理、内核启动、同步、JIT 编译 |
| Layer 4 | Threadblock Operations | MatMul、Attention、RMSNorm、SwiGLU 等线程块级算子融合 |
| Layer 3 | Compound Operations | GEMM-Softmax、GEMM-LayerNorm 等复合操作建模与优化(COMET 框架) |
| Layer 2 | Kernel Graph API | Python 前端,提供 yr.new_kernel_graph() 等高层接口 |
| Layer 1 | Backend Registry | 后端工厂模式,统一管理 CUDA/CPU/MPS/Ascend/MACA 等注册 |
YiRage 集成了 COMET(Compound Operations with Explicit Collectives) 框架,专门建模具有显式集合通信的复合操作数据流。这解决了什么问题?在大模型中,GPU 之间的 AllReduce 通信往往被低估——COMET 将 ramp-up/steady-state/ramp-down 三阶段模型引入代价估计,精度更高。
支持的复合操作包括:
后端通过抽象工厂模式注册,核心是 BackendRegistry 单例和 BackendInterface 抽象基类:
import yirage as yr
# 获取所有可用后端
backends = yr.get_available_backends()
# 创建持久化内核(跨请求复用)
kernel = yr.PersistentKernel(backend="cuda")
# 图级别超优化
graph = yr.new_kernel_graph()
optimized = graph.superoptimize()
当前支持的后端:CUDA、ROCm、CPU、MPS、Ascend(华为 NPU)、MACA(华为自研 GPU)、Triton、NKI、cuDNN、MKL。
| 组件 | 选择 | 理由 |
|---|---|---|
| 核心语言 | C++17 | 高性能计算必需,手写 CUDA kernel 需要细粒度控制 |
| Python 绑定 | Cython | 在性能和开发效率间取得平衡,yirage.core 由 Cython 封装 |
| 构建系统 | CMake | C++ 标准,支持跨平台(Linux/macOS/Windows),支持多核并行编译 |
| 分布式 | Ray | 支持集群级别分布式推理部署 |
| 形式化验证 | Z3 Solver | 内核融合正确性验证,搜索空间剪枝 |
| 硬件建模 | AccelForge | 统一的硬件性能建模接口 |
YiRage 提供了 docker/Dockerfile,但构建过程并非"一键":
git clone https://github.com/chenxingqiang/YiRage
cd YiRage
docker build -f docker/Dockerfile -t yirage:latest .
Dockerfile 基于 Linux + CUDA 环境,构建时会执行 CMake + Cython 编译链,需要约 10-15 分钟(取决于网络)。对于没有 GPU 的用户,只能在 CPU 后端模式下运行,实际优化价值大打折扣。
完整构建依赖链较长:
作者提供了详细的 docs/INSTALLATION.md 和按后端分组的安装指南(Ascend 就有专门的 4 个文档)。
最有趣的用法是将 YiRage 作为 vLLM 或 SGLang 的推理后端插件嵌入:
# 在已有 vLLM 实例中启用 YiRage 优化
from vllm import LLM
llm = LLM(model="meta-llama/Llama-3-8B", backend="yirage")
这种集成方式意味着用户不需要换掉已有的推理基础设施,只需切换 backend 参数即可体验优化效果。
第一,C++ 编译链门槛高。 项目明确标注"No Python-only mode",这意味着任何部署都必须先解决 C++ 编译问题。对于只想快速实验的研究者,这个门槛相当劝退。
第二,Ascend/MACA 后端资料稀缺。 文档中 Ascend 相关文档最多(4 篇),但实际社区使用量未知。这些国产硬件后端的 SDK 获取本身就有一定门槛。
第三,stars 仅 1 的冷启动问题。 作为 2026 年 6 月刚创建的仓库,缺乏用户反馈和社区验证,内核融合的优化效果停留在纸面参数,缺乏真实 Benchmark 对比数据。
第四,AGENTS.md 过大(224KB)。 这个文件体积异常,可能是包含了过多 agent 使用场景描述或日志,不适合在仓库根目录维护如此大的非代码文件。
YiRage 代表了一个重要趋势:硬件多样化下的统一推理优化层。随着 NVIDIA GPU 市场的不确定性和国产 AI 芯片的崛起,能够横跨多硬件平台的推理优化框架将变得越来越有价值。它的多后端统一搜索 + 缓存机制,比手工逐后端优化有明显效率优势。
不过,从 1 star 的现状来看,这个项目还处于非常早期的社区冷启动阶段,是否能真正落地还要看后续的真实部署案例和性能数据。
| 维度 | 评分 | 说明 |
|---|---|---|
| 架构设计 | ⭐⭐⭐⭐ | 多层抽象合理,后端注册机制可扩展性好 |
| 代码质量 | ⭐⭐⭐⭐ | C++17 现代语法,CMake 构建规范,测试覆盖较全 |
| 文档质量 | ⭐⭐⭐⭐ | 架构文档详细,但安装文档需要进一步简化 |
| 部署难度 | ⭐⭐ | C++ 编译链劝退,无 Python-only 模式 |
| 创新性 | ⭐⭐⭐ | COMET 框架集成有创新,多后端统一是行业痛点 |
分析时间:2026-08-14 | 数据来源:GitHub API + 官方文档 | License: Apache-2.0