P100 上 llama.cpp 精度 bug 修复

apollo_mg · reddit · 2026-07-12

作者发现 llama.cpp 在 **sm_60 的 P100** 上会错误走一条“fp16 更快”的 CUDA 路径,导致精度损失;而 **GTX 10 系列 / P40** 早已被排除在外,P100 却因为漏判而中招。 他给出的修复只有 **3 行**,并用 **Qwen3.6-27B、wikitext-2** 对比了 fp32 参考 logits: - **Median KLD** 从 **0.0023 降到 0.000001**,约 **2300 倍** 改善 - **Top-token agreement** 从 **96.5% 提升到 99.9%** 性能上,这个“修正后”并没有代价:在 8k 深度下对 27B hybrid、4B dense、36B MoE 三类模型测试,prefill 基本无差异,decode 甚至约 **快 1.4%**。作者强调这只影响 **sm_60**,不会波及 4090/Volta/更新架构。 帖子最后还说明:这个补丁已经在相关 fork 中合并/排队,完整方法和数据写在他的技术文档里。

原文链接 →