Prhub

#20717 [CI] Add Per-Tensor, Blockwise FP8 Tests on SM120

原始 PR 作者 DerekY2 合并时间 2026-04-02 09:20 文件变更 1 提交数 2 评论 7 代码增减 +86 / -0

执行摘要

为 SM120 GPU 添加 FP8 量化模型测试,覆盖逐张量和分块量化格式。

根据PR body描述,动机是“改进SM120上量化模型测试的覆盖率”,并明确指出这是解决#20600问题的多项措施之一。现有测试已包含Blackwell多GPU上的FP4覆盖,以及其他测试套件中的FP8/MoE/MLA准确性测试,但缺少在单5090/SM120上的FP8量化模型测试。PR作者DerekY2在issue评论中也确认了添加Qwen模型以覆盖不同量化格式(分块vs逐张量)的考虑。

对于技术管理者,此PR值得快速浏览以了解测试覆盖扩展方向;对于工程师,除非负责量化或CI测试,否则无需精读。值得关注的设计决策是:

1) 使用统一的基类减少代码重复。
2) 通过不同模型路径和参数同时测试两种量化格式。
3) 集成到现有CI注册框架。

讨论亮点

review讨论非常简短但关键。reviewer b8zhong在评论中建议:“看起来不错。我们能否也添加Qwen/Qwen3-4B-Instruct-2507-FP8。量化格式会有点不同(分块vs逐张量缩放)。”作者DerekY2在issue评论中回应“刚刚添加了👍”,并在第二次提交中实现了该建议。这体现了对测试覆盖完整性的关注,确保同时覆盖两种主要的FP8量化格式。没有其他争议或未解决疑虑。

实现拆解

实现方案单一且集中:新增一个测试文件test/registered/quant/test_fp8_gemm_sm120.py。该文件定义了一个基础测试类FP8GemmSM120Base,负责启动FP8量化模型服务器并运行GSM8K评估。然后派生出两个具体测试类:TestFP8PerTensorGemmSM120Auto测试逐张量量化的Llama模型,TestFP8BlockwiseGemmSM120Auto测试分块量化的Qwen模型。两个测试都使用auto后端,并设置了不同的shot数和准确性阈值。测试通过register_cuda_ci注册到stage-b-test-small-1-gpu CI套件,并包含SM版本检查。

文件 模块 状态 重要度
test/registered/quant/test_fp8_gemm_sm120.py 测试 / 量化 added 10.0

关键符号

FP8GemmSM120Base.setUpClass FP8GemmSM120Base.test_gsm8k TestFP8PerTensorGemmSM120Auto TestFP8BlockwiseGemmSM120Auto

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

评论区精华

添加 Qwen 模型以覆盖分块量化格式 测试

reviewer b8zhong 建议添加 Qwen 模型,因为其量化格式(分块)与 Llama(逐张量)不同,以提升测试覆盖完整性。

结论:作者 DerekY2 在第二次提交中采纳建议,添加了 Qwen 模型测试。 · 已解决

风险与影响

技术风险较低,因为这是纯粹的测试代码添加,不涉及生产逻辑。主要风险包括:

1) 测试准确性阈值设置可能过于严格或宽松,导致CI不稳定(如metrics["accuracy"] >= 0.73/0.87)。
2) 测试依赖外部模型仓库(Hugging Face),可能因网络或模型可用性问题导致CI失败。
3) 测试执行时间(est_time=120秒)可能影响CI流水线效率。
4) 新增测试文件可能与其他FP8测试产生冗余,但根据PR描述,这是填补特定硬件覆盖空白。

影响范围有限但重要:

1) 对用户无直接影响,这是内部测试增强。
2) 对系统:提升了SM120架构上FP8量化模型的测试覆盖率,有助于早期发现该硬件配置下的回归问题。
3) 对团队:CI流水线将更全面地验证FP8量化功能,特别是针对RTX 5090等SM120设备。影响程度中等,因为它针对特定硬件和量化格式,但作为#20600的一部分,是整体测试改进的重要一环。

外部模型依赖 准确性阈值风险 CI 执行时间增加

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论