Closed
[Bug-Report|缺陷反馈]:ConcatToConcatDFusionPass 未校验dtype且不兼容旧版GE运行时,导致编译失败/算子包加载失败 #3868
zhanglei842Add on 17 days agoClosed at 17 days ago
17 days ago Added label: bug-report
Zzhanglei842
17 days ago Change title to "[Bug-Report|缺陷反馈]:ConcatToConcatDFusionPass 未校验dtype且不兼容旧版GE运行时,导致编译失败/算子包加载失败", originally titled "[Bug-Report|缺陷反馈]:".
17 days ago Change title to "[Bug-Report|缺陷反馈]:ConcatToConcatDFusionPass 未校验dtype且不兼容旧版GE运行时,导致编译失败/算子包加载失败", originally titled "[Bug-Report|缺陷反馈]:".
17 days ago Associated pull request
17 days ago Close issue
17 days ago Added label: resolved
一、问题描述 (必填)
迁移自 canndev 的
ConcatToConcatDFusionPass(Concat/ConcatV2/ConcatV2D → ConcatD)存在三个缺陷:dtype 未校验:迁移时丢失了 canndev 侧
CheckOpSupported的等价校验,DT_STRING 等 ConcatD 不支持的数据类型输入被改写为 ConcatD。引擎选择阶段 ConcatD 的 DT_STRING 输出不被 AIcoreEngine 支持(tbe-custom store 无 ConcatD 实现、动态 shape 校验不支持 DT_STRING),导致整图编译失败。canndev 原生版本会拒绝此类改写,两者行为不一致。旧版本 GE 运行时加载失败:pass 引用了
SubgraphRewriter::Replace带CustomPassContext的重载(GE 9.1.0 新增)及CustomPassContext::GetPassName/SetPassName(GE 9.0.0 新增成员函数)。算子包 .so 以-z now链接,强符号引用在 8.5.0/9.0.x GE 运行时上 dlopen 时解析失败,导致整个算子包加载失败(不仅限本 pass)。UT 直调失败:pass 侧移除 pass name 设置后,UT 直调
Run时CustomPassContext无 pass name,9.1+ 运行时Replace(ctx)内部ReportFuse断言失败,Run返回 FAILED 且图已被改写(26 个用例中 17 个失败)。真实编译不受影响(框架调度器会在调 Run 前设置 pass name)。二、环境信息 (可选)
三、重现步骤 (可选)
四、预期结果 (可选)
💡 备注(选填)