Merged
fix(package): clean built-in AICPU artifacts on uninstall #15309
fix(package): clean built-in AICPU artifacts on uninstall #15309
Merged
qzzzy1Add on 4 days ago
qzzzy1
qzzzy1Collaborators
4 days ago

描述

修复 ops-transformer built-in AICPU 产物卸载残留问题,同时避免影响基础 CANN 包在共享 AICPU 目录下的文件。

AICPU built-in 产物安装路径为:

opp/built-in/op_impl/aicpu/config/aicpu_transformer.json
opp/built-in/op_impl/aicpu/kernel/libtransformer_aicpu_kernels.so

此前这些文件无法随 ops-transformer 卸载被清理。若将整个 config / kernel 目录声明为 copy_entity,又会把共享目录作为整体处理,存在影响基础包文件(如 aicpu_hccl.tar.gz)权限或内容的风险。

本 PR 修改卸载脚本,精确删除 ops-transformer 自己安装的两个文件:

aicpu_transformer.json
libtransformer_aicpu_kernels.so

随后仅在目录为空时删除:

opp/built-in/op_impl/aicpu/config
opp/built-in/op_impl/aicpu/kernel
opp/built-in/op_impl/aicpu

因此不会影响同目录下的基础 CANN 包文件。

关联的Issue

7166

测试

构建命令

source /home/anaconda3/etc/profile.d/conda.sh
conda activate pec_py310
source /home/qzy/cann/set_env.sh

bash build.sh --pkg --soc=ascend910_93 -n mixed_quant_sparse_flash_mla_metadata,block_sparse_attention -j16

TC-01 打包

结果:通过。

add_aicpu_cust_kernel_modules for mixed_quant_sparse_flash_mla_metadata_cust_obj
Merging aicpu json inputs into .../aicpu_transformer.json
Linking cust_aicpu_kernels.so using ARM toolchain
Build pkg success

TC-02 安装

安装前模拟基础包共享文件:

cann/opp/built-in/op_impl/aicpu/kernel/aicpu_hccl.tar.gz

权限设置为 644。

安装命令:

bash build_out/cann-A3-ops-transformer_9.2.0_linux-aarch64.run --quiet --full --install-path=/tmp/final_uninstall_script_test

结果:通过,install_exit=0。

安装后包含:

644 .../config/aicpu_transformer.json
644 .../kernel/libtransformer_aicpu_kernels.so
644 .../kernel/aicpu_hccl.tar.gz

TC-03 卸载

命令:

bash build_out/cann-A3-ops-transformer_9.2.0_linux-aarch64.run --quiet --uninstall --install-path=/tmp/final_uninstall_script_test

结果:通过,uninstall_exit=0。

日志:

Opp package uninstalled successfully! Uninstallation takes effect immediately.

TC-04 卸载后检查

查找:

aicpu_transformer.json
libtransformer_aicpu_kernels.so

结果:均不存在,已卸载。

TC-05 共享文件保护

卸载后:

644 .../kernel/aicpu_hccl.tar.gz

结论:

  • 文件保留
  • 权限保持 644
  • 未变为 750
  • 未被删除

最终目录:

755 d .../aicpu
755 d .../aicpu/kernel
644 f .../aicpu/kernel/aicpu_hccl.tar.gz

验证结果汇总

TC 内容 结果
TC-01 AICPU 产物打包 ✅
TC-02 安装成功 ✅
TC-03 卸载成功 ✅
TC-04 transformer json/so 清理 ✅
TC-05 基础包 aicpu_hccl.tar.gz 保留且权限不变 ✅

文档更新

无

类型标签

likedislike
Pull Request has been successfully merged by CANN-robot.
(Thank you for qzzzy1's contribution.)
qzzzy1qzzzy1Collaborators
4 days ago Created pull request, commit 48f93093
atomgit-bot
atomgit-bot
4 days ago Comments:

变更摘要

本 PR 修复 ops-transformer 内置 AICPU 产物在卸载后残留的问题。此前 opp/built-in/op_impl/aicpu/config/aicpu_transformer.json 与 opp/built-in/op_impl/aicpu/kernel/libtransformer_aicpu_kernels.so 无法随包卸载清理;而在打包侧把整个 config/kernel 目录声明为 copy_entity 又会使共享目录被整体处理,可能影响基础 CANN 包同目录文件。因此本次在 scripts/package/ops_transformer/scripts/opp_uninstall.sh 中新增按文件精确删除的卸载逻辑,并把该逻辑挂入 remove_ops_transformer 主流程。

主要改动

  • 新增 remove_builtin_aicpu_files 函数: 在 opp_uninstall.sh 中基于 TARGET_OPP_BUILT_IN}/op_impl/aicpu 路径,用 rm -f 精确删除 config/aicpu_transformer.json 与 kernel/libtransformer_aicpu_kernels.so 这两个 ops-transformer 自身安装的文件。
  • 目录按空判定后再删除: 依次检查 config、kernel、aicpu 目录,仅当目录存在且 ls -A 结果为空时才 rm -rf,从而避免误删基础 CANN 包共享目录内容。
  • 卸载流程接入新函数: 在 remove_ops_transformer 中于 remove_init_py 之后、remove_whl_package 之前调用 remove_builtin_aicpu_files,使内置 AICPU 产物随卸载一并清理。

🧩 本次 Review 已使用自定义 Skill:

likedislike
Incorrect?
CANN-robotCANN-robotCollaborators
4 days ago Added label: stat/needs-squash
CANN-robotCANN-robotCollaborators
4 days ago Added label: cann-cla/yes
CANN-robot
CANN-robotCollaborators
4 days ago Comments:

Thanks for your pull-request.
The full list of commands accepted by me can be found at here.
You can get sig-info at here.
You can self-configure the PR merge rules for this repository. For more details, please refer to Here.
For more, you also can visit HICANN.


PR Approval Progress

✅ Congratulations! All modules have met the lgtm and approve requirements.

Module Approval Details

module lgtm status approve status
scripts ✅ wang-minbo, zzzzzzyf_ (2/2) ✅ wang-minbo (1/1)

💡 Tip:

  • Committer can comment /approve or /lgtm
  • Commenting /approve implies both code review (lgtm) and intent to merge (approve)

CLA Signature Pass

qzzzy1, thanks for your pull request. All authors of the commits have signed the CLA. 👍

likedislike
47 messages are collapsed here。 See more
CANN-robotCANN-robotCollaborators
3 days ago Added label: lgtm
CANN-robotCANN-robotCollaborators
3 days ago Removed label: ci-pipeline-running
CANN-robotCANN-robotCollaborators
3 days ago Added label: ci-pipeline-passed
CANN-robotCANN-robotCollaborators
3 days ago Closed associated issue
CANN-robotCANN-robotCollaborators
3 days ago Merged pull request