已合并
feat: mul/select 算子支持 PcieThrough 场景识别与回退 #5116
hahaha22创建于 24 天前
feat: mul/select 算子支持 PcieThrough 场景识别与回退 #5116
已合并
hahaha22创建于 24 天前
hahaha22成员
24 天前

描述

mul、select 算子增加 PcieThrough(PCIe 直通)场景适配:

  1. select simt tiling 回退:SelectSimtTiling::IsCapable 新增前置 IsPcieThrough() 判断,PcieThrough 场景返回 false,回退到低优先级的 SelectTiling(内部走 opbase broadcast 模板,PcieThrough 下强制 UB BRC 调度)
  2. IsPcieThrough 实现与 broadcast 模板版本兼容方案对齐:高版本 SDK(METADEF_VERSION_NUM >= 90200000)调用 context_->GetPcieThroughFlag(),低版本走 #else 兜底 false
  3. PcieThrough 能力标记:IMPL_OP_INFERSHAPE(Mul)IMPL_OP_INFERSHAPE(Select) 在高版本 SDK 下链式调用 SetSupportPcieThrough()
  4. 显式包含 version/metadef_version.h
  5. 顺带对 select_simt_tiling.cpp/.h 与 mul_infershape.cpp 做格式化规整(缩进、大括号风格、文件末尾换行),无逻辑变更

配套模板侧 PR:https://gitcode.com/cann/opbase/pull/788(broadcast 模板 PcieThrough 识别与 UB BRC 强制调度)。本 PR 依赖其先合入,否则 PcieThrough 场景下 broadcast 模板缺少强制 UB BRC 与非连续拦截,行为不完整。

关联的Issue

测试

  • 当前 SDK metadef 版本低于 90200000,GetPcieThroughFlag/SetSupportPcieThrough 真实分支未编入,兜底路径下行为与合入前一致
  • IsCapable 回退分支与 SetSupportPcieThrough 标记待 METADEF >= 90200000 环境编译运行验证
  • CI 流水线运行中(ci-pipeline-running)

文档更新

不涉及

类型标签

likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 hahaha22 的贡献)
Hhahaha22成员
24 天前 创建了 pull request,commit fa57055b
Hhahaha22成员
24 天前 关联了issue:【需求建议】缺少端到端测试工具
atomgit-bot
atomgit-bot
24 天前 评论:

变更摘要

该 PR 为 select simt tilingmath/select/op_host/arch35/select_simt_tiling)增加 PcieThrough 场景识别与回退能力:在 SelectSimtTiling::IsCapable() 中新增 IsPcieThrough() 判断,当检测到 PcieThrough 场景时返回 false,从而回退到通用 SelectTiling 流程。IsPcieThrough() 的实现对齐 broadcast 模板的版本兼容方案:高版本 SDK(METADEF_VERSION_NUM >= 90200000)通过 context_->GetPcieThroughFlag() 获取真实标志,低版本走 #else 兜底返回 false。配套的 opbase broadcast 模板改动见 PR #788。

主要改动

  • 新增 IsPcieThrough 判断并接入 IsCapable:在 SelectSimtTiling::IsCapable() 开头增加 if (IsPcieThrough()) return false;,使 PcieThrough 场景直接判定为不满足条件并回退到 SelectTiling
  • 实现版本兼容的 IsPcieThrough():基于 #if METADEF_VERSION_NUM >= 90200000 分支,高版本调用 context_->GetPcieThroughFlag() 并记录日志,低版本(#else)记录日志并兜底返回 false。
  • 显式包含版本头文件:在 select_simt_tiling.cpp 中新增 #include "version/metadef_version.h",为版本宏判断提供编译期依据;同时在 select_simt_tiling.h 的私有方法区声明 bool IsPcieThrough();
likedislike
不准确?
atomgit-bot
atomgit-bot
24 天前 评论:

代码审查

✅ 未发现问题

likedislike
不准确?
CANN-robotCANN-robot成员
24 天前 添加了label:stat/needs-squash
此处折叠了83条消息 查看更多
CANN-robotCANN-robot成员
15 天前 添加了label:approved
RuiWang_成员
15 天前 评论:

/lgtm
/approve

likedislike
CANN-robotCANN-robot成员
15 天前 添加了label:lgtm
CANN-robotCANN-robot成员
15 天前 关闭了关联的issue
CANN-robotCANN-robot成员
15 天前 合入了pull request