已合并
【fix】 fix inductor upcast_to_fp32 codegen #33344
kkjocker创建于 4月8日
【fix】 fix inductor upcast_to_fp32 codegen #33344
已合并
kkjocker创建于 4月8日
kkjocker
kkjocker成员
4月8日

补充codegen将fp16和bfp16升精度到32的逻辑

【合入来源】

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

【修改方案】

请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列
如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容)

【资料变更】

不涉及

【接口变更】

不涉及

【功能验证】

说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤
新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图

【CheckList】

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

likedislike
Pull Request已成功合入, 合并人@ascend-robot
(感谢 kkjocker 的贡献)
kkjockerkkjocker成员
4月8日 创建了 pull request,commit 9dd0234b
ascend-robotascend-robot成员
4月8日 添加了label:stat/needs-squash
ascend-robot
ascend-robot成员
4月8日 评论:

Thanks for your pull-request.
The full list of commands accepted by me can be found at here
You can get sig-info at here


PR Approval Progress

Congratulations! All modules have met the lgtm and approve requirements.

Module Approval Details

module lgtm status approve status
test zichun_ye, adrian07110 (2/2) zichun_ye, adrian07110 (2/1)
torch_npu/_inductor zichun_ye, adrian07110 (2/2) zichun_ye, adrian07110 (2/1)

💡 Tip:

  • Committer can comment /approve or /lgtm
  • Commenting /approve implies both code review (lgtm) and intent to merge (approve)

CLA Signature Pass

kkjocker, thanks for your pull request. All authors of the commits have signed the CLA. 👍

likedislike
ascend-robotascend-robot成员
4月8日 添加了label:ascend-cla/yes
ascend-robot
ascend-robot成员
4月8日 评论:

问题/功能描述

本次PR主要包含三项核心变更,旨在提升NPU后端的兼容性、功能健壮性和数值精度。首先,修复了因PyTorch内部模块结构调整导致的CachingAutotuner导入路径错误,确保NPU后端的自动调优功能正常。其次,增强了内核名称解析逻辑,使其能够同时兼容空格和下划线两种分隔符格式,提升了代码的容错性。最后,为Triton代码生成器增加了对半精度浮点数(float16/bfloat16)的向上类型转换(upcast to fp32)支持,以提升计算精度和稳定性。

修改方案描述

  1. 修复导入路径:将torch_npu/_inductor/__init__.pyCachingAutotuner的导入路径从torch._inductor.triton_heuristics更新为torch._inductor.runtime.triton_heuristics,以匹配上游PyTorch的模块重构。
  2. 增强内核名称解析:在loadKernel函数中,扩展了nameFuncMode字符串的解析逻辑。在原有空格分隔逻辑基础上,新增了对最后一个下划线作为分隔符的支持,从而兼容"kernel_name kernel_mode""kernel_name_kernel_mode"两种格式。
  3. 实现向上类型转换:在NPUIndexTritonKernel类的load方法中,新增条件判断。当被加载数据的原始类型为torch.float16torch.bfloat16且全局配置config.triton.codegen_upcast_to_fp32启用时,在生成的tl.load指令后追加.to(tl.float32)转换,并将后续代码生成的dtype更新为torch.float32
  4. 新增单元测试:新增参数化单元测试test_codegen_upcast_to_fp32_emits_cast,用于验证上述向上类型转换功能在NPU设备上是否按预期工作,检查生成的Triton代码中是否包含预期的类型转换指令,并验证计算结果的正确性。
likedislike
kkjockerkkjocker成员
4月8日 update merge request[project id: 7404318, iid: 33344, commit_id: 0d384e0da9a10c55bf52bbadddefb7700f3bdb8e] virtual merging success
kkjockerkkjocker成员
4月8日 强制推送  1 个提交:890a2be3-【fix】 fix inductor upcast_to_fp32 codegen
kkjockerkkjocker成员
4月8日 update merge request[project id: 7404318, iid: 33344, commit_id: a7df8246db81accab3cf135f89576e7f3581c3e3] virtual merging success
ascend-robotascend-robot成员
4月8日 删除了label:stat/needs-squash
AtlasAccountAtlasAccount成员
4月8日 添加了label:ci-pipeline-failed
kkjocker
kkjocker成员
4月8日 评论:

add_component

likedislike
ascend-robotascend-robot成员
4月8日 添加了label:MindSpore-Component
kkjocker
kkjocker成员
4月8日 评论:

compile

likedislike
ascend-robotascend-robot成员
4月8日 删除了label:ci-pipeline-failed
此处折叠了10条事件消息 查看更多
ascend-robotascend-robot成员
4月9日 添加了label:ci-pipeline-passed
ascend-robot
ascend-robot成员
4月9日 评论:
流水线 PR-pipeline_pytorch#14691 (重试第3次)已完成
阶段 任务名 状态 详情
编译构建 Build_X86 >>>
Build_ARM >>>
Build_LibTorch_x86 >>>
Build_X86_torchair 🛑 >>>
Build_ARM_torchair 🛑 >>>
Build_ARM_inductor >>>
恶意代码检查 Antipoison >>>
编码安全与规范检查 CodeCheck >>>
check_error >>>
开源片段检查 SCA >>>
开发者测试 UT_X86_Part_01 🛑 >>>
UT_X86_Part_02 🛑 >>>
UT_ARM_A3_Part_01 🛑 >>>
UT_ARM_A3_Part_02 🛑 >>>
UT_DIST_X86_Part_01 🛑 >>>
UT_DIST_X86_Part_02 🛑 >>>
UT_DIST_X86_Part_03 🛑 >>>
UT_DIST_X86_Part_04 🛑 >>>
UT_inductor_Part_01 >>>
UT_inductor_Part_02 >>>
UT_inductor_Part_03 >>>
UT_inductor_Part_04 >>>
UT_ARM_A2_Part_01 >>>
UT_ARM_A2_Part_02 >>>
流水线 PR-pipeline_pytorch >>>
likedislike
zichun_ye
zichun_ye成员
4月9日 评论:

/approve

likedislike
ascend-robotascend-robot成员
4月9日 添加了label:approved
ZhihaoLi
ZhihaoLi成员
4月9日 评论:

/approve

likedislike
ascend-robotascend-robot成员
4月9日 添加了label:lgtm
ascend-robot
ascend-robot成员
4月9日 评论:

Review Guide

This pull-request passes review.
Committers who wrote a comment of /approve are: zichun_ye, adrian07110.
Reviewers who wrote a comment of /lgtm are: zichun_ye, adrian07110.

likedislike
ascend-robotascend-robot成员
4月9日 合入了pull request