mirage

把整个LLM推理塞进一个GPU内核,砍掉反复启动开销

Mirage 是一个面向大语言模型推理的持久化内核编译项目,核心思路是把整个 LLM 推理流程编译成一个单一的 MegaKernel,而不是像传统方案那样为每个算子分别启动 GPU 内核。它主要解决的是 LLM 推理中频繁内核启动、算子间数据搬运和调度开销过大的问题,尤其在小批量、低延迟场景下这些开销会显著拖慢响应。项目用 Cuda 实现,通过持久化内核让 GPU 上的计算单元常驻,把多个计算阶段融合进一个内核里执行,减少启动和同步成本。它属于基础设施层工具,目标用户是推理引擎开发者和需要极致延迟优化的团队,可以作为底层执行方案集成到现有推理栈中。项目目前处于成长阶段,星标约 2500,适合关注 GPU 内核融合与 LLM 推理加速方向的人跟进研究。

开源 free 基础设施
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 2503
维护状态 活跃
是否开源
定价模式 free

项目数据

分类基础设施
开发团队mirage-project
所属国家
官网地址
定价模式free
价格说明开源项目,免费使用
访问状态
是否开源
开源协议Apache-2.0
主要语言Cuda
技术栈/模型
GitHub 星标★ 2503
30天Star增速
HF 下载量
上线时间2024-05-08 00:00:00
最近更新2026-09-18 00:00:00
维护状态活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-09-16
浏览次数0

使用教程

难度:进阶 约 20 分钟 部署方式:本地安装 7 步

环境要求

  • 支持 CUDA 的 NVIDIA GPU(项目用 Cuda 实现,README 未注明具体版本)
  • Python 3 与 pip 环境
  • git(需支持 --recursive 拉取子模块)
  • 可编译 Cuda 扩展的本地开发环境(pip install -e . 会从源码构建)

安装与启动步骤

  1. 1克隆 mpk 分支源码

    README 要求带 --recursive 拉取子模块,并指定 mpk 分支,否则不是 Persistent Kernel 版本。

    git clone --recursive --branch mpk https://www.github.com/mirage-project/mirage
  2. 2进入项目目录

    切换到克隆下来的 mirage 目录,后续安装与运行都在该目录下进行。

    cd mirage
  3. 3源码安装

    以可编辑模式安装 MPK,会从源码构建,耗时较长,加 -v 可看到详细编译日志。

    pip install -e . -v
  4. 4设置 MIRAGE_HOME

    把环境变量指向当前源码根目录,供运行时定位 Mirage 相关文件。

    export MIRAGE_HOME=$(pwd)
  5. 5运行原生内核 demo

    先用原生 Triton 和 FlashInfer 内核跑通 Qwen3-8B demo,作为后续对比基线。

    python demo/qwen3/demo.py
  6. 6编译并运行 MegaKernel

    加上 --use-mirage 让 MPK 把模型编译成 megakernel 后执行,观察延迟变化。

    python demo/qwen3/demo.py --use-mirage
  7. 7开启 profiling

    再加 --profiling 可视化每个任务的执行时间线,用于定位性能瓶颈。

    python demo/qwen3/demo.py --use-mirage --profiling

关键配置

配置项必填说明示例
MIRAGE_HOME指向 Mirage 源码根目录,安装后需导出供运行时使用/home/user/mirage
--use-miragedemo 参数,启用 MPK 编译并执行 megakernelpython demo/qwen3/demo.py --use-mirage
--profilingdemo 参数,可视化各任务的执行时间线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

项目介绍

mirage 是一个基础设施领域的开源项目,官方简介:Mirage Persistent Kernel: Compiling LLMs into a MegaKernel。项目使用 Cuda 开发,在 GitHub 上获得 2492 星标。

上一篇:llm-inference-handbook

下一篇:llm-ollama

同类项目推荐

freebuff-proxy 开源

聚合多账号,一键接入 OpenAI 兼容 API,轻松管理会话。

OpenAI-compatible gateway for FreeBuff coding models. Token pool, session lifecycle,···

★ 202 2026-08-20
microduck 开源

用 Rust 造一只会走路的桌面小鸭,快速上手双足机器人。

A Tiny biped duck robot

★ 8433 2026-09-10
soperator 开源

用 Kubernetes 原生方式运行 Slurm,简化 HPC 集群管理。

Run Slurm in Kubernetes

★ 435 2026-08-10
ollama 开源

一条命令本地跑起大模型,免费、私密、不卡顿

Get up and running with Kimi, GLM, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other···

★ 181124 2026-08-09