Prhub

#20648 [CI] Add Llama 3.1 8B Instruct FP4 CI test on SM120

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

执行摘要

添加 Llama 3.1 8B Instruct FP4 模型在 SM120 GPU 上的 CI 测试,扩展量化测试覆盖。

从PR body中:'Improves stage-b-test-small-1-gpu (SM120) coverage for quantized model tests. One of many addressing #20600.' 目的是扩展量化模型在SM120 GPU上的测试覆盖,特别是针对FP4格式,补充现有测试套件。

对于关心量化测试和CI覆盖的工程师,此PR值得快速浏览以了解测试结构和参数设置。重点关注设计决策如基类使用、硬件要求设置和问题规避方式,建议后续修复TorchDynamo问题以完善测试。

讨论亮点

Review讨论中,gemini-code-assist[bot] 建议使用基类以提高可维护性;b8zhong 关注时间估计准确性、硬件要求(建议SM ≥ 100)、后端选择(建议测试默认后端);DerekY2 报告TorchDynamo崩溃问题,通过添加 --disable-piecewise-cuda-graph 参数规避,但问题未根本解决。

实现拆解

实现集中于单个文件 test/registered/quant/test_nvfp4_gemm_sm120.py。该文件定义基类 FP4GemmSM120Base,设置服务器启动参数(模型路径、量化设置、禁用piecewise CUDA graph等),并添加测试方法 test_gsm8k 运行GSM8K评估。通过子类 TestFP4GemmSM120Auto 使用'auto'后端进行测试,使用 register_cuda_ci 注册到CI套件,估计运行时间90秒。

文件 模块 状态 重要度
test/registered/quant/test_nvfp4_gemm_sm120.py test/quant added 8.0

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

关键符号

FP4GemmSM120Base.setUpClass FP4GemmSM120Base.tearDownClass FP4GemmSM120Base.test_gsm8k TestFP4GemmSM120Auto

评论区精华

测试结构优化 设计

gemini-code-assist[bot] 建议使用基类以提高可维护性,align with similar tests。

结论:PR 中已实现基类结构,可能采纳了建议。 · 已解决

时间估计准确性 测试

b8zhong 询问时间估计是否准确,DerekY2 回应实际约 50 秒,设置估计为 90 秒。

结论:时间估计已更新。 · 已解决

硬件要求设置 测试

b8zhong 建议设置 SM ≥ 100,而不是特定值,以允许在 SM100 上运行。

结论:从 patch_excerpt 看,使用了 @unittest.skipIf(get_device_sm() < 100, ...),可能已采纳。 · 已解决

后端选择策略 设计

b8zhong 建议测试默认后端而不是硬编码 cuDNN,以匹配 SGLang 的默认行为。

结论:测试中使用 'auto' 后端,可能采纳了建议。 · 已解决

TorchDynamo 崩溃问题 正确性

DerekY2 报告 Piecewise CUDA Graph 导致 TorchDynamo 崩溃,通过添加 --disable-piecewise-cuda-graph 参数规避。b8zhong 回应稍后修复。

结论:问题被临时规避,但未根本解决。 · unresolved

风险与影响

风险包括:测试时间估计可能不准确,影响CI流水线调度;TorchDynamo崩溃问题被临时规避,可能掩盖内核或量化实现的潜在bug;准确性阈值(>0.64)设置需确保合理,避免误报;测试仅覆盖'auto'后端,可能未全面验证所有后端选项。

对用户无直接影响,是内部测试改进。对系统:增强CI测试覆盖,有助于早期发现量化模型在SM120上的问题,提高系统稳定性。对团队:提供更全面的测试数据,但可能增加CI运行时间和资源消耗。长期支持量化特性的持续集成。

测试时间估计不确定性 内核问题临时规避 准确性阈值依赖

关联 Issue

未识别关联 Issue

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

完整报告

执行摘要

本PR添加了针对NVFP4量化Llama 3.1 8B Instruct模型在SM120 GPU上的CI测试,以扩展量化测试覆盖并确保硬件兼容性。通过新增测试文件运行GSM8K评估,验证模型准确性,增强CI流水线的健壮性。

功能与动机

从PR body中:'Improves stage-b-test-small-1-gpu (SM120) coverage for quantized model tests. One of many addressing #20600.' 旨在填补单GPU量化测试空白,特别是针对FP4格式,确保量化模型在特定硬件的功能正确性。

实现拆解

实现集中于单个文件 test/registered/quant/test_nvfp4_gemm_sm120.py。关键改动如下:

  • 定义基类 FP4GemmSM120Base,在 setUpClass 中设置服务器启动参数,包括模型路径、量化设置和禁用piecewise CUDA graph。
  • 添加测试方法 test_gsm8k,运行GSM8K评估并验证准确性阈值(>0.64)。
  • 通过子类 TestFP4GemmSM120Auto 使用'auto'后端进行测试。
  • 使用 register_cuda_ci 注册到CI套件,估计运行时间90秒。

评论区精华

Review讨论中提炼出以下要点:

  • 测试结构优化:gemini-code-assist[bot] 建议使用基类以提高可维护性,align with similar tests。
  • 时间估计:b8zhong 询问时间准确性,DerekY2 回应实际约50秒,设置估计为90秒。
  • 硬件要求:b8zhong 建议设置SM ≥ 100,以允许在SM100上运行。
  • 后端选择:b8zhong 建议测试默认后端而不是硬编码cuDNN。
  • 内核问题:DerekY2 报告Piecewise CUDA Graph导致TorchDynamo崩溃,通过添加 --disable-piecewise-cuda-graph 参数规避,但问题未根本解决。

风险与影响

风险

  • 测试时间估计可能不准确,影响CI流水线调度。
  • TorchDynamo崩溃问题被临时规避,可能掩盖内核或量化实现的潜在bug。
  • 准确性阈值设置需合理,避免误报。
  • 测试仅覆盖'auto'后端,可能未全面验证所有后端选项。

影响

  • 对用户无直接影响,是内部测试改进。
  • 对系统:增强CI测试覆盖,有助于早期发现问题,提高稳定性。
  • 对团队:提供更全面测试数据,但可能增加CI运行时间和资源消耗。

关联脉络

与历史PR的关联:

  • PR 20717:添加FP8测试在SM120,类似扩展量化测试覆盖。
  • PR 21576:集成FlashInfer量化GEMM,涉及量化特性。
  • PR 21888:修复TorchDynamo问题,与本PR中报告的内核崩溃相关。
    这些PR共同反映了团队在量化测试和CI覆盖方面的持续演进。

参与讨论