已合并
fix: complete Arange fallback path (#302) #1980
fix: complete Arange fallback path (#302) #1980
已合并
Jett_Woo创建于 14 天前
Jett_Woo成员
14 天前

Pull Request

描述

补齐 IndexExpr/Arange Autofusion 的普通 ArangeApiCall 双路径和最小影响的 VF 前置准入,确保 VF 不可用时 Arange 可走普通 LocalTensor 路径,同时收紧 VF boundary 映射并补充普通 DMA/Codegen 回归。

本 PR 基于最新 develop,不重复提交已合入的 PR 1961 主体。

核心变更:

  • Store 使用实际源 UB 布局计算 DMA;外层 stride 无法证明 32B 对齐或存在共享偏移时,使用注册的 32B scratch 和显式逐行拷贝,保证同步及 scratch 生命周期。
  • Arange VF 准入检查轴顺序与有效 lane,不把 Store DMA 对齐约束施加到 Arange。
  • 新增普通 ArangeApiCall,保留现有 MicroArangeApiCall VF 高性能路径。
  • UBFuse 或控制边场景在分区前禁用 Arange VF,避免晚期 Codegen 失败。
  • 缺失 vf_root_input_index 时明确失败,移除静默 boundary ordinal 回退。
  • 普通 Arange fallback 分离 logical value offset 与 LocalTensor physical write offset,并对复杂无法证明安全的布局 fail closed。
  • 补充 Arange Codegen、VF partition、Allocator、DMA singleton 和 boundary mapping 回归。

变更类型

关联的Issue

关联 Issue #302:支持 IndexExpr 和 Arange Autofusion

如何测试

  1. 本次重新构建:cmake --build build/source_validation --target test_main optimize_ut pyautofuse -j 8,成功;SDK signal.h 有弃用告警。
  2. 本次完整 host 回归:test_main 881 passed、7 skipped、8 disabled(XML total 896),零失败;optimize_ut 658 passed、8 skipped(total 666),零失败。test_main 从其二进制目录运行,以满足 ../pyautofuse.so 相对依赖。
  3. 本次 git diff --check 和暂存区差异检查通过;改动行使用 clang-format 格式化。
  4. 历史 V5 真机原始报告已重新核对:75 primary + 32 fallback + 1 control = 108 项,73 + 32 + 1 = 106 项数值通过;2 项 transposed output 在 codegen 阶段拒绝,不算数值成功。focus 4/4 是重跑,不重复计入分母。本次未重新运行真机矩阵。
  5. 真机验证资产、文档、临时工具、日志及生成代码仅保留本地,不纳入提交。本次 host 日志位于 pipeline_logs/1980__20260906.;历史真机证据位于 /tmp/opencode/p0_p1_runtime/final_matrix_v5/。

核对清单

其他信息

  • ATT outer call fixed cost、普通 scalar fallback 和新增 Store scratch 的 scalar/per-chunk DMA/event 成本尚未建模。此路径为正确性回退,不承诺性能持平。
  • 不支持动态 rank、scatter、非单位有效尾 stride、反序/交错 merged axis、Arange CV UBFuse。
  • V5 矩阵剩余 2 项 transpose codegen 拒绝;仅支持 contiguous-inner scratch fallback,不宣称全部真机通过。
  • 设计文档和完整真机验证资产仅保留在本地,不纳入提交。
  • 源分支:index-expr-fallback-develop-pr
likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 Jett_Woo 的贡献)
JJett_Woo成员
14 天前 创建了 pull request,commit 7a6fb99e
JJett_Woo成员
14 天前 关联了issue:[Requirement|需求建议]: 支持 IndexExpr 和 Arange Autofusion
CANN-robotCANN-robot成员
14 天前 添加了label:cann-cla/yes
CANN-robot
CANN-robot成员
14 天前 评论:

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.
You can self-configure the PR merge rules for this repository. For more details, please refer to Here.
For more, you also can visit HICANN.


PR Approval Progress

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

Module Approval Details

module lgtm status approve status
repo-cann/graph-autofusion wangxiaotian995, liyuewei, zhang_shengjie (3/2) wangxiaotian995 (1/1)

💡 Tip:

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

CLA Signature Pass

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

likedislike
CANN-robotCANN-robot成员
14 天前 将niuyuhu,yangyongqiang0606,liyuewei,xchu42,zhang_shengjie,depeng1994,wqtshg_wt,peiyang,shengnan666,XuebinYang,sjtulxh,zhanj,zhujingjing,xuyafei,wangxiaotian995设为评审人
此处折叠了435条消息 查看更多
liyuewei
liyuewei成员
9 天前 评论:

/lgtm

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

/approve

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