已合并
fix: avoid quantized flip registration for aclnn extensions #38786
fix: avoid quantized flip registration for aclnn extensions #38786
已合并
hz893创建于 6月17日
hz893成员
6月17日

【合入来源】

如有社区issue,请关联issue链接
请勿携带内部流程信息(需求链接、问题单、内部issue等)

【修改方案】

  1. QuantizedRegister 的 header 和 extra impl 注册从静态配置改为 helper 构造。
  2. ACLNN_EXTENSION_SWITCH 置位时,判定当前为外部 ACLNN extension codegen 场景,不生成 https://gitcode.com/Ascend/pytorch/pull/36068/commit 引入的 QuantizedFlipKernelNpu.h include 和 m.impl("flip", TORCH_FN(at_npu::native::quantized_flip)); 注册。
  3. ACLNN_EXTENSION_SWITCH 未置位时,保留原有 torch_npu 自身 quantized NPU flip dispatch 行为不变。
  4. 采用 ACLNN_EXTENSION_SWITCH 的原因:现有 torchnpugen/op-plugin/autograd/custom 相关 codegen 已使用该变量标识 ACLNN extension 客户扩展生成场景,fla_npu 的 gen.sh 也会设置该变量。复用现有开关可以只影响外部扩展生成,避免新增重复环境变量,同时不改变 torch_npu 自身 codegen 默认行为。

【资料变更】

不涉及。

【接口变更】

不涉及。

【功能验证】

目标分支:v2.7.1

  1. 生成器轻量验证通过:
    • python3 -m py_compile torchnpugen/gen_backend_stubs.py
    • git diff --check -- torchnpugen/gen_backend_stubs.py
    • ACLNN_EXTENSION_SWITCH=TRUE 时,QuantizedRegister 配置不包含 QuantizedFlipKernelNpu/quantized_flip
    • ACLNN_EXTENSION_SWITCH 未设置时,QuantizedRegister 配置保留 QuantizedFlipKernelNpu/quantized_flip
  2. 代码检查:lintrunner torchnpugen/gen_backend_stubs.py 通过。
  3. fla_npu 回归验证:基于 flash-linear-attention-npu v26.1.0,在 v2.7.1 环境使用修复后的 torch_npu codegen 重新生成并编译 fla_npu,生成的 QuantizedRegister.cpp 不再包含 QuantizedFlipKernelNpu/quantized_flippython setup.py bdist_wheelpip install dist/fla_npu*.whl --force-reinstall --no-depsimport torch_npu; import fla_npu 均通过。
  4. 补齐 ct 测试依赖后,cd torch_custom/fla_npu/test && bash test.sh 通过,结果 PASSED (9)FAILED (0)

【CheckList】

PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x]

likedislike
Pull Request已成功合入, 合并人@ascend-robot
(感谢 hz893 的贡献)
Hhz893成员
6月17日 创建了 pull request,commit f0211d6d
ascend-robot
ascend-robot成员
6月17日 评论:

当前仓库存在以下 保护分支

Protected Branch Version Release
master
v2.7.1-26.1.0
v2.7.1
v2.10.0
v2.9.0
v2.12.0-26.1.0
v2.11.0-26.1.0
v2.10.0-26.1.0
v2.9.0-26.1.0
v2.12.0
v2.11.0
ci-test
sync-pr28113--to-v2.9.0

评论 /sync <branch1> <branch2> ... 可将当前 PR 修改同步到其它分支(创建同步 PR):
a) 如果当前 PR 是 Open 状态,同步操作将延迟到 PR 被合并时执行
b) 如果当前 PR 已经 Merged,将立即执行同步操作

注意:

  1. /sync 命令可以指定同步到多个分支,仅最后一个 /sync 命令生效
  2. 如果创建的同步 PR 不正确,可通过向同步 PR 的源分支提交轻量级 PR 完善,或使用 /close 命令关闭
likedislike
hz893成员
6月17日 评论:

compile

likedislike
ascend-robotascend-robot成员
6月17日 添加了label:ci-pipeline-running
此处折叠了44条消息 查看更多
chengpeng25成员
6月18日 评论:

/lgtm

likedislike
chujinjin成员
6月18日 评论:

/approve

likedislike
ascend-robotascend-robot成员
6月18日 添加了label:approvedlgtm
ascend-robotascend-robot成员
6月18日 合入了pull request
ascend-robot
ascend-robot成员
6月18日 评论:
流水线 pytorch_gitcode_PR_multiVersion#10937 [ commitID:d888c1f3 ] 运行失败
likedislike