文件最后提交记录最后更新时间
pto-isa安装优化改造,解压即安装 Co-authored-by: zoujiangjiang<zoujiangjiang@h-partners.com> # message auto-generated for no-merge-commit merge: !905 merge pto-isa-install into master pto-isa安装优化改造,解压即安装 Created-by: zoujiangjiang Commit-by: zoujiangjiang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 描述 本次修改主要对pto-isa的cmke和打包脚本进行修改,主要为了适配dst_path=install_path的安装方式,确保包内路径和环境上安装路径保持一致,从而实现解压即安装,其它软链保持不变,同时增加了dst_path与install_path的一致性校验 ## 关联issue [[Requirement|需求建议]: ops-nn安装效率优化:统一安装路径、提升复制效率、改造打包脚本](https://gitcode.com/cann/ops-nn/issues/1570) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 改造安装后和改造前仅有4个文件差异,并且这四个文件差异是正常的 ![image.png](https://raw.gitcode.com/user-images/assets/8827531/86ea86db-c571-4f90-96fb-ba08410750e0/image.png 'image.png') ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/pto-isa!9051 个月前
Use FetchContent to reuse CANN engineering common cmake repo Co-authored-by: shengxinchen<chenshengxin@huawei.com> # message auto-generated for no-merge-commit merge: !988 merge feat/use-cann-cmake into master Use FetchContent to reuse CANN engineering common cmake repo Created-by: shengxinchen Commit-by: shengxinchen Merged-by: cann-robot Description: ## 描述 本 PR 将 PTO-ISA 组件仓的 cmake/version 接口与 run 包打包流程整体切换到 CANN 工程公共仓 cann/cmake,移除组件仓内重复的版本管理函数、打包脚本与 内置 makeself 集成。整个改造由两个 commit 组成。 ## 主要变更 ### Commit 1:cmake/version 接入工程公共仓(e0530842) - 新增 cmake/fetch_cann_cmake.cmake,通过 FetchContent 拉取 cann-cmake - CMakeLists.txt 改调 init_cann_project / check_cann_pkg_build_deps / add_cann_version_info_targets - version.cmake 切到工程仓 API:set_cann_package / set_cann_run_dependencies - cmake/func.cmake 删除重复的 set_package / set_build_dependencies / set_run_dependencies / check_pkg_build_deps / add_version_info_targets / replace_cur_major_minor_ver - 删除 scripts/check_build_dependencies.pyscripts/generate_version_info.py (由工程仓 scripts/version/ 提供) ### Commit 2:打包流程切到 set_cann_cpack_config(077d61e0) - cmake/package.cmake 改用工程仓提供的 set_cann_cpack_config(pto-isa …), install/cleanup/version 等帮助脚本统一从 ${CANN_CMAKE_DIR} 引用 - cmake/fetch_cann_cmake.cmakeCANN_CMAKE_TAG 由 master-001 升到 master-017(包含 set_cann_cpack_config 所需修复) - scripts/package/pto_isa/pto_isa.xml 新增 <share_info_name>pto_isa</share_info_name>, 保证生成的 share/info 目录布局正确 - 删除组件仓内重复的打包资产: - cmake/makeself_built_in.cmakecmake/third_party/makeself-fetch.cmake - scripts/package/common/(py/sh 全部) - scripts/package/latest_manager/scripts/(含 manager_func.sh 等) - scripts/package/package.py - 同步更新 cmake/README*.mdscripts/package/README*.mdSECURITY*.md ### Commit 3:公共编译选项切换到工程公共仓(200f23eb) - 顶层 CMakeLists.txtinit_cann_project() 之后新增调用 add_cann_target_options(),引入工程公共仓 cann-cmake 提供的 intf_pub INTERFACE target,封装 -fPIC / -Wall / -Wextra / -fstack-protector-strong、ASAN/TSAN/UBSAN/GCOV 开关、-Wl,-z,relro/now/noexecstack 等公共编译/链接选项 - 组件仓未涉及 device 侧 cmake(无 cmake/device 目录、无 set(PRODUCT_SIDE device)),按"如果涉及 device 编译再追加"原则本 commit 不在 device 侧追加调用 合计:49 files changed, 95 insertions(+), 13841 deletions(-) (commit 1:6 files / +53 / -348;commit 2:42 files / +41 / -13493;commit 3:1 file / +1 / -0) ## 测试 ### Commit 1 sh build.sh --pkg 修改前后 staging 产物字节级一致,仅 version.info 中 timestamp 行不同(符合预期)。 ### Commit 2 对 commit 1 staging 产物 (pre.run) 与 commit 2 staging 产物 (build_out/cann-pto-isa_9.1.0_linux-aarch64.run) 做了 run 包级别 diff 与 安装流程联调: **条件 1:修改前后仅工程脚本差异 — 通过** - aarch64-linux/ 产品载荷 455 个文件字节级一致 - version.info 仅 timestamp 行不同 - 其余差异全部收敛在 share/info/pto_isa/script/(即工程仓提供的 install helper),其中 common_interface.bashcommon_interface.sh 为重命名,无外部引用 **条件 2:安装 / 卸载 / 升级流程 — 通过(升级有既有 bug 已确认非本 PR 引入)** | 用例 | 结果 | | --- | --- | | 新包 --full 全新安装 | 通过,落盘 490 文件 | | 旧包 --full 全新安装 | 通过,与新包仅差 common_interface.{bash↔sh} | | --uninstall(新/旧包均测) | 残留 0 文件 0 目录 | | 同版本覆盖安装 | 通过,自动 uninstall→install | | 跨版本卸载(旧装新卸 / 新装旧卸) | 残留均为 0 | | **--upgrade(旧 → 新)** | 失败:ERR_NO:0x0002;ERR_DES:Empty paramters is invalid for install. | | --upgrade 对照(新→新、旧→旧) | 同样失败 | --upgrade 失败可在未改动的 pre.run 上稳定复现,根因在工程仓 install.sh--upgrade 分支未给 IN_INSTALL_TYPE 回填值(详见 pto_install.sh 71-74 行空参拦截),属上游既有问题,**不是本 PR 引入的回归**, 将另起单独修复。 ### Commit 3 对 commit 2 产物(baseline.run)与 commit 3 产物(changed.run)做 run 包级 diff 与安装流程联调: **条件 1:修改前后仅工程脚本差异 — 通过** - 同一构建机相邻时刻分别构建 baseline.run / changed.run,解压后 diff -r 结果仅 share/info/pto_isa/version.info 的 timestamp 行不同,工程脚本与 aarch64-linux/ 产品载荷字节级一致 - 由于 intf_pub 为 INTERFACE target 且当前无 target 链接它,包内容不变符合预期;后续业务 target 通过 target_link_libraries(<tgt> PRIVATE intf_pub) 即可继承公共选项 **条件 2:安装 / 卸载 / 升级流程 — 通过(升级失败与 commit 2 同根因,非本 commit 引入)** | 用例 | 结果 | | --- | --- | | --full 全新安装 | 通过,目录结构、version.infoascend_install.info 落盘正常 | | --uninstall | 通过,share/info/pto_isa 清空,ascend_install.info 删除 | | --upgrade | 失败:ERR_NO:0x0002;ERR_DES:Empty paramters is invalid for install.,在 baseline.run(未含本 commit)上同样稳定复现,与 commit 2 测试段已定位的上游 install.sh 既有问题同根因 | See merge request: cann/pto-isa!98827 天前