- 合并来源:
run-20261019-190343(A / B / C1)
run-20261019-214025(C2)
run-20261019-212816(D)
- git:
b0c7ffc05e854acdbf3d88377d2393c5fd01785d
- serve sha256:
FFD20B9DE0AA3E91F4E3DC2595051FE07172284E275BDC3B58DF62BF8DBAE7B5
- profile(报告头部记录): TP2 (GPUs 0,1), INT8 KV,
--max-context 196608, --kv-capacity 196608, --prefill-chunk 2048, --max-concurrency 1, prefix reuse off, greedy, MTP3, thinking medium
- 统计口径:5 个场景;A/B/C1/C2/D 各 1 次;decode tok/s 按
(completion-1)/decode 计算;端到端 tok/s 为 completion/请求 s
0. 口径声明(重要)
- C1 与 C2/D 的上下文窗口设置不同,C1 单独列示,不参与合并、不参与 C vs D 对照。
- C2 与 D 的上下文窗口设置一致,仅 draft 配置不同(MTP3 + optimized head vs DFlash2 K=7 + optimized head),这是本轮唯一严格控制变量的对照,结论最可靠。
- C1 与 C2 不做均值;两份报告头部 profile 行文字相同,但实际窗口配置按测试方说明不同,具体差异项未在报告中记录,建议补充。
1. 变体说明
| 变体 |
run |
artifact |
窗口设置 |
draft 配置 |
是否参与 C vs D 对照 |
| A 官方 NVFP4 |
190343 |
qwen3_8_27b_nvfp4.ninfer |
未说明 |
MTP3 + optimized head |
— |
| B Coder390 V2 |
190343 |
...V2-NOT-FOR-V3.ninfer |
未说明 |
MTP3 + full head |
— |
| C1 Coder390 V3 |
190343 |
...DFlash2.ninfer |
设置 X(与 C2/D 不同) |
MTP3 + optimized head |
否(窗口不同) |
| C2 Coder390 V3 |
214025 |
...DFlash2.ninfer |
设置 Y |
MTP3 + optimized head |
是(基准) |
| D Coder390 V3 DFlash2 K=7 |
212816 |
...DFlash2.ninfer |
设置 Y(与 C2 一致) |
DFlash2 K=7 + optimized head |
是(对照) |
核心对照:C2 vs D 同 artifact、同窗口、仅 draft 配置不同,是本轮性能归因最干净的实验。
C1 因窗口设置不同,只能作为“另一配置下的参考”,不能与 C2/D 直接对比。
2. 总览指标
| 指标 |
A 官方 NVFP4 |
B V2 文本 |
C1 V3(设置X) |
C2 V3(设置Y) |
D V3 DFlash2 K=7(设置Y) |
| Prompt tok |
49,790 |
49,790 |
49,790 |
49,790 |
49,790 |
| 生成 tok |
20,992 |
20,992 |
19,710 |
19,710 |
19,198 |
| 总 tok |
70,782 |
70,782 |
69,500 |
69,500 |
68,988 |
| 加载 s |
71.9 |
31.2* |
73.5 |
74.1 |
79.7 |
| 请求 s |
239.0 |
248.2 |
228.2 |
228.4 |
230.2 |
| 进程 s |
313.3 |
281.8 |
304.0 |
305.0 |
312.4 |
| Prefill tok/s |
949.5 |
948.2 |
947.5 |
947.8 |
936.1 |
| Decode tok/s |
112.77 |
107.48 |
112.43 |
112.33 |
108.71 |
| 端到端 tok/s |
87.84 |
84.57 |
86.35 |
86.28 |
83.41 |
| MTP 接受率 |
70.6% |
71.3% |
70.3% |
70.3% |
43.9% |
| 截断 / 空回答 |
5 / 2 |
5 / 1 |
3 / 2 |
3 / 2 |
3 / 1 |
* B 的 artifact 测试前已被 page cache 预热,加载时间不可比。
读法:C2 与 D 同窗口,可直接对比;C1 与 C2 虽 token 完全一致、指标差异 < 0.4%,但窗口不同,不可合并、不可作为重复性证据。
3. 分场景 Decode 吞吐(tok/s)
| 场景 |
Prompt |
A |
B |
C1(设置X) |
C2(设置Y) |
D(设置Y) |
| s1_geometry |
131 |
112.20 |
108.70 |
114.32 |
114.19 |
119.60 |
| s2_impl |
235 |
118.88 |
112.42 |
117.19 |
117.01 |
116.93 |
| s3_debug |
759 |
110.01 |
102.57 |
107.15 |
107.02 |
92.13 |
| s4_refactor |
609 |
115.39 |
108.00 |
113.41 |
113.35 |
108.33 |
| s5_long_context |
48,056 |
105.75 |
104.48 |
107.46 |
107.47 |
102.22 |
4. 核心对照:C2 vs D(同 artifact、同窗口、仅 draft 配置不同)
| 指标 |
C2(MTP3,设置Y) |
D(DFlash2 K=7,设置Y) |
差异 |
| Decode tok/s |
112.33 |
108.71 |
−3.22% |
| 端到端 tok/s |
86.28 |
83.41 |
−3.33% |
| Prefill tok/s |
947.8 |
936.1 |
−1.23% |
| MTP 接受率 |
70.3% |
43.9% |
−26.4 pp |
| Completion tok |
19,710 |
19,198 |
−512 |
| 请求总时间 s |
228.4 |
230.2 |
+0.79% |
| s1_geometry decode |
114.19 |
119.60 |
+4.74% |
| s2_impl decode |
117.01 |
116.93 |
−0.07% |
| s3_debug decode |
107.02 |
92.13 |
−13.91% |
| s4_refactor decode |
113.35 |
108.33 |
−4.43% |
| s5_long_context decode |
107.47 |
102.22 |
−4.89% |
解读(严格对照):
- DFlash2 K=7 使 MTP 接受率从 70.3% 跌到 43.9%(−26.4 pp),是整体 decode 下降 3.22% 的直接原因。
- 分场景呈两极分化:
- s1 短场景 +4.74%:prompt 131、生成 6,144,draft 被接受概率高,DFlash2 有收益;
- s3_debug −13.91%:长推理/调试场景退化最明显,draft 越长后续 token 接受率越低;
- s4/s5 −4.4%~−4.9%:中等退化;
- s2 基本持平(−0.07%)。
- 结论方向明确:当前配置下 DFlash2 K=7 不推荐替代 MTP3,仅短场景有小幅收益,长推理与长上下文场景代价明显。
5. C1 单独说明(窗口设置不同,不参与合并)
| 指标 |
C1(设置X) |
C2(设置Y) |
差异 |
| Decode tok/s |
112.43 |
112.33 |
−0.09% |
| 端到端 tok/s |
86.35 |
86.28 |
−0.08% |
| Prefill tok/s |
947.5 |
947.8 |
+0.03% |
| MTP 接受率 |
70.3% |
70.3% |
持平 |
| 请求 s |
228.2 |
228.4 |
+0.09% |
| 进程 s |
304.0 |
305.0 |
+0.33% |
| 加载 s |
73.5 |
74.1 |
+0.8% |
| Completion tok |
19,710 |
19,710 |
一致 |
| 各场景生成 tok |
6,144 / 3,588 / 3,322 / 4,096 / 2,560 |
同左 |
完全一致 |
解读(谨慎):
- C1 与 C2 的 token 序列与各场景生成量完全一致,性能差异均 < 0.4%。
- 但两者窗口设置不同,因此:
- 不能把差异解释为“同输入重复性”或“随机波动”;
- 不能把两次结果合并求均值;
- 差异小只能说明本次 5 个场景未触及受该窗口设置影响的关键路径,或该设置未改变生成行为;具体原因需核实设置差异项后才能判断。
- 上一版报告中“C 复测稳定性极好、同输入确定性极好”的结论撤回:token 一致是事实,但归因不成立。
6. 合并结论
- 严格对照(C2 vs D,同窗口同 artifact):DFlash2 K=7 使 MTP 接受率 70.3% → 43.9%,整体 decode 112.33 → 108.71(−3.22%),端到端 86.28 → 83.41(−3.33%)。当前配置下 DFlash2 K=7 不推荐替代 MTP3。
- 分场景两极分化:D 仅在 s1 短场景 +4.74%,s3_debug 退化 −13.91%,s4/s5 −4.4%~−4.9%,s2 持平。
- 整体 decode 排序:A 112.77 ≈ C1 112.43 ≈ C2 112.33 > D 108.71 > B 107.48。
- 端到端排序:A 87.84 > C1 86.35 ≈ C2 86.28 > B 84.57 > D 83.41。C1/C2 的 completion 比 A/B 少 1,282 tok,端到端受生成长度影响,不宜简单等同于“更慢”。
- C1 不可与 C2/D 合并:窗口设置不同,C1 单独列示;C1 与 C2 指标差异 < 0.4% 但归因不明,需补充具体设置差异。
- prefill 五者接近(936–950 tok/s),D 略低;长上下文 s5 的 prefill 约 50.2–50.9 s,是端到端主要成本。
- MTP 接受率:B 71.3% ≈ A 70.6% ≈ C1/C2 70.3% ≫ D 43.9%。
- 分场景:A 在 s2/s3/s4 领先;C1/C2 在 s5 领先;D 仅在 s1 领先;B 全程偏低,s3_debug 最弱。
- 加载时间不可比:B 31.2 s(page cache 预热)vs A/C1/C2/D 约 72–80 s;D 的 79.7 s 也受缓存状态影响。
- 统计与质量限制不变:每场景 1 次;13/15 截断、5 个空回答;最大 prompt 48,056 tok 仅为容量 24.4%;无 coding 正确性评测。只能作为初步性能参考。
一句话:A 与 C1/C2 的 decode 性能持平、A 端到端略优;B 低约 4.7%;C2 与 D 同窗口同 artifact 的严格对照显示,DFlash2 K=7 使 MTP 接受率从 70% 掉到 44%、整体 decode 反降 3.22%,仅 s1 短场景 +4.74%——当前配置下 DFlash2 K=7 不推荐替代 MTP3。
7. 解读注意事项
- C2 vs D 是本轮最可靠对照:同 artifact、同窗口、仅 draft 配置不同,差异可归因于 MTP3 vs DFlash2 K=7。
- C1 不可合并:窗口设置与 C2/D 不同,本报告单列,不取均值;建议补充具体差异项(如 kv-capacity、max-context、prefix reuse、thinking 等是否不同)。
- 撤回“C 复测稳定性”结论:C1/C2 token 完全一致是事实,但窗口不同,不能作为同输入确定性证据。
- 截断严重:15 个请求中 13 个达到
max_tokens(output_limit),共 5 个回答 content 为空、预算全部用于 reasoning。completion 是截断值,不是完整答案长度;decode tok/s 不受截断影响,但总 token/总时间会受停止位置影响。
- 样本量小:每场景仅 1 次;decode 差异 < 3% 不足以视为稳定优势;D 的 −3.22% 略超阈值,且由接受率 −26.4 pp 佐证,方向可信度高于纯吞吐差异。
- 加载不可比:B 加载 31.2 s vs 其余约 72–80 s,受 OS page cache 影响;不应据此判断冷启动性能。
- 上下文未填满:最大 prompt 48,056 tok,仅为 196,608 容量的 24.4%,未覆盖接近满上下文场景。
- 质量结论不可下:当前只有性能指标,没有 coding 正确性 / 测试通过率评测。
- 文本编码:响应 JSON 的文本曾被 Windows PowerShell 5.1 按 Latin-1 解码 UTF-8 而乱码,已用无损的 Latin-1→UTF-8 反转修复;token/时间指标来自 server JSONL,未受影响。
8. 附录:各变体详细场景表
A-official-nvfp4
- Official Qwen3.8-27B NVFP4, MTP3 + optimized proposal head
- artifact:
F:\models\ninfer\qwen3_8_27b_nvfp4.ninfer (23,719,715,844 bytes)
- server load: 70.8 s; startup(/health): 71.9 s; process: 313.3 s
- tokens: prompt 49,790 + completion 20,992 = 70,782; prefill 52.4 s (949.5 tok/s); decode 186.1 s (112.77 tok/s); MTP 接受率 70.6%
| 场景 |
Prompt |
生成 |
TTFT s |
prefill s |
decode s |
total s |
decode tok/s |
finish |
| s1_geometry |
131 |
6,144 |
0.365 |
0.36 |
54.75 |
55.18 |
112.20 |
output_limit |
| s2_impl |
235 |
4,096 |
0.393 |
0.39 |
34.45 |
34.88 |
118.88 |
output_limit |
| s3_debug |
759 |
4,096 |
0.832 |
0.83 |
37.22 |
38.10 |
110.01 |
output_limit |
| s4_refactor |
609 |
4,096 |
0.696 |
0.69 |
35.49 |
36.23 |
115.39 |
output_limit |
| s5_long_context |
48,056 |
2,560 |
50.373 |
50.16 |
24.20 |
74.60 |
105.75 |
output_limit |
B-coder390-v2
- Coder390 W4A4 V2 (text), MTP3 + full proposal head
- artifact:
models\Qwen3.8-27B-Coder390-W4A4-MTP-DFlash2-NInferV2-NOT-FOR-V3.ninfer (23,477,696,516 bytes)
- server load: 29.8 s; startup(/health): 31.2 s; process: 281.8 s
- tokens: prompt 49,790 + completion 20,992 = 70,782; prefill 52.5 s (948.2 tok/s); decode 195.3 s (107.48 tok/s); MTP 接受率 71.3%
| 场景 |
Prompt |
生成 |
TTFT s |
prefill s |
decode s |
total s |
decode tok/s |
finish |
| s1_geometry |
131 |
6,144 |
0.368 |
0.37 |
56.51 |
56.94 |
108.70 |
output_limit |
| s2_impl |
235 |
4,096 |
0.397 |
0.39 |
36.42 |
36.86 |
112.42 |
output_limit |
| s3_debug |
759 |
4,096 |
0.833 |
0.83 |
39.92 |
40.80 |
102.57 |
output_limit |
| s4_refactor |
609 |
4,096 |
0.699 |
0.70 |
37.92 |
38.66 |
108.00 |
output_limit |
| s5_long_context |
48,056 |
2,560 |
50.443 |
50.23 |
24.49 |
74.96 |
104.48 |
output_limit |
C1-coder390-v3(run-190343,窗口设置 X)
- Coder390 W4A4 V3 (vision-capable), MTP3 + optimized proposal head
- artifact:
F:\models\ninfer\Qwen3.8-27B-Coder390-EfficientThink-W4A4-MTP-DFlash2.ninfer (23,773,675,264 bytes)
- server load: 72.9 s; startup(/health): 73.5 s; process: 304.0 s
- tokens: prompt 49,790 + completion 19,710 = 69,500; prefill 52.5 s (947.5 tok/s); decode 175.3 s (112.43 tok/s); MTP 接受率 70.3%
| 场景 |
Prompt |
生成 |
TTFT s |
prefill s |
decode s |
total s |
decode tok/s |
finish |
| s1_geometry |
131 |
6,144 |
0.365 |
0.36 |
53.74 |
54.16 |
114.32 |
output_limit |
| s2_impl |
235 |
3,588 |
0.394 |
0.39 |
30.61 |
31.04 |
117.19 |
stop_token |
| s3_debug |
759 |
3,322 |
0.833 |
0.83 |
31.00 |
31.86 |
107.15 |
stop_token |
| s4_refactor |
609 |
4,096 |
0.697 |
0.69 |
36.11 |
36.85 |
113.41 |
output_limit |
| s5_long_context |
48,056 |
2,560 |
50.502 |
50.27 |
23.81 |
74.34 |
107.46 |
output_limit |
注:C1 与 C2/D 窗口设置不同,仅作参考,不参与合并或 C vs D 对照。
C2-coder390-v3(run-214025,窗口设置 Y,与 D 一致)
- Coder390 W4A4 V3 (vision-capable), MTP3 + optimized proposal head
- artifact: 同 C1 (23,773,675,264 bytes)
- server load: 72.9 s; startup(/health): 74.1 s; process: 305.0 s
- tokens: prompt 49,790 + completion 19,710 = 69,500; prefill 52.5 s (947.8 tok/s); decode 175.4 s (112.33 tok/s); MTP 接受率 70.3%
| 场景 |
Prompt |
生成 |
TTFT s |
prefill s |
decode s |
total s |
decode tok/s |
finish |
| s1_geometry |
131 |
6,144 |
0.368 |
0.37 |
53.79 |
54.23 |
114.19 |
output_limit |
| s2_impl |
235 |
3,588 |
0.394 |
0.39 |
30.66 |
31.09 |
117.01 |
stop_token |
| s3_debug |
759 |
3,322 |
0.835 |
0.83 |
31.03 |
31.91 |
107.02 |
stop_token |
| s4_refactor |
609 |
4,096 |
0.697 |
0.69 |
36.13 |
36.87 |
113.35 |
output_limit |
| s5_long_context |
48,056 |
2,560 |
50.485 |
50.25 |
23.81 |
74.33 |
107.47 |
output_limit |
D-coder390-v3-dflash2-k7(run-212816,窗口设置 Y,与 C2 一致)
- Coder390 W4A4 V3 (vision-capable), DFlash2 K=7 + optimized proposal head
- artifact: 同 C1/C2 (23,773,675,264 bytes)
- server load: 78.9 s; startup(/health): 79.7 s; process: 312.4 s
- tokens: prompt 49,790 + completion 19,198 = 68,988; prefill 53.2 s (936.1 tok/s); decode 176.6 s (108.71 tok/s); MTP 接受率 43.9%
| 场景 |
Prompt |
生成 |
TTFT s |
prefill s |
decode s |
total s |
decode tok/s |
finish |
| s1_geometry |
131 |
6,144 |
0.362 |
0.36 |
51.36 |
51.77 |
119.60 |
output_limit |
| s2_impl |
235 |
3,069 |
0.397 |
0.39 |
26.24 |
26.66 |
116.93 |
stop_token |
| s3_debug |
759 |
3,329 |
0.841 |
0.84 |
36.12 |
37.00 |
92.13 |
stop_token |
| s4_refactor |
609 |
4,096 |
0.703 |
0.70 |
37.80 |
38.54 |
108.33 |
output_limit |
| s5_long_context |
48,056 |
2,560 |
51.137 |
50.90 |
25.04 |
76.19 |
102.22 |
output_limit |
报告基于 4 份 run 的 server JSONL 与汇总 MD。核心对照 C2 vs D 同窗口同 artifact、仅 draft 配置不同;C1 因窗口设置不同单列,不参与合并。