已合并
【fix】重命名自定义算子so #174
Qanly创建于 1 天前
【fix】重命名自定义算子so #174
已合并
Qanly创建于 1 天前
Qanly
Qanly成员
1 天前

问题/功能描述

本 PR 的核心改动是将自定义算子动态库从 libcust_opapi.so 统一重命名为 libfaiss_npu_opapi.so,涉及 CMake 打包/链接配置、运行时动态加载逻辑(DeviceUtils.cpp 中的 getCustOpApiLibName()、getOpApiFuncAddr())及 DeviceUtils.h 接口注释的同步更新;同时在 build_env.sh 中收紧了算子编译类别 OP_CATEGORY_LIST。此改动主要聚焦于自定义算子库的命名统一与对应配置的联动调整。

修改方案描述

  1. 动态库重命名: 将自定义算子库 libcust_opapi.so 统一重命名为 libfaiss_npu_opapi.so,并同步修改 op_test_common.cmake 中 COMMON_LIBS 的链接路径引用。
    CMake 输出名覆盖: 在 package.cmake 中通过 set_target_properties(${PACK_CUSTOM_NAME}_ascendc_cust_opapi PROPERTIES OUTPUT_NAME faiss_npu_opapi) 覆盖默认产物名,确保打包产物为新库名。

  2. 运行时加载逻辑同步: DeviceUtils.cpp 中 getCustOpApiLibName() 的返回值改为 libfaiss_npu_opapi.so,getOpApiFuncAddr() 直接加载新库名的注释与逻辑随之更新,DeviceUtils.h 中相关接口注释同步修正。

  3. 算子构建类别调整: build_env.sh 中 OP_CATEGORY_LIST 由 "math conversion examples" 缩减为 "conversion",收窄了算子编译范围。

开发自检

likedislike
Pull Request已成功合入, 合并人@ascend-robot
(感谢 Qanly 的贡献)
QanlyQanly成员
1 天前 关联了issue:[Bug]: 算子包名称和环境变量设置冲突
atomgit-bot
atomgit-bot
1 天前 评论:

变更摘要

本 PR 的核心改动是将自定义算子动态库从 libcust_opapi.so 统一重命名为 libfaiss_npu_opapi.so,涉及 CMake 打包/链接配置、运行时动态加载逻辑(DeviceUtils.cpp 中的 getCustOpApiLibName()getOpApiFuncAddr())及 DeviceUtils.h 接口注释的同步更新;同时在 build_env.sh 中收紧了算子编译类别 OP_CATEGORY_LIST。此改动主要聚焦于自定义算子库的命名统一与对应配置的联动调整。

主要改动

  • 动态库重命名: 将自定义算子库 libcust_opapi.so 统一重命名为 libfaiss_npu_opapi.so,并同步修改 op_test_common.cmakeCOMMON_LIBS 的链接路径引用。
  • CMake 输出名覆盖: 在 package.cmake 中通过 set_target_properties(${PACK_CUSTOM_NAME}_ascendc_cust_opapi PROPERTIES OUTPUT_NAME faiss_npu_opapi) 覆盖默认产物名,确保打包产物为新库名。
  • 运行时加载逻辑同步: DeviceUtils.cppgetCustOpApiLibName() 的返回值改为 libfaiss_npu_opapi.sogetOpApiFuncAddr() 直接加载新库名的注释与逻辑随之更新,DeviceUtils.h 中相关接口注释同步修正。
  • 算子构建类别调整: build_env.shOP_CATEGORY_LIST"math conversion examples" 缩减为 "conversion",收窄了算子编译范围。
likedislike
不准确?
atomgit-bot
atomgit-bot
1 天前 评论:

代码审查

✅ 未发现问题

likedislike
不准确?
ascend-robot
ascend-robot成员
1 天前 评论:

compile

likedislike
ascend-robotascend-robot成员
1 天前 添加了label:stat/needs-squash
ascend-robotascend-robot成员
1 天前 添加了label:ascend-cla/yes
ascend-robot
ascend-robot成员
1 天前 评论:

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.


PR Approval Progress

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

Module Approval Details

module lgtm status approve status
repo-Ascend/faiss 兰鑫, 付泓犇 (2/2) 兰鑫 (1/1)

💡 Tip:

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

CLA Signature Pass

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

likedislike
ascend-robotascend-robot成员
1 天前 添加了label:ci-pipeline-running
QanlyQanly成员
1 天前 修改了pull request 的描述
QanlyQanly成员
1 天前 修改了pull request 的描述
ascend-robotascend-robot成员
1 天前 删除了label:ci-pipeline-running
ascend-robotascend-robot成员
1 天前 添加了label:ci-pipeline-passed
ascend-robot
ascend-robot成员
1 天前 评论:
流水线 PR-pipeline_faiss#685 [ commitID:8d2fa4d8 ] 已完成
>>>代码风格自动修复执行成功(无修复内容)
阶段 任务名 状态 详情
编译构建 PR-build-SAST-check ✅ COMPLETED >>>
Build_arm ✅ COMPLETED >>>
恶意代码检查 Antipoison ✅ COMPLETED >>>
编码安全与规范检查 pre-commit ✅ COMPLETED >>>
开源片段检查 SCA ✅ COMPLETED >>>
开发者测试 PreSmoke ✅ COMPLETED >>>
UT ✅ COMPLETED >>>
流水线 PR-pipeline_faiss ✅ COMPLETED >>>
此流水线已支持下列评论快捷指令,仅PR创建者和白名单成员评论有效
  • compile : 运行流水线
  • retry : 重试流水线所有失败子任务
  • retry <任务名> : 仅重试指定失败子任务
  • stop : 停止流水线
likedislike
lan_xin成员
1 天前 评论:

Ascend C 代码检视结论:审查通过

本 PR 由自动代码检视完成审查:将自定义算子库 libcust_opapi.so 重命名为 libfaiss_npu_opapi.so,涉及构建产物命名(package.cmake OUTPUT_NAME)、单测链接(op_test_common.cmake COMMON_LIBS)、运行时动态加载(DeviceUtils.cpp getCustOpApiLibName)三处锚点,并收窄 build_env.sh 的算子编译类别。

共执行 20 条检视条例(安全编码 / API 最佳实践 / 通用规范 / 构建安全 / PR 交叉验证),全部通过。关键验证结论:

  • 重命名三个使用点全部同步,旧名全仓清零(仅 package.cmake 一处说明性注释保留)
  • 12 个算子单测均链接新库路径,若 OUTPUT_NAME 未生效单测将显式失败,可被 CI 捕获
  • dlopen/dlsym 失败路径抛 FAISS_THROW_IF_NOT_FMT 异常,重命名错误不会静默
  • 部署脚本先卸载旧版,无新旧 so 并存风险
  • OP_CATEGORY_LIST 收窄为 conversion 与仓库实际目录(仅存在 conversion/)一致,无功能影响

另附 3 条范围外既有问题备注(非本 PR 引入,不计入判定,供后续改进参考):

  1. DeviceUtils.h 注释声称 falls back to RTLD_DEFAULT,但实现中无 dlsym(RTLD_DEFAULT) 调用,注释与实现不符
  2. DeviceUtils.cpp 的 getOpApiFuncAddr 中 custOpApiLib.empty() 分支恒为 false,属既有死代码
  3. package.cmake 新增的 set_target_properties 依赖 CANN 宏内部目标命名约定,建议后续补充 if(TARGET ...) 存在性防御(同文件第 33 行对 cust_opmaster 有此类先例)
likedislike
lan_xin成员
8 小时前 评论:

/lgtm

likedislike
chasefhb
chasefhb成员
6 小时前 评论:

/lgtm

likedislike
ascend-robotascend-robot成员
6 小时前 添加了label:lgtm
lan_xin成员
6 小时前 评论:

/approve

likedislike
ascend-robotascend-robot成员
6 小时前 添加了label:approved
ascend-robotascend-robot成员
6 小时前 合入了pull request,合并节点 SHA:c7062f87a06d7b7fd13f453fb1b42f82f0577fa5