NInfer 深度解析:专为单张 5090 而生的 C++/CUDA 推理引擎

结论先行: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 反着来:

  1. C++/CUDA 手写 kernel:不套 PyTorch 通用算子,attention、GEMM、KV 管理都针对单卡手写,没有通用层的 launch overhead 和内存拷贝税。
  2. 针对 5090 的 Blackwell 特性:5090 的 32GB GDDR7、高带宽、Blackwell 的 FP8/NVFP4 原生格式,NInfer 直接吃这些硬件特性(而不是走通用 fallback 路径)。
  3. 模型特化:只深做 Qwen3.6 / 3.8 系列,意味着专家路由、KV 布局、量化 kernel 都能按这个模型的结构定制,不用为"万一换个模型"留通用接口。

3. 什么时候该用 NInfer

适合

不适合

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%

几个读数:

5. 和 Strata 的关系(别混淆)

社区常把 NInfer 和 Strata 放在一起说,两者是上下游不是竞品:

6. 踩坑记录

  1. 别拿 vLLM 的基线去套 NInfer。它是单卡+单模型特化,吞吐数字和通用引擎不可直接比——比的是"同一张 5090 + 同一个 Qwen 模型下谁更快",不是"谁覆盖面广"。
  2. 它不是服务网关。要对外高并发 API,NInfer 前面还得套一层批处理/服务框架,或者直接换 vLLM/SGLang。
  3. 当前只支持 5090,别期待它跑别的卡/模型。官方边界写死"单张 5090 + Qwen 系列 + 构建拒绝非 sm_120a 架构 + no multi-GPU",跑非 Qwen 模型或 5080/4090 及老卡不是它的设计目标。
  4. NVFP4/FP8 要配 5090(Blackwell)。这套量化 kernel 是冲着 5090 的 GDDR7 + NVFP4/FP8 原生格式去的,老卡(4090 及以前)根本没有 sm_120a 架构,构建直接拒绝,别期待跨代等效。
  5. 首次要下载 .ninfer 模型产物 + 从源码构建。NInfer 没有安装包/预编译二进制,要 CMake 从源码 build(CUDA 13.1 是验证过的工具链,要求 sm_120a),再 hf download 官方 .ninfer 产物;v2 老产物要本地升级到 v3 才能被当前引擎读。
  6. 星数是社区数据,不是性能承诺。约 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 数为社区统计,非官方恒定基线。