结论先行:NInfer(
github.com/Neroued/ninfer)是一个从头用 C++/CUDA 写的单 GPU 推理引擎,定位非常明确——榨干单张 RTX 5090 上的 Qwen 系列推理性能(Qwen3.6 / Qwen3.8 多个 Checkpoint,支持文本/图片/视频输入)。它和 vLLM、SGLang 这类"通用多硬件引擎"是两条路:通用引擎拼的是覆盖面,NInfer 拼的是"在特定 GPU + 特定模型上把性能榨到极限"。 2026 年社区数据约 2,150 star;Strata(4.6k star 的 125B MoE 引擎)在官方 credits 里明确把 NInfer 列为思路来源之一——说明它在"消费级单卡极限推理"这条线上是被同行认可的。
1. 它和通用引擎的根本区别
| 通用引擎(vLLM / SGLang / TensorRT-LLM) | NInfer | |
|---|---|---|
| 设计目标 | 覆盖面:多硬件、多模型、高并发服务 | 深度:单 GPU + 特定模型上性能极限 |
| 硬件 | 多卡、多厂商、分布式 | 单张 N 卡(5090 为典型目标) |
| 并发 | 连续批处理、服务网关 | 面向单请求极致吞吐(配合 Qwen 系列) |
| 模型 | 广(主流大模型都支持) | 深(Qwen3.6 / Qwen3.8 Checkpoint,文/图/视频) |
| 写法的代价 | 通用层抽象带来开销 | 手写 C++/CUDA kernel,无通用抽象税 |
一句话:要"什么都能跑、还能对外服务"选 vLLM/SGLang;要"我这张 5090 + 这个 Qwen,就要最快"看 NInfer。
2. 为什么"单卡 + 单模型"这条路能榨出性能
通用引擎为了支持 N 种硬件 × M 种模型,必须在抽象层做兼容——代价是 kernel 不能对每张卡、每个模型做特化。NInfer 反着来:
- C++/CUDA 手写 kernel:不套 PyTorch 通用算子,attention、GEMM、KV 管理都针对单卡手写,没有通用层的 launch overhead 和内存拷贝税。
- 针对 5090 的 Blackwell 特性:5090 的 32GB GDDR7、高带宽、Blackwell 的 FP8/NVFP4 原生格式,NInfer 直接吃这些硬件特性(而不是走通用 fallback 路径)。
- 模型特化:只深做 Qwen3.6 / 3.8 系列,意味着专家路由、KV 布局、量化 kernel 都能按这个模型的结构定制,不用为"万一换个模型"留通用接口。
3. 什么时候该用 NInfer
适合
- 手里就是一张 RTX 5090,要跑 Qwen3.6/3.8 系列,追求"这台机器上最快"。
- 单用户/低并发的本地推理:自己的 Agent、编码辅助、文/图/视频理解,不需要对外高并发服务。
- 想用 Blackwell 的 NVFP4/FP8 原生格式压模型、同时保住速度(通用引擎的量化 kernel 未必对 5090 优化到位)。
不适合
- 要对外提供高并发 API 服务(它是单 GPU、启动时最多 1-8 个活动请求的有界并发(bounded FIFO),不是服务网关,那正是 vLLM/SGLang 的主场)。
- 要跑非 Qwen 系模型(它是模型特化的,覆盖面窄是它的特性不是 bug)。
- 不是 5090 的卡:官方 README 明确"requires a single NVIDIA GeForce RTX 5090",构建会拒绝
sm_120a以外的 CUDA 架构,产品边界写死"one RTX 5090... per Engine、no multi-GPU"。即当前 NInfer 只针对 5090——5080、4090 及老卡都不在官方支持范围内,也不是"同代高端单卡通用"。
4. 官方实测数据(RTX 5090,一手数据)
来源:NInfer 官方 README 实测表(RTX 5090),一手数据。会随驱动/CUDA 版本、量化档位、上下文长度浮动;以下为官方给出的基准点。
并发解码(MTP3 推测解码,饱和态 tok/s / 接受率)
| 模型 | 量化 | C=1 | C=2 | C=4 | C=8 |
|---|---|---|---|---|---|
| Qwen3.6-27B | groupwise-int | 185.8 / 68% | 247.0 / 69% | 309.5 / 68% | 535.0 / 68% |
| Qwen3.6-27B | NVFP4 | 202.4 / 69% | 399.7 / 71% | 699.7 / 69% | 1,146.9 / 69% |
| Qwen3.6-35B-A3B(MoE) | groupwise-int | 642.5 / 69% | 907.2 / 66% | 1,213.5 / 70% | 1,380.7 / 68% |
| Qwen3.8-27B | groupwise-int | 136.5 / 44% | 253.3 / 45% | 398.1 / 46% | 582.4 / 46% |
| Qwen3.8-27B | NVFP4 | 147.7 / 46% | 291.0 / 49% | 522.2 / 46% | 922.4 / 46% |
单请求长上下文(MTP3,prefill tok/s)
| 模型 | 量化 | 7,680 token prefill | 260,096 token prefill | 结构化 MTP3 解码 |
|---|---|---|---|---|
| Qwen3.6-27B | NVFP4 | 11,191.5 | 2,510.6 | 252.2 |
| Qwen3.8-27B | NVFP4 | 12,819.1 | 4,016.4 | 231.7 |
| Qwen3.6-35B-A3B | groupwise-int | 17,705.4 | 5,247.0 | 779.6 |
能力评测(thinking 开启 + MTP3 + EvalScope,0-shot 规则打分)
| 模型 | AIME 2025 | AIME 2026 | GPQA-Diamond |
|---|---|---|---|
| Qwen3.6-27B NVFP4 | 93.33% | 93.33% | 84.34% |
| Qwen3.8-27B NVFP4 | 96.67% | 96.67% | 90.40% |
几个读数:
- MoE(35B-A3B)并发吞吐最能打:C=8 达 1,380 tok/s,是 27B 的 1.4-2 倍——NInfer 对 MoE 专家路由的 kernel 特化在单卡上收益很大。
- NVFP4 比 groupwise-int 快:C=8 下 Qwen3.6-27B NVFP4(1,147)明显快于 groupwise-int(535),Blackwell 的 NVFP4 原生格式是它的核心优势。
- 长上下文 prefill 仍能 2,000-5,000 tok/s:26 万 token 级读 prompt 极快,配合 24 万 token 上下文窗口 + MTP3 推测解码(draft 窗口 1-5),单卡就能跑"长文档 + 快出答案"。
5. 和 Strata 的关系(别混淆)
社区常把 NInfer 和 Strata 放在一起说,两者是上下游不是竞品:
- NInfer:单卡 + 单模型(Qwen)的极限推理引擎,偏"引擎层"。
- Strata:125B MoE 在消费级整机(单卡+大内存)上跑通的完整方案,官方 credits 明确把 NInfer 列为思路来源之一(连同 Splash、HyperQwen,基于 llama.cpp/ggml)。
- 简单记:Strata 把 NInfer 这类"单卡榨性能"的思路,扩展到了"整机分摊 125B MoE"的场景。两个一起看,能理解 2026 年"消费级硬件跑大模型"这条线的完整拼图。
6. 踩坑记录
- 别拿 vLLM 的基线去套 NInfer。它是单卡+单模型特化,吞吐数字和通用引擎不可直接比——比的是"同一张 5090 + 同一个 Qwen 模型下谁更快",不是"谁覆盖面广"。
- 它不是服务网关。要对外高并发 API,NInfer 前面还得套一层批处理/服务框架,或者直接换 vLLM/SGLang。
- 当前只支持 5090,别期待它跑别的卡/模型。官方边界写死"单张 5090 + Qwen 系列 + 构建拒绝非
sm_120a架构 + no multi-GPU",跑非 Qwen 模型或 5080/4090 及老卡不是它的设计目标。 - NVFP4/FP8 要配 5090(Blackwell)。这套量化 kernel 是冲着 5090 的 GDDR7 + NVFP4/FP8 原生格式去的,老卡(4090 及以前)根本没有
sm_120a架构,构建直接拒绝,别期待跨代等效。 - 首次要下载 .ninfer 模型产物 + 从源码构建。NInfer 没有安装包/预编译二进制,要 CMake 从源码 build(CUDA 13.1 是验证过的工具链,要求 sm_120a),再
hf download官方.ninfer产物;v2 老产物要本地升级到 v3 才能被当前引擎读。 - 星数是社区数据,不是性能承诺。约 2,600 star 是 2026-09/10 社区统计,性能数字随驱动版本、CUDA 版本、量化档位、上下文长度浮动,引用时标注"官方某配置实测",别当恒定值。
7. 参考来源
NInfer 的仓库地址、技术定位(C++/CUDA 单 GPU 引擎、Qwen3.6/3.8 Checkpoint、文/图/视频)以官方 GitHub 仓库 README 为准;本文第 4 节性能表为官方 README 一手实测(RTX 5090),随驱动/CUDA/量化/上下文浮动;star 数为社区统计,非官方恒定基线。
- NInfer(官方仓库):https://github.com/Neroued/ninfer
- Strata(官方 credits 将 NInfer 列为思路来源):https://github.com/Niko1221/Strata
- 通用引擎对照(vLLM / SGLang):https://github.com/vllm-project/vllm 、 https://github.com/sgl-project/sglang
- NVIDIA Blackwell(RTX 50 系列,NVFP4/FP8 原生格式):https://www.nvidia.com/en-us/geforce/