Prhub

#22573 fix: restore CPU flash_attn test to use sgl_kernel directly

原始 PR 作者 Fridge003 合并时间 2026-04-11 12:39 文件变更 1 提交数 1 评论 2 代码增减 +3 / -1

执行摘要

修复 CPU 测试因导入路径变更导致的 NotImplementedError,恢复使用原生 CPU 实现。

修复由PR #20796引入的CPU CI失败问题。PR #20796将测试导入路径改为使用社区版fa3内核,但该路径在CPU环境下会检查CUDA sm80+支持,导致抛出NotImplementedError。需要恢复使用CPU原生实现以确保测试通过。

这是一个简单的修复PR,无需深入精读。值得关注的是它揭示了测试环境对硬件依赖的敏感性,以及导入路径选择对跨平台兼容性的影响。

讨论亮点

本PR没有review评论,但从PR body和关联Issue可以看出,这是一个直接的修复,旨在解决由PR #20796引入的回归问题。

实现拆解

仅修改一个测试文件test/srt/cpu/test_flash_attn.py:

  1. 移除对sglang.jit_kernel.flash_attention的导入;
  2. 添加sgl_kernel导入(仅用于类型提示);
  3. 将flash_attn_varlen_func直接赋值为torch.ops.sgl_kernel.flash_attn_varlen_func,这是CPU原生实现。
文件 模块 状态 重要度
test/srt/cpu/test_flash_attn.py test modified 3.0

关键符号

flash_attn_varlen_func

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

评论区精华

导入路径导致的 CPU 测试失败 正确性

PR #20796 将导入路径改为 sglang.jit_kernel.flash_attention,该路径在 CPU 环境下会抛出 NotImplementedError。

结论:恢复使用 torch.ops.sgl_kernel.flash_attn_varlen_func 作为 CPU 原生实现。 · 已解决

风险与影响

风险极低:

  1. 仅修改测试文件,不影响生产代码;
  2. 恢复为原有工作路径,已被历史验证;
  3. 变更范围极小(4行改动),回归风险可控。

影响范围有限:

  1. 确保CPU CI测试套件(per-commit-cpu)能够正常执行test_flash_attn.py;
  2. 对用户和系统无直接影响;
  3. 对团队而言,修复了CI稳定性问题,避免因测试失败干扰开发流程。
测试环境依赖

关联 Issue

#20796 Kernels community fa3

完整报告

参与讨论