已关闭
[Installation]: CANN 缺少 TBE 工程模板时全量 ops 编译失败 #365
yjy_ac创建于 19 天前关闭于 19 天前
19 天前 关联了看板:MindIE-SD
19 天前 添加了label:installation
19 天前 关联了pull request:[Bugfix][build] Skip TIK ops when msopgen TBE template is missing
19 天前 修改了issue 的描述
19 天前 关闭了 issue
19 天前 issue状态由 TODO 改变为 DONE
19 天前 添加了label:resolved
15 天前 关联了pull request:[Bugfix][ops] 修复 quant_four_over_six_a5 与 eagle_ffn 的 Ops::Base::ToString 重定义导致全量构建链接失败
15 天前 关联了pull request:[Bugfix][ops] 修复 quant_four_over_six_a5 与 eagle_ffn 的 Ops::Base::ToString 重定义导致全量构建链接失败
问题描述
源码安装 MindIE-SD 时,
setup.py调用build/build_ops.sh在 AscendC 算子编译完成后进入 TIK 工程生成。msopgen gen -i ir_demo.json -f onnx -c ai_core-ascend310p(默认-lan py)需要 CANN 提供 TBE 工程骨架目录:${ASCEND_HOME_PATH}/tools/op_project_templates/op_project_tmpl部分 toolkit 安装中该目录不存在(
tools/op_project_templates/仅保留ascendc/)。此时msopgen在解析 IR 之后报错并退出 101,整次 ops 构建失败,AscendC 算子也无法随包交付。典型报错:
ASCEND_HOME_PATH/ASCEND_TOOLKIT_HOME已正确指向ascend-toolkit/latest、且msopgen二进制可执行时仍会失败。tools/ascend_project在可编 TIK 与不可编 TIK 的 toolkit 上都可以不存在,不能作为判断条件。对照:可成功生成 TIK 工程的 toolkit 在
tools/op_project_templates/下同时有ascendc/、cpukernel/、op_project_tmpl/、tbe/。相关:历史安装问题曾通过注释
build/build_ops.sh中的source build_tik_ops.sh规避(见 #64)。本问题的根因是 TBE 工程模板缺失,需要构建脚本按该目录自动跳过,而不是要求手工改脚本。环境信息
复现步骤
sourceCANNset_env.sh,确认ASCEND_HOME_PATH与ASCEND_TOOLKIT_HOME指向 toolkitlatest。${ASCEND_HOME_PATH}/tools/op_project_templates/op_project_tmpl不存在。python setup.py bdist_wheel)。期望行为
缺 TBE 工程模板时跳过 TIK 算子编译并给出 WARNING,AscendC 算子构建继续完成。模板目录存在时仍按原逻辑生成并编译 TIK 算子。
修复方案
见 PR:https://gitcode.com/Ascend/MindIE-SD/pull/641