
单卡 LLM 推理引擎 NInfer 完全解析为什么它能在一张 RTX 5090 上跑出 1146 tok/s【免费下载链接】ninferHigh-performance single-GPU inference for selected model checkpoints and GPUs.项目地址: https://gitcode.com/gh_mirrors/ni/ninferNInfer 是一个用 C/CUDA 从零构建的单卡 LLM 推理引擎专为 NVIDIA GeForce RTX 5090 打造。它让 Qwen3.6-27B / Qwen3.8-27B / Qwen3.6-35B-A3B 等模型在一张显卡上以 8 路并发饱和解码时跑出1,146.9 tok/s的聚合吞吐——单请求解码也能达到 250 tok/s 级别。本文将从普通用户的视角拆解这个数字背后的 4 个关键工程决策并附上快速上手步骤。NInfer 是什么定位单卡 LLM 推理NInfer 的设计哲学是不做通用只做极致设计维度NInfer 的选择硬件一张 RTX 509032 GiBsm_120a架构构建时会拒绝其他 GPU 架构模型启动时固定一个常驻模型提供 5 个官方.ninfer制品并发启动时确定 1~8 路活跃请求有界 FIFO 排队不抢占输入文本、单图/多图、视频等混合多模态消息接口本地 CLI OpenAI Chat/Responses、Anthropic Messages 兼容 HTTP 服务支持流式与工具调用KV 存储BF16、INT8、FP8、NVFP4 等低精度 KV分页池统一管理上图为 NInfer 多模态 TTFT首 token 延迟基准测试使用的合成输入图案之一引擎对图片/视频的编码与解码走同一套 HTTP 服务路径。测试图集见 bench/fixtures/ttft/media/它刻意放弃的能力也同样明确不支持多 GPU、请求抢占、优先级 QoS 和权重换入换出。这些放弃正是性能的来源——详见下文。1146 tok/s 是怎么测出来的数字必须配上测量口径才有意义。这个吞吐来自 docs/performance/qwen3.6-27b.md 中记录的**解码饱和decode saturation**实验模型Qwen3.6-27Bnvfp4权重开启 MTP3 投机解码 CUDA Graphs负载C 路并发每路生成 8,192 token上下文上限 16,384 token口径只统计稳态区间无 prefill、batch 恒等于 C 的完整秒数即持续解码速率并发 C稳态解码 (tok/s)MTP 接受率相对 C1 加速1202.469.3%1.00×2399.771.4%1.97×4699.769.3%3.46×81,146.968.6%5.67×全部 30 个请求无 CUDA 错误、无 OOM 地跑满输出上限共产出 245,760 个 token。对照同一硬件下的groupwise-int权重C8 仅 535.0 tok/s可以看到权重量化格式本身就贡献了 2 倍以上的差距。完整测量规则见 docs/performance/methodology.md各模型详细数据索引在 docs/performance.md。高性能背后的 4 个关键工程1. 单卡专用架构用不做换速度NInfer 把运行时约束在启动时就全部固定一张 GPU、一个模型、一个共享 KV 池、1~8 条活跃请求通道。请求路径只有四层docs/maintainer/engine-architecture.mdGatewayHTTP/CLI 协议层 → Frontend分词、模板、多模态预处理 → Engine请求调度、资源、生命周期 → Program模型物理执行、KV/状态存储因为并发上限只有 8引擎可以为精确 batch 大小预建 CUDA Graph每个 decode round 把所有就绪请求组成紧凑批次直接回放已捕获的图绕开逐算子的 CPU 启动开销。普通 decode 路径不跑目录扫描、不做压力搜索GPU 上只有纯模型计算。2. 自研 CUDA 算子 混合量化权重Decode 吞吐是内存带宽瓶颈型负载NInfer 在 src/ops/ 下为每种权重格式写了原生融合 kernel矩阵乘、残差加、SwiGLU、RMSNorm、RoPE 都可以一次读、一次写完成。官方制品甚至混用多种量化格式——例如 27B 的 groupwise-int 配方把 Q/K 投影压成 Q4、gate/V 压成 Q5docs/weight-conversion.mdNVFP4 制品则直接导入 4-bit 权重并搭配 BF16 关键投影。低比特权重 更少的显存读取 更高的 decode 速率这就是 nvfp4 与 groupwise-int 之间 2 倍以上差距的根源。NInfer 的公开基准不仅测纯文本tools/bench/ttft/ 用这类合成图案覆盖多模态负载下的首 token 延迟、热复用与驱逐场景3. MTP 投机解码一张卡上的一次出多 tokenMTPMulti-Token Prediction是 Qwen3.5 架构自带的单层预测头。NInfer 用--spec mtp --draft-tokens 3让它先廉价地草拟 3 个 token再由目标模型一次前向验证草稿窗口 1~5 可调。上表中 68%~71% 的接受率意味着平均每轮实际产出约 3.4 个 token——验证通过时多出的 token 几乎是白送的。35B-A3B MoE 模型还支持 DFlash/DFlash2 草稿网络窗口最大 15见 docs/maintainer/dflash.md。提交/回滚由引擎原子完成被拒绝的草稿不会污染 KV 状态src/runtime/engine/。4. 分页 KV 缓存 低精度 KVKV 缓存是长上下文的显存大头。NInfer 用 64-token 为页的分页池docs/maintainer/paged-kv-cache.md统一管理所有活跃与保留的前缀并支持 FP8 E4M3、INT8 等低精度 KV 编码——24 万 token 的共享 KV 池在 C8 下仍让 27B 模型留出了 2 GiB 余量。更妙的是它的资源感知前缀复用相同前缀的 KV 完整续算状态会作为检查点保留在显存或 8 GiB 主机 pinned 内存里重复对话直接恢复而非重算 prefill显著降低重复负载的 TTFTdocs/maintainer/resource-scheduling-and-context-cache.md。单请求也不慢Prefill 与长上下文表现饱和解码之外单请求数据同样能说明问题Qwen3.6-27B nvfp4docs/performance/qwen3.6-27b.md场景速率7,680 token 提示词 prefill11,191.5 tok/s260,096 token 超长提示词 prefill2,510.6 tok/s单请求 MTP3 结构化输出 decode252.2 tok/s26 万 token 的 prefill 在单卡上仍需 100 秒量级这是当前所有单卡引擎的物理极限但 8K 级常规对话的首 token 延迟已被压到约 0.7 秒Server TTFT。各模型能力评测AIME、GPQA 等的原始计数记录在 model-cards/ 的模型卡片中。快速上手5 分钟部署本地单卡推理服务环境要求64 位 Linux、RTX 5090、支持sm_120a的 CUDA 工具链、CMake 3.28、C20 编译器、Ninja、FFmpeg 开发库。1. 克隆并构建仓库是只读的构建不会改动它git clone https://gitcode.com/gh_mirrors/ni/ninfer cd ninfer cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPERelease cmake --build build -j2. 下载官方制品以 Qwen3.8-27B NVFP4 为例然后启动服务./build/apps/ninfer-serve models/qwen3_8_27b_nvfp4.ninfer \ --max-context 240000 --kv-capacity 240000 \ --max-concurrency 2 --kv-dtype fp8 \ --device-state-slots 2 --host-state-slots 8 --host-kv-mib 8192 \ --spec mtp --draft-tokens 3 --lm-head-draft --preserve-thinking3. 像调用 OpenAI 一样调用它curl http://127.0.0.1:8080/v1/chat/completions \ -H Content-Type: application/json \ -d {model:qwen3.8-27b,messages:[{role:user,content:一句话回复}],max_tokens:64}也有一击式 CLI./build/apps/ninfer models/xxx.ninfer --prompt ... --spec mtp --draft-tokens 3。完整选项见 docs/cli.md 与 docs/serving.md真实请求示例含多模态与长文本在 examples/cli/Docker 部署流程见 Dockerfile。小结一张消费级显卡的推理上限NInfer 证明了另一条技术路线的可行性放弃通用性围绕单张 RTX 5090 固定模型 小并发做全栈定制——自研融合算子、NVFP4 混合量化、MTP 投机解码、精确 batch 的 CUDA Graph 与低精度分页 KV 叠加起来让单卡聚合解码吞吐突破了 1,100 tok/s。如果你要在消费级硬件上跑本地大模型服务它给出的是一份相当完整的极致单卡参考实现。更多维护者文档集中在 docs/maintainer/项目总览见 README.md。【免费下载链接】ninferHigh-performance single-GPU inference for selected model checkpoints and GPUs.项目地址: https://gitcode.com/gh_mirrors/ni/ninfer创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考