
mirage
把整个LLM推理塞进一个GPU内核,砍掉反复启动开销
Mirage 是一个面向大语言模型推理的持久化内核编译项目,核心思路是把整个 LLM 推理流程编译成一个单一的 MegaKernel,而不是像传统方案那样为每个算子分别启动 GPU 内核。它主要解决的是 LLM 推理中频繁内核启动、算子间数据搬运和调度开销过大的问题,尤其在小批量、低延迟场景下这些开销会显著拖慢响应。项目用 Cuda 实现,通过持久化内核让 GPU 上的计算单元常驻,把多个计算阶段融合进一个内核里执行,减少启动和同步成本。它属于基础设施层工具,目标用户是推理引擎开发者和需要极致延迟优化的团队,可以作为底层执行方案集成到现有推理栈中。项目目前处于成长阶段,星标约 2500,适合关注 GPU 内核融合与 LLM 推理加速方向的人跟进研究。
项目数据
使用教程
环境要求
- 支持 CUDA 的 NVIDIA GPU(项目用 Cuda 实现,README 未注明具体版本)
- Python 3 与 pip 环境
- git(需支持 --recursive 拉取子模块)
- 可编译 Cuda 扩展的本地开发环境(pip install -e . 会从源码构建)
安装与启动步骤
-
1克隆 mpk 分支源码
README 要求带 --recursive 拉取子模块,并指定 mpk 分支,否则不是 Persistent Kernel 版本。
git clone --recursive --branch mpk https://www.github.com/mirage-project/mirage -
2进入项目目录
切换到克隆下来的 mirage 目录,后续安装与运行都在该目录下进行。
cd mirage -
3源码安装
以可编辑模式安装 MPK,会从源码构建,耗时较长,加 -v 可看到详细编译日志。
pip install -e . -v -
4设置 MIRAGE_HOME
把环境变量指向当前源码根目录,供运行时定位 Mirage 相关文件。
export MIRAGE_HOME=$(pwd) -
5运行原生内核 demo
先用原生 Triton 和 FlashInfer 内核跑通 Qwen3-8B demo,作为后续对比基线。
python demo/qwen3/demo.py -
6编译并运行 MegaKernel
加上 --use-mirage 让 MPK 把模型编译成 megakernel 后执行,观察延迟变化。
python demo/qwen3/demo.py --use-mirage -
7开启 profiling
再加 --profiling 可视化每个任务的执行时间线,用于定位性能瓶颈。
python demo/qwen3/demo.py --use-mirage --profiling
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
MIRAGE_HOME | 是 | 指向 Mirage 源码根目录,安装后需导出供运行时使用 | /home/user/mirage |
--use-mirage | 否 | demo 参数,启用 MPK 编译并执行 megakernel | python demo/qwen3/demo.py --use-mirage |
--profiling | 否 | demo 参数,可视化各任务的执行时间线 | python demo/qwen3/demo.py --use-mirage --profiling |
如何确认成功
demo 脚本正常结束且终端无报错;加 --use-mirage 后能完成 megakernel 编译并输出推理结果。
常见问题
Q:为什么 pip 装不到预编译包?
A:README 说明团队正在制作 MPK 的预编译 wheel(2025/06/19 更新),当前最快方式是按文档从源码安装。
Q:怎么对比 megakernel 的加速效果?
A:先运行 python demo/qwen3/demo.py 走原生 Triton/FlashInfer 内核,再加 --use-mirage 运行同一 demo 对比延迟。
Q:如何看到每个任务的耗时分布?
A:在命令后追加 --profiling,即可可视化各任务的执行时间线。
Q:支持的模型和 Python/GPU 版本是什么?
A:README 只给出了 Qwen3-8B 的示例脚本,未明确列出模型支持范围与版本要求,需以仓库当前文档为准。
注意事项
- 必须使用 --branch mpk 分支,主分支不是 MPK 版本。
- clone 时不要省略 --recursive,否则子模块缺失会导致安装失败。
- pip install -e . -v 会本地编译 Cuda 扩展,耗时较长,请预留编译时间。
- export MIRAGE_HOME 只在当前 shell 生效,建议写入 shell 配置文件以便持久化。
核心亮点
- 将多算子融合为单一持久化 MegaKernel,减少内核启动与调度开销
- 针对 LLM 推理低延迟场景设计,小批量下收益更明显
- 用 Cuda 直接实现,贴近硬件,便于做底层性能调优
不足之处
- 项目较新,文档和社区生态还在早期,接入成本可能偏高
- 与主流推理框架的集成方案尚不明确,通用性待验证
适用场景
- 在线对话场景下降低单次推理首 token 延迟
- 边缘或单卡部署时减少内核启动开销
- 推理引擎开发者研究内核融合与持久化内核方案
替代项目
vLLM、TensorRT-LLM
项目介绍
下一篇:llm-ollama
同类项目推荐
freebuff-proxy
开源
聚合多账号,一键接入 OpenAI 兼容 API,轻松管理会话。
OpenAI-compatible gateway for FreeBuff coding models. Token pool, session lifecycle,···
microduck
开源
用 Rust 造一只会走路的桌面小鸭,快速上手双足机器人。
A Tiny biped duck robot
soperator
开源
用 Kubernetes 原生方式运行 Slurm,简化 HPC 集群管理。
Run Slurm in Kubernetes
ollama
开源
一条命令本地跑起大模型,免费、私密、不卡顿
Get up and running with Kimi, GLM, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other···