已合并
feat: mul/select 算子支持 PcieThrough 场景识别与回退 #5116
hahaha22创建于 24 天前
feat: mul/select 算子支持 PcieThrough 场景识别与回退 #5116
已合并
Pull Request已成功合入, 合并人@CANN-robot
(感谢 hahaha22 的贡献)atomgit-bot
24 天前 评论:
24 天前 评论:
变更摘要
该 PR 为 select simt tiling(math/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();。


不准确?
atomgit-bot
24 天前 评论:
24 天前 评论:
24 天前 添加了label:stat/needs-squash
此处折叠了83条消息 查看更多
15 天前 添加了label:approved
15 天前 添加了label:lgtm
15 天前 关闭了关联的issue
15 天前 合入了pull request
描述
mul、select 算子增加 PcieThrough(PCIe 直通)场景适配:
SelectSimtTiling::IsCapable新增前置IsPcieThrough()判断,PcieThrough 场景返回 false,回退到低优先级的SelectTiling(内部走 opbase broadcast 模板,PcieThrough 下强制 UB BRC 调度)IsPcieThrough实现与 broadcast 模板版本兼容方案对齐:高版本 SDK(METADEF_VERSION_NUM >= 90200000)调用context_->GetPcieThroughFlag(),低版本走#else兜底 falseIMPL_OP_INFERSHAPE(Mul)与IMPL_OP_INFERSHAPE(Select)在高版本 SDK 下链式调用SetSupportPcieThrough()version/metadef_version.h配套模板侧 PR:https://gitcode.com/cann/opbase/pull/788(broadcast 模板 PcieThrough 识别与 UB BRC 强制调度)。本 PR 依赖其先合入,否则 PcieThrough 场景下 broadcast 模板缺少强制 UB BRC 与非连续拦截,行为不完整。
关联的Issue
测试
GetPcieThroughFlag/SetSupportPcieThrough真实分支未编入,兜底路径下行为与合入前一致IsCapable回退分支与SetSupportPcieThrough标记待 METADEF >= 90200000 环境编译运行验证文档更新
不涉及
类型标签