把 Qwen 跑出 1300 tok/s,这个开源项目只认 RTX 5090

你的 RTX 5090,是不是也经常「跑不满」?

32G 显存的旗舰卡,跑 Qwen 这种 27B 的模型,token 吞吐勉强三位数,风扇都懒得转。卡本身没毛病,问题出在通用框架上——它们要照顾全世界的显卡、全世界的模型,就像大食堂的师傅,一道菜得照顾所有口味,没法专门给你开小灶。

但有人就是不信这个邪。

GitHub 上有个叫 NInfer 的开源项目:从零手写了一个 C++/CUDA 推理引擎,只为一件事——让 Qwen 在单张 RTX 5090 上跑到极致。最近热度很高的 Qwen3.8-27B 它已经支持了,而且跑得飞快。

https://github.com/Neroued/ninfer

1、NInfer 是个啥?

如果说 llama.cpp 那种通用框架是大食堂,NInfer 就是只认一个食客的私厨:

  • 从零手写,不套现成的框架,不碰 llama.cpp 那种通用路线;
  • 只服务一张卡:NVIDIA GeForce RTX 5090(sm_120a);
  • 只服务一小撮模型:明确注册的 Qwen 检查点;
  • 自带本地 CLI 和 OpenAI / Anthropic 兼容的 HTTP API,文本、图像、视频都能喂。

菜谱就几道,别的单子一概不接。作者的原话:我只为一小撮模型 + 一张卡做极限优化,别的我不管。

这种「窄而深」的玩法,恰恰是它跑出恐怖数据的底气。

2、支持哪些模型?

目前注册的模型就这几个:

模型 量化方式 权重大小
Qwen3.6-27B groupwise-int 16.29 GiB
Qwen3.6-27B NVFP4 17.07 GiB
Qwen3.8-27B groupwise-int 16.96 GiB
Qwen3.8-27B NVFP4 20.02 GiB
Qwen3.6-35B-A3B groupwise-int 21.22 GiB

另外,最近热度很高的 Qwen3.8-27B 就在名单里,还有两种量化配置可选。NVFP4 走的是 Blackwell 架构原生的 FP4 张量核心,在 5090 上属于「物理外挂」级别的玩法。

权重不是 GGUF,也不是 Safetensors,而是打包好的 .ninfer 专属格式。去作者的 Hugging Face 组织(neroued)按需下载就行。

3、跑得多快?

官方在 RTX 5090 上实测的数据如下:

并发解码吞吐(8 个并发请求、8192 token 生成):

  • Qwen3.6-35B-A3B:1313.8 tok/s(聚合)
  • Qwen3.6-27B NVFP4:1146.9 tok/s,是单请求吞吐的 5.67 倍
  • Qwen3.8-27B NVFP4:766.6 tok/s,同样有 5.33 倍的并发扩展

单请求场景(预填 7680 token 的提示词):

  • Qwen3.8-27B NVFP4:预填 8340.4 tok/s,解码 71.2 tok/s;
  • 开 MTP3 投机解码后,长推理场景直接干到 151~220 tok/s。

更要命的是质量没掉。官方用 Qwen3.8-27B NVFP4 跑基准测试:AIME 2025 和 AIME 2026 双双 96.67%,GPQA-Diamond 90.40%。压了权重、提了速度,基准跑下来反而比不少人跑的原版还稳。

4、为什么能这么快?

说穿了就三招:

1. MTP 投机解码。 让模型先脑补 draft token,猜对了直接采纳,一次吃下 2~4 个 token。官方数据里 MTP3 接受率 70% 上下,结构化输出场景能到 90%。

2. NVFP4 量化 + Blackwell 原生指令。 FP4 张量核心、MLA 的 FP8 投影,把 5090 的硬件潜力挖到见底。

3. CUDA Graph + 分块预填 + 前缀复用。 这些是推理优化的基本功,NInfer 把它们和前面两项叠在一起,吃满了。

对了,35B-A3B 那个版本还支持更激进的 DFlash 投机解码,draft 窗口最多拉到 15。

5、怎么上手?

要求有点挑,但冲着这性能值得折腾:

  • 64 位 Linux;
  • RTX 5090 + 支持 CUDA 13.1 的驱动;
  • CMake 3.28+、C++20 编译器、FFmpeg 开发库、libcurl、Ninja。

编译三步走:

git clone https://github.com/Neroued/ninfer.git
cd ninfer
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build --parallel

然后去 Hugging Face 下载对应模型的 .ninfer 权重,一条命令开跑:

./build/apps/ninfer models/qwen3_8_27b.ninfer \
  --prompt "Explain prefill and decode in three sentences." \
  --max-context 16384 --max-new 256 \
  --spec mtp --draft-tokens 3 --lm-head-draft

想当服务用也行,ninfer-serve 起一个 OpenAI / Anthropic 兼容的 HTTP 接口,普通 API 客户端直接就能连。

6、泼盆冷水:它的局限

好话说完了,边界也得讲清楚,省得你踩坑:

  • 只有 Linux 能用,Windows 用户暂时别想;
  • 只认 RTX 5090 一张卡,4090、5080 都不行,构建阶段直接拒绝其它架构;
  • 只支持上面那几个模型,想换别的?不存在的;
  • 不支持多卡、不支持 CPU offload、不做分布式,就死磕单卡单模型;
  • 没有预编译安装包,得自己从源码编译。

说白了,NInfer 就是个专为 5090 用户打造的 Qwen 引擎

7、总结一下

如果你手上有 RTX 5090,又天天跑 Qwen 系模型,建议直接去 star 一下试一把——同样的硬件,别人跑 100 tok/s,它能跑出好几倍,还是开源免费的(Apache-2.0)。

至于它为什么不支持你家 4090?别问,问就是作者任性,只做极致。

项目地址:https://github.com/Neroued/ninfer

posted on 2026-08-19 16:05  shmiluyu  阅读(8)  评论(0)    收藏  举报