NInfer 性能测量方法论:如何像官方一样复现 tok/s 与 TTFT 基准测试
NInfer 性能测量方法论如何像官方一样复现 tok/s 与 TTFT 基准测试【免费下载链接】ninferHigh-performance single-GPU inference for selected model checkpoints and GPUs.项目地址: https://gitcode.com/gh_mirrors/ni/ninfer想知道 NInfer 单卡推理到底有多快本文带你用官方同一套方法复现tok/s 吞吐与TTFT首 token 延迟基准测试从固定测试环境、指标定义到一条命令跑出可对比的报告全部讲清楚。一、先搞清楚NInfer 的三层基准测试体系NInfer 的性能数字不是一锤子测出来的而是分三层、各有分工详见 bench/README.md层级工具测什么能证明什么Op 层ninfer_op_bench系列单个算子Linear、Attention、RMSNorm…内核实现效率引擎层ninfer_bench完整 Engine 的 prefill/decode 吞吐引擎路线吞吐服务层ninfer-serve Python runner真实 HTTP 请求下的 tok/s 与 TTFT官方发布的性能数字⚠️ 新手最容易踩的坑Op 层的速率不能代表 HTTP 服务性能。官方文档明确要求三者边界不可混用见 bench/README.md 开头。本文重点教你复现第 2、3 层。二、官方通用测试环境复现数字的第一块基石官方所有公开数据都来自同一张NVIDIA RTX 509032 GiB的固定画像完整定义在 docs/performance/methodology.md 的 Common serving profile路由常驻ninfer-serve本地回环 OpenAI Chat CompletionsstreamfalsePrefill 分块1024 tokensKV 缓存Qwen3.8 用 FP8 E4M3 row-256Qwen3.6 用 INT8 group-64CUDA Graph 开启、前缀复用关闭采样固定温度 0.6、top-p 0.95、top-k 20贪心则为精确 argmax启动与预热不计入测量请求复现时只要改变其中任何一项结果就和官方数字不可直接对比——这正是方法论的价值所在。三、读懂 tok/s三个解码速率千万别混用NInfer 的方法论里最严谨的一点是把时间边界写死在指标定义里methodology.md Metrics and statistics 一节指标公式适合回答的问题Prefill phase (tok/s)prompt_tokens ÷ prefill 秒数长文档处理速度Server TTFT (ms)prepare vision prefill 三阶段之和服务端首响应快慢Decode phase (tok/s)(completion_tokens − 1) ÷ decode 秒数单请求解码速度Corpus decode (tok/s)总解码 token ÷ 整个语料 makespan一批请求整体有多快Steady decode (tok/s)稳态区间提交 token ÷ 区间秒数满并发下可持续吞吐 记住三种 decode 速率的时间分母不同官方严禁把它们放进同一个不带标签的列里。四、如何复现 tok/s 吞吐基准测试4.1 引擎级ninfer_bench先开启 benchmark 目标并构建约两步cmake -S . -B build -DNINFER_BUILD_BENCHMARKSON cmake --build build -j --target ninfer_bench然后跑一个 2048 输入 128 输出的用例./build/bench/ninfer_bench --weights out/qwen3_6_27b.ninfer -pg 2048,128 -r 5 --warmup 1它从冻结语料 bench/fixtures/bench_corpus.ids 中切片出精确 token 数只走公开的Engine::generate()报告 schema v15。想要整套矩阵可直接用编排脚本默认输出 JSON summary.csv 到profiles/bench/python3 tools/bench/run_ninfer_bench_matrix.py --preset core4.2 服务级真实 HTTP 吞吐官方模型页如 docs/performance/qwen3.6-27b.md里的表格全部由 tools/bench/run_serve_corpus.py 串行跑固定 fixture 得到。复现命令长这样python3 tools/bench/run_serve_corpus.py \ --serve build/apps/ninfer-serve \ --artifact qwen3_6_27bout/qwen3_6_27b.ninfer \ --mode mtp3 \ --output profiles/bench/my_mtp3_run工作负载是冻结的15 个 fixtureAIME 长推理 ×3 Code/Story/Translation/Structured ×12× 5 个种子 75 个请求定义见 examples/cli/manifest.json。输出包含run.jsonl原始请求响应、summary.csv/summary.md分类汇总——原始报告就是你复现结果的可审计证据。并发饱和测试C1/2/4/8 的 steady decode则用 tools/bench/run_serve_concurrency.py每个并发点都会新起一个 Serve 进程避免状态污染。五、如何测量 TTFT 首 token 延迟TTFT 在 NInfer 里有两个边界必须分清Server TTFT内部相位和prepare vision prefill 三阶段时长之和不含网络传输与排队外部流式 TTFT黑盒测量由 tools/bench/ttft/README.md 定义的客户端计时——TTFT t1 − t0其中 t0 是请求字节写出的瞬间t1 是收到第一个非空模型输出 delta的时刻。建连、JSON 序列化不算在内HTTP 头、usage 等元数据也不算模型输出。黑盒客户端只发公开 HTTP 请求从不调用 Engine、不读服务端日志保证测量的独立性。它使用冻结的文本/媒体 fixture——比如这 56 张字节确定、互不相同的 1024×1024 测试图bench/fixtures/ttft/README.md每张展开成 12 MiB 的 Vision 预处理张量专门压测媒体路径一条命令跑完整个受控 campaign自动为每个样本启动全新 Serve 进程、落盘 raw/summary 三件套python3 tools/bench/run_serve_ttft_campaign.py --campaign resource --samples 5汇总报告给出 min / 中位数 / max / MAD不发布QPS、P95 或推测性内部缓存动作——报告里没写的就不要自己脑补。六、像官方一样发布统计与对比规则 复现出数字只是第一步methodology.md 还规定了怎么诚实地使用它们单请求表报告算术平均 ± 样本标准差单波/单语料点没有样本偏差接受率acceptance在相位表里取逐请求比值的平均在语料表里取总接受/总起草两种聚合方式不可互换对比公式写死吞吐加速 new / baselinemakespan 加速 baseline / new异常样本重复、输出截断保留在统计里并在旁边标注不悄悄删数据每次复现记录日期、权重身份、Git 修订、硬件/工具链、样本数、运行配置七、复现陷阱清单新手速查✅KV 类型不匹配Qwen3.8 用--kv-dtype fp8Qwen3.6 用int8runner 会校验并记录实际 KV 表示随机续写同 prompt 种子在不同权重/后端下仍可能产生不同 token 总量报告时把 token 总数和速率一起贴出来别用旧 corpus 片段拼新结果并发点报告不可断点续传跨进程拼接会破坏 makespan 与稳态区间的定义预热与启动不算成绩官方画像中它们永远在计时窗口之外换硬件请重测固定参考带宽如 RTX 5090 的 1792 GB/s DRAM写进了 Op 层报告换卡后百分比全部作废八、延伸阅读测量与发布总纲docs/performance/methodology.md各模型实测结果页docs/performance.mdRunner 用法与报告文件说明tools/bench/README.md全部 Op 基准契约bench/README.md困惑度离线因果打分方法论docs/perplexity.md按这套方法跑一遍你得到的不只是几个 tok/s 数字而是一份别人可以逐行复核的性能证据——这正是 NInfer 官方数据的底气所在。【免费下载链接】ninferHigh-performance single-GPU inference for selected model checkpoints and GPUs.项目地址: https://gitcode.com/gh_mirrors/ni/ninfer创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Flutter跨平台实战:鸿蒙书法印章应用开发与原生桥接

Flutter跨平台实战:鸿蒙书法印章应用开发与原生桥接

我一直觉得,写毛笔字的人,案头总缺不了一两样趁手的数字化工具。练字的人都知道,落款要盖印,印文是什么、用的哪方印、盖在哪个位置、当时用的什么印泥,这些信息如果不记下来,过几个月再翻作品,…

2026/10/2 21:58:03 阅读更多 →
人像后期融合网站开发全攻略:从算法到论文答辩

人像后期融合网站开发全攻略:从算法到论文答辩

1. 题目本质与需求拆解:人像后期融合到底要做什么先聊点实际的。带过几年毕业设计,十有八九选“XX系统的设计与实现”的同学,第一反应都是上网找现成的框架,改个名字就交了。我身边也有不少同学一看到“人像后期融合网站”这个题目…

2026/10/2 21:58:03 阅读更多 →
省赛移动应用开发样题二备赛拆解:从技术栈选型到交付打磨

省赛移动应用开发样题二备赛拆解:从技术栈选型到交付打磨

拿到2026年广东省职业院校技能大赛(高职组)移动应用设计与开发赛项样题(二)之后,我做的第一件事不是打开代码编辑器,而是把这份样题来回翻了四遍,又把自己往年积累的移动应用开发笔记翻出来对照…

2026/10/2 21:58:03 阅读更多 →

最新新闻

Python发送邮件实战指南:从SMTP原理到自动化报表

Python发送邮件实战指南:从SMTP原理到自动化报表

做Python自动化的人,迟早会碰到“发邮件”这个需求。我最早写这东西是为了半夜盯服务器,CPU飙了要把日志推到我邮箱;后来做爬虫,每天把更新数据整理成Excel发给同事;再后来写公司内部的报表工具,直接定时往…

2026/10/2 22:34:49 阅读更多 →
Java+SpringBoot+Vue扶贫助农系统设计与实现解析

Java+SpringBoot+Vue扶贫助农系统设计与实现解析

做Java毕业设计辅导这几年,被问爆的一个题目就是“扶贫助农系统”。好多同学一上来就问:老师,基于javaspringbootvue的扶贫助农系统怎么做?源码怎么用?部署说明靠不靠谱?演示视频怎么录?说实话&…

2026/10/2 22:34:49 阅读更多 →
SQL直接生成JSON并自动转Word:数据库到报表的自动化链路

SQL直接生成JSON并自动转Word:数据库到报表的自动化链路

简介:面向SQL Server开发人员的实战型文档,聚焦数据库层自动生成JSON数据并供前端或业务系统调用。文档从JSON基本概念切入,重点讲解利用SYS.SYSCOLUMNS系统视图动态读取表结构,结合WITH子句与ROW_NUMBER()完成分页查询&#xff0…

2026/10/2 22:34:49 阅读更多 →
扶贫助农系统毕设实战:Spring Boot+Vue前后端分离开发全流程解析

扶贫助农系统毕设实战:Spring Boot+Vue前后端分离开发全流程解析

扶贫助农系统这类选题,在计算机毕设里属于典型的“看着简单、做起来全是细节”的方向。很多同学拿到题目第一反应是“不就是个商城吗”,结果真动手才发现,光用户角色、订单状态、权限控制这些就能绕晕。我前前后后帮人改过好几套这类毕设&…

2026/10/2 22:34:49 阅读更多 →
Python面向对象编程核心笔记:类、对象、继承与多态实战解析

Python面向对象编程核心笔记:类、对象、继承与多态实战解析

说实话,写Python学习笔记这玩意儿,我一开始也是随手记,写到第四部分“面向对象编程”的时候,发现前面那些变量、循环、函数的知识,全都在这里开始“串”起来了。如果你的学习路线跟我一样——先是基本语法,…

2026/10/2 22:34:49 阅读更多 →
DeepSeek V4.1 Pro测试聚焦Harness:本地部署与Agent编排实战

DeepSeek V4.1 Pro测试聚焦Harness:本地部署与Agent编排实战

1. 从一条测试消息说起:DeepSeek V4.1 Pro 到底在测什么 国庆前一周,几个技术群里同时冒出一条消息:DeepSeek V4.1 Pro 已经进入测试阶段,有望在国庆期间发布。消息本身很短,但底下跟的讨论量不小,因为这次…

2026/10/2 22:33:49 阅读更多 →

日新闻

从零搭建AI工程化:模型之外的完整闭环

从零搭建AI工程化:模型之外的完整闭环

先搞清楚一件事:从零开始做 AI 工程化,难的从来不是调模型、写提示词,而是把一套原型 Demo 变成长得像是“正经系统”的东西。你手里可能已经有了能跑通的代码,也可能刚读完一些概念,但真到了要把它变成可维护、可观测…

2026/10/2 0:00:20 阅读更多 →
大模型训练显存估计与混合精度训练实战指南

大模型训练显存估计与混合精度训练实战指南

1. 大模型训练显存估计与混合精度训练详解显存不够用,几乎是每个做大模型训练的人都会撞上的第一堵墙。你可能也经历过:模型代码写完了,数据管道跑通了,满心欢喜地按下训练启动脚本,结果几秒钟后终端弹出一行红字——C…

2026/10/2 0:00:20 阅读更多 →
小样本学习数据集选型指南:27个真正可用的高质量数据集

小样本学习数据集选型指南:27个真正可用的高质量数据集

1. 小样本学习的“弹药库”:为什么你总在找数据集,却总找不到真正能用的? 小样本、数据集——这两个词最近半年在我处理的200多个AI项目咨询里,出现频率排进前三。不是模型调不好,不是代码写不对,而是卡在…

2026/10/2 0:00:20 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/10/1 19:40:48 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/10/1 19:41:40 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/10/1 20:05:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 10:36:31 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 5:26:06 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 6:09:11 阅读更多 →