已关闭
[Requirement|需求建议]: [第三方依赖消减] 移除 2 项未使用的三方依赖 #1280
zhaoyingdong创建于  7月17日关闭于  26 天前
zhaoyingdong成员
7月17日 创建

Thanks for sending an requirement! Please fill in the following template to help quickly solve your problem.

Background(背景信息)

背景

基于对 asc-devkit 仓库的全量三方依赖扫描,发现 1 项构建工具和 1 项打包三方依赖声明后未被实际使用,可直接移除。

整改清单

# 依赖 类型 根因
1 gperf 构建工具 .devcontainer/Dockerfile 安装 gperf,但全仓 CMake/构建脚本无 gperf 引用,且无 libseccomp 依赖(gperf 仅在 libseccomp 从源码构建时需要)
2 rdma-core 打包三方依赖 CMakeLists.txt 声明 add_cann_third_party(rdma-core),但全仓源码未找到任何 rdma-core 系统头文件(如 infiniband/verbs.h)的 #include;代码使用项目内部头文件

逐项整改步骤

#1 gperf

  • 分析依据:全仓搜索 gperflibseccomp 均无结果(CMake/脚本/源码);已知传递依赖速查表指出 gperf 仅在 libseccomp 从源码构建时需要。

  • 步骤:

    1. .devcontainer/Dockerfile 第 58 行的 apt-get install 列表中移除 gperf
    2. 重新构建 devcontainer 镜像验证构建不受影响

    #2 rdma-core

  • 分析依据:impl/adv_api/detail/hccl/cc/src/aicpu_kfc/CMakeLists.txt:29 声明 add_cann_third_party(rdma-core),创建 rdma_core_headers INTERFACE 库提供 ${RDMA_CORE_INCLUDE_DIR};但全仓搜索 infinibandverbs.hrdma/rdma 均无结果,源码仅使用项目内部头文件(rdma_vendor_base_ops.hrma_conn_lite.h 等)。

  • 步骤:

    1. 确认 mc2_server 及相关 target 编译不依赖 rdma-core 提供的头文件(可尝试移除后编译)
    2. 若编译通过,移除 CMakeLists.txt:29add_cann_third_party(rdma-core) 声明及 rdma_core_headers 相关代码(CMakeLists.txt:31-37mc2_server_minimal.cmakerdma_core_headers 链接行)
    3. 若编译失败,记录实际依赖的头文件并恢复声明

预期收益

  • 减少 1 项构建容器中无用的系统包安装
  • 减少 1 项三方依赖下载与构建配置(rdma-core),简化构建流程

待评估依赖(建议评估可消除性)

  • tornado:全仓无 import,非 CANN toolkit 已知传递依赖。需确认是否为 Jupyter 或其他开发工具的隐式依赖。
  • PyYAML:全仓项目代码无直接 import yaml,但 CANN tbe 框架内部可能使用(项目代码 from tbe.* 导入)。需确认 tbe 框架是否依赖 PyYAML。
  • ruamel.yaml:全仓无 import,与 PyYAML 功能重复。需确认 tbe 框架是否依赖;若不需要则移除。
  • jinja2:全仓项目代码无直接 import jinja2,但 CANN tbe 框架内部可能使用 jinja2 做代码生成。需确认 tbe 框架是否依赖。
  • cloudpickle:全仓无 import,非 CANN toolkit 已知传递依赖。需确认是否为框架传递依赖。
  • expecttest:全仓无 import,为 PyTorch 测试工具传递依赖。需确认 tests/ 是否使用。
  • tqdm:全仓无 import,非 CANN toolkit 已知传递依赖。需确认是否为框架传递依赖。
  • rdma-core:见上方高优先级消减项 #2,需编译验证后确认。
  • gperf:见上方高优先级消减项 #1(已确认为建议消除,列此供交叉参考)。

Origin(信息来源)

CANN

Benefit / Necessity (价值/作用)

Design(设计方案)

likedislike
Zzhaoyingdong成员
7月17日 添加了label:requirement
DDragonBornHD84成员
7月17日 将 pengcheng1024 设为负责人
pengcheng1024成员
7月17日 评论:

感谢您的反馈,这边确认下。

likedislike
Ppengcheng1024成员
7月21日 将 DragonBornHD84 设为负责人
DDragonBornHD84成员
7月30日 关联了pull request:fix: 修复build.sh参数文档、移除未使用依赖、版本号升级至9.2.0
Ppengcheng1024成员
8月4日 移除了负责人 pengcheng1024
DragonBornHD84成员
26 天前 评论:

该修改已合入

likedislike
DDragonBornHD84成员
26 天前 issue状态由 待办的 改变为 已解决
DDragonBornHD84成员
26 天前 关闭了 issue
CANN-robotCANN-robot成员
26 天前 添加了label:resolved