| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix: 补充 example 样例文档与入口指引, 修复清理 output 后 UT 构建因三方库缓存失效而链接失败的问题 Co-authored-by: yelongjian<yelongjian1@huawei.com> # message auto-generated for no-merge-commit merge: !649 merge dev-agent1023 into develop fix: 补充 example 样例文档与入口指引, 修复清理 output 后 UT 构建因三方库缓存失效而链接失败的问题 Created-by: yelongjian Commit-by: yelongjian Merged-by: cann-robot Description: # Pull Request ## 描述 修复文档与脚本两处问题: **问题1:样例无文档化承接** quick_install.md「场景2:需要运行样例」指引新手寻找样例,但全仓文档零提及样例定义与入口,example/ 目录无 README。本次: - 新增 example/README.md / README_en.md:说明样例定义(tc_ge_irrun_open_api_0014:使用 GE IR Open API 构建 Relu 计算图并在 NPU 上执行)、前提条件(CANN Toolkit、NPU 驱动固件、Python 依赖)、运行方法、结果判定与排查步骤 - docs/{zh,en}/quick_install.md 场景2 与 README{,_en}.md 快速开始补充样例入口链接 - run_example.sh 移除 find|sed 调试打印,增加 set_env.sh/make/.bin 存在性检查与明确报错、透传退出码(原失败为 exit 255 且无有效错误信息),支持 ASCEND_HOME_PATH 覆盖安装路径(Makefile 同步) **问题2:清理 output 后 UT 构建链接失败且不自愈** 先 bash build.sh 编译、再清理 output 目录、再 bash tests/run_test.sh -u 时,build_gcov 中残留的 ExternalProject install stamp 误判三方库已安装而跳过重装,output/third_party/lib_cache 中 libascend_protobuf.so 永久缺失,mmpa 链接失败,脚本仅报 "Metadef llt build failed."。本次: - tests/run_test.sh 增加自愈逻辑:检测到 lib_cache 中三方库缺失(且 ASCEND 安装目录亦无)而构建目录存在时,自动清理过期构建目录强制全量重建;失败提示改为引导查看 make 输出 - docs/{zh,en}/build.md 4.4 补充 build_gcov 与 output/third_party/lib_cache 状态交互说明及手动自救方法(rm -rf build_gcov) ## 变更类型 - [x] 🐛 Bug 修复 - [x] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. bash -n example/run_example.sh tests/run_test.sh 语法通过;本地 pre-commit 全部 Passed 2. 无 CANN 环境执行 bash example/run_example.sh:输出明确报错并以 exit 1 退出(原为不可诊断失败) 3. 自愈条件三场景模拟验证:lib_cache 缺失且构建目录存在→触发清理;libascend_protobuf.so 存在于 lib_cache 或 ASCEND 安装目录→不触发(不误伤增量构建) 4. NPU 环境:清理 output 后执行 bash tests/run_test.sh -u,应自动清理 build_gcov 并全量重建通过 5. 文档新增链接可达性检查 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 无 See merge request: cann/metadef!649 | 13 天前 | |
docs: example样例README补充运行所需Python依赖包清单与缺失排查指引 Co-authored-by: yelongjian<yelongjian1@huawei.com> # message auto-generated for no-merge-commit merge: !655 merge dev-fix1026 into develop docs: example样例README补充运行所需Python依赖包清单与缺失排查指引 Created-by: yelongjian Commit-by: yelongjian Merged-by: cann-robot Description: # Pull Request ## 描述 修复 example 样例在裸环境的 Python 依赖断链问题(Ascend 910C + CANN 9.3.0~weekly 环境反馈): **问题**:新手按文档装好 CANN 并编译 metadef 后运行 example/run_example.sh,样例约 10 秒退出(RC=255),stdout 仅两行 INFO 日志(失败与成功分支同格式,无错误码),真因藏于 ~/ascend/log/debug/plog/ 深层日志:GE 初始化时 TBE 等算子编译组件逐层 import 系统外 Python 包,依次报 No module named 'numpy' → 'decorator' → 'sympy' → 'scipy' → 'attr' → 'psutil',每装一个重跑撞下一个,需多轮试错才能跑通;而全文档对所需 Python 依赖零声明(grep numpy/sympy/scipy/psutil/decorator 零命中,attrs 仅误中 C++ RuntimeAttrs API 文档)。多次独立评估(不同日期)稳定复现,依赖缺失链首个模块恒为 numpy。 **依据**(依赖清单非猜测): - CANN toolkit 自带 Python 包 asc_op_compile_base 的 METADATA 正式声明 Requires-Dist: numpy / decorator / attrs / psutil - toolkit tbe/tvm 组件源码 import sympy / scipy(GE 初始化加载 TBE 时触发) **说明**:反馈中的另两点(①文档无样例入口链接、③example/ 命名误导)已由先前合入的 example/README.md 及 README/quick_install 入口链接解决,本 PR 补齐剩余缺口②——显式依赖声明。 **修改**:example/README.md / example/README_en.md 1. 『前提条件』Python 依赖条目补充显式安装命令 pip3 install numpy decorator sympy scipy attrs psutil,并说明缺失时的失败现象(RC=255、stdout 无明显报错、plog 出现 No module named 'xxx'); 2. 『结果判定与排查』运行失败步骤补充:plog 出现 No module named 'xxx' 即为 Python 依赖缺失,按前提条件安装后重试。 ## 变更类型 - [x] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 文档变更,无代码逻辑影响;markdown 渲染检查两处 README 中英对照一致 2. 依赖清单核验:grep Requires-Dist ${ASCEND_HOME_PATH}/python/site-packages/asc_op_compile_base-*.dist-info/METADATA 输出 numpy/decorator/attrs/psutil;grep -rl "import sympy\|import scipy" ${ASCEND_HOME_PATH}/python/site-packages/tbe/ 命中 tvm 组件源码 3. 裸环境(无上述 Python 包的容器)运行 bash example/run_example.sh,plog 中首个缺失模块为 numpy,按 README 新增命令一次性安装后依赖链不再阻塞 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 无 See merge request: cann/metadef!655 | 10 天前 | |
docs: example样例README补充运行所需Python依赖包清单与缺失排查指引 Co-authored-by: yelongjian<yelongjian1@huawei.com> # message auto-generated for no-merge-commit merge: !655 merge dev-fix1026 into develop docs: example样例README补充运行所需Python依赖包清单与缺失排查指引 Created-by: yelongjian Commit-by: yelongjian Merged-by: cann-robot Description: # Pull Request ## 描述 修复 example 样例在裸环境的 Python 依赖断链问题(Ascend 910C + CANN 9.3.0~weekly 环境反馈): **问题**:新手按文档装好 CANN 并编译 metadef 后运行 example/run_example.sh,样例约 10 秒退出(RC=255),stdout 仅两行 INFO 日志(失败与成功分支同格式,无错误码),真因藏于 ~/ascend/log/debug/plog/ 深层日志:GE 初始化时 TBE 等算子编译组件逐层 import 系统外 Python 包,依次报 No module named 'numpy' → 'decorator' → 'sympy' → 'scipy' → 'attr' → 'psutil',每装一个重跑撞下一个,需多轮试错才能跑通;而全文档对所需 Python 依赖零声明(grep numpy/sympy/scipy/psutil/decorator 零命中,attrs 仅误中 C++ RuntimeAttrs API 文档)。多次独立评估(不同日期)稳定复现,依赖缺失链首个模块恒为 numpy。 **依据**(依赖清单非猜测): - CANN toolkit 自带 Python 包 asc_op_compile_base 的 METADATA 正式声明 Requires-Dist: numpy / decorator / attrs / psutil - toolkit tbe/tvm 组件源码 import sympy / scipy(GE 初始化加载 TBE 时触发) **说明**:反馈中的另两点(①文档无样例入口链接、③example/ 命名误导)已由先前合入的 example/README.md 及 README/quick_install 入口链接解决,本 PR 补齐剩余缺口②——显式依赖声明。 **修改**:example/README.md / example/README_en.md 1. 『前提条件』Python 依赖条目补充显式安装命令 pip3 install numpy decorator sympy scipy attrs psutil,并说明缺失时的失败现象(RC=255、stdout 无明显报错、plog 出现 No module named 'xxx'); 2. 『结果判定与排查』运行失败步骤补充:plog 出现 No module named 'xxx' 即为 Python 依赖缺失,按前提条件安装后重试。 ## 变更类型 - [x] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 文档变更,无代码逻辑影响;markdown 渲染检查两处 README 中英对照一致 2. 依赖清单核验:grep Requires-Dist ${ASCEND_HOME_PATH}/python/site-packages/asc_op_compile_base-*.dist-info/METADATA 输出 numpy/decorator/attrs/psutil;grep -rl "import sympy\|import scipy" ${ASCEND_HOME_PATH}/python/site-packages/tbe/ 命中 tvm 组件源码 3. 裸环境(无上述 Python 包的容器)运行 bash example/run_example.sh,plog 中首个缺失模块为 numpy,按 README 新增命令一次性安装后依赖链不再阻塞 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 无 See merge request: cann/metadef!655 | 10 天前 | |
fix: 补充 example 样例文档与入口指引, 修复清理 output 后 UT 构建因三方库缓存失效而链接失败的问题 Co-authored-by: yelongjian<yelongjian1@huawei.com> # message auto-generated for no-merge-commit merge: !649 merge dev-agent1023 into develop fix: 补充 example 样例文档与入口指引, 修复清理 output 后 UT 构建因三方库缓存失效而链接失败的问题 Created-by: yelongjian Commit-by: yelongjian Merged-by: cann-robot Description: # Pull Request ## 描述 修复文档与脚本两处问题: **问题1:样例无文档化承接** quick_install.md「场景2:需要运行样例」指引新手寻找样例,但全仓文档零提及样例定义与入口,example/ 目录无 README。本次: - 新增 example/README.md / README_en.md:说明样例定义(tc_ge_irrun_open_api_0014:使用 GE IR Open API 构建 Relu 计算图并在 NPU 上执行)、前提条件(CANN Toolkit、NPU 驱动固件、Python 依赖)、运行方法、结果判定与排查步骤 - docs/{zh,en}/quick_install.md 场景2 与 README{,_en}.md 快速开始补充样例入口链接 - run_example.sh 移除 find|sed 调试打印,增加 set_env.sh/make/.bin 存在性检查与明确报错、透传退出码(原失败为 exit 255 且无有效错误信息),支持 ASCEND_HOME_PATH 覆盖安装路径(Makefile 同步) **问题2:清理 output 后 UT 构建链接失败且不自愈** 先 bash build.sh 编译、再清理 output 目录、再 bash tests/run_test.sh -u 时,build_gcov 中残留的 ExternalProject install stamp 误判三方库已安装而跳过重装,output/third_party/lib_cache 中 libascend_protobuf.so 永久缺失,mmpa 链接失败,脚本仅报 "Metadef llt build failed."。本次: - tests/run_test.sh 增加自愈逻辑:检测到 lib_cache 中三方库缺失(且 ASCEND 安装目录亦无)而构建目录存在时,自动清理过期构建目录强制全量重建;失败提示改为引导查看 make 输出 - docs/{zh,en}/build.md 4.4 补充 build_gcov 与 output/third_party/lib_cache 状态交互说明及手动自救方法(rm -rf build_gcov) ## 变更类型 - [x] 🐛 Bug 修复 - [x] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. bash -n example/run_example.sh tests/run_test.sh 语法通过;本地 pre-commit 全部 Passed 2. 无 CANN 环境执行 bash example/run_example.sh:输出明确报错并以 exit 1 退出(原为不可诊断失败) 3. 自愈条件三场景模拟验证:lib_cache 缺失且构建目录存在→触发清理;libascend_protobuf.so 存在于 lib_cache 或 ASCEND 安装目录→不触发(不误伤增量构建) 4. NPU 环境:清理 output 后执行 bash tests/run_test.sh -u,应自动清理 build_gcov 并全量重建通过 5. 文档新增链接可达性检查 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 无 See merge request: cann/metadef!649 | 13 天前 |
example 目录说明
English: README_en.md
本目录提供 metadef 仓的可运行样例,用于在真实 CANN 环境中验证 GE IR 构图与 NPU 执行流程。
样例列表
| 样例 | 说明 |
|---|---|
tc_ge_irrun_open_api_0014 |
使用 GE IR Open API(Graph/Tensor 等接口)构建一个 Relu 计算图,通过 GE Session 加载并在 NPU 上执行,打印各阶段执行日志。 |
前提条件
-
已安装 CANN Toolkit(默认路径
/usr/local/Ascend/cann)。若安装路径不同,运行前请设置ASCEND_HOME_PATH环境变量指向实际安装目录。 -
已安装 NPU 驱动和固件,且当前环境可访问 NPU 设备。容器场景的设备挂载方式参见快速安装·场景2。
-
环境中已安装 Python3 及 CANN 运行所需的 Python 依赖包(GE 运行期会加载算子编译相关组件,逐层
import下列 Python 包)。自行搭建的裸环境(如普通 Debian/Ubuntu 容器)通常缺少这些依赖,缺失时样例运行失败(退出码255,stdout 无明显报错,plog 日志中出现No module named 'xxx'),运行前请先安装:pip3 install numpy decorator sympy scipy attrs psutil使用 CANN 官方容器镜像时默认已具备,可跳过此步骤。
运行样例
cd example
bash run_example.sh
脚本依次执行:加载 CANN 环境变量 → 编译样例(生成 tc_ge_irrun_open_api_0014.bin)→ 运行样例。
结果判定与排查
- 成功:进程退出码为
0,stdout 打印各阶段... success日志(如GeSessionExecuteGraphWithStreamAsync success、Finalize acl success)。 - 失败:进程退出码为
255(即-1)。可按以下步骤排查:- 查看 stdout 日志的最后几行,定位失败发生在哪一阶段(构图/加载/执行/资源释放);
- 编译失败:确认 CANN 安装路径(
ASCEND_HOME_PATH或默认路径)下存在compiler/include、lib64、opp/built-in/op_graph/inc等目录; - 运行失败:确认驱动固件已安装、设备文件已挂载(容器场景),并查看
~/ascend/log/下的 plog 日志获取详细错误码;若 plog 中出现No module named 'xxx',为 Python 依赖缺失,请按上文『前提条件』执行pip3 install安装对应包后重试。