已合并
feat: 支持 IndirectLoad Load-Transpose 布局并完善 SIMD/SIMT codegen #2029
xiebangrui2025创建于 23 天前
feat: 支持 IndirectLoad Load-Transpose 布局并完善 SIMD/SIMT codegen #2029
已合并
xiebangrui2025创建于 23 天前
xiebangrui2025
xiebangrui2025成员
23 天前

Pull Request

描述

本 PR 完整支持 IndirectLoad 输入侧 Load-Transpose 布局,并统一、简化 SIMD/SIMT lowering 与 codegen。主要变更如下:

  • 在 IndirectLoad 调度生成中识别输入和索引链上的 Load-Transpose,按 Transpose 输出轴顺序映射 Load 物理 stride,并保留共享数据边与控制边边界。
  • 将 IndirectLoad 逻辑视图、访问分析、SIMD/SIMT 策略和 lowering metadata 收敛到公共分析层,减少 codegen 重复推导。
  • 简化 SIMD/SIMT API 调用生成和地址策略,统一 SIMT 多输出、后融合与 GM/UB 输出处理。
  • 协同 Transpose、NDDMA 和 un-alignment 流程,避免 IndirectLoad 图重复处理 Transpose 或错误修改向量化布局。
  • 修复 Broadcast 物理视图分析中的 dtype/axis 属性污染,并支持 SIMT 直接 GM Load 的非零 IR offset。
  • 补充 Load-Transpose、Broadcast、embedding slice、SIMT 输出与边界场景 E2E,并同步线上线下 IL E2E 清单。

变更类型

请选择本次引入的变更类型:

关联的Issue

无。

如何测试

描述测试此变更的步骤和前提条件:

  1. 使用 CANN 9.2 环境执行 cmake --build build --target codegen -j 8,增量编译通过。
  2. 构建并实际运行 indirect_load_graph_hint_embedding_slice_e2e_v2、indirect_load_both_transpose_simd_fallback_test_e2e_v2、indirect_load_both_transpose_simd_nddma_test_e2e_v2 和 indirect_load_both_transpose_simt_test_e2e_v2,4/4 通过。
  3. 使用 clang-format 18.1.8 检查 PR 范围内全部 C++ 变更文件,--dry-run --Werror 通过;git diff --check 通过。
  4. 对比 CMake/build 注册目标与 scripts/test/run_autofuse_test.sh 线上执行列表:双方均为 86 个 IL E2E,双向差集为空。

核对清单

其他信息

本 PR 包含 4 个连续 commit:

  1. 7d147dec:支持 IndirectLoad Load-Transpose 布局及相关调度协同。
  2. 41adeac4:统一 lowering metadata,简化 SIMD/SIMT codegen 与地址策略。
  3. 778a7824:统一 SIMT 输出处理并补充 IL ST。
  4. 5a1b71fb:修复 dtype/axis/offset 回归并补充 embedding slice E2E。

源分支为 xiebangrui2025:IL,目标分支为 cann:develop。

likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 xiebangrui2025 的贡献)
xiebangrui2025xiebangrui2025成员
23 天前 创建了 pull request,commit 20acaddf
atomgit-bot
atomgit-bot
23 天前 评论:

🤖 正在生成合并请求摘要,请稍候…

likedislike
不准确?
atomgit-bot
atomgit-bot
23 天前 评论:

🤖 AI 代码检视正在进行中,请稍候…

likedislike
不准确?
CANN-robotCANN-robot成员
23 天前 添加了label:stat/needs-squash
CANN-robotCANN-robot成员
23 天前 添加了label:cann-cla/yes
此处折叠了50条消息 查看更多
wangxiaotian995成员
22 天前 评论:

/lgtm

likedislike
CANN-robotCANN-robot成员
22 天前 添加了label:lgtm
yangyongqiang
yangyongqiang成员
22 天前 评论:

/approve

likedislike
CANN-robotCANN-robot成员
22 天前 添加了label:approved
CANN-robotCANN-robot成员
22 天前 合入了pull request