Pull Request已成功合入, 合并人@ascend-robot
(感谢 Qanly 的贡献)变更摘要
本 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.cmake中COMMON_LIBS的链接路径引用。 - CMake 输出名覆盖: 在
package.cmake中通过set_target_properties(${PACK_CUSTOM_NAME}_ascendc_cust_opapi PROPERTIES OUTPUT_NAME faiss_npu_opapi)覆盖默认产物名,确保打包产物为新库名。 - 运行时加载逻辑同步:
DeviceUtils.cpp中getCustOpApiLibName()的返回值改为libfaiss_npu_opapi.so,getOpApiFuncAddr()直接加载新库名的注释与逻辑随之更新,DeviceUtils.h中相关接口注释同步修正。 - 算子构建类别调整:
build_env.sh中OP_CATEGORY_LIST由"math conversion examples"缩减为"conversion",收窄了算子编译范围。


compile


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
/approveor/lgtm- Commenting
/approveimplies 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. 👍


| 阶段 | 任务名 | 状态 | 详情 |
|---|---|---|---|
| 编译构建 | PR-build-SAST-check | ✅ COMPLETED | >>> |
| Build_arm | ✅ COMPLETED | >>> | |
| 恶意代码检查 | Antipoison | ✅ COMPLETED | >>> |
| 编码安全与规范检查 | pre-commit | ✅ COMPLETED | >>> |
| 开源片段检查 | SCA | ✅ COMPLETED | >>> |
| 开发者测试 | PreSmoke | ✅ COMPLETED | >>> |
| UT | ✅ COMPLETED | >>> | |
| 流水线 | PR-pipeline_faiss | ✅ COMPLETED | >>> |
- compile : 运行流水线
- retry : 重试流水线所有失败子任务
- retry <任务名> : 仅重试指定失败子任务
- stop : 停止流水线


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 引入,不计入判定,供后续改进参考):
- DeviceUtils.h 注释声称 falls back to RTLD_DEFAULT,但实现中无 dlsym(RTLD_DEFAULT) 调用,注释与实现不符
- DeviceUtils.cpp 的 getOpApiFuncAddr 中 custOpApiLib.empty() 分支恒为 false,属既有死代码
- package.cmake 新增的 set_target_properties 依赖 CANN 宏内部目标命名约定,建议后续补充 if(TARGET ...) 存在性防御(同文件第 33 行对 cust_opmaster 有此类先例)


/lgtm


问题/功能描述
本 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.cmake 中 COMMON_LIBS 的链接路径引用。
CMake 输出名覆盖: 在 package.cmake 中通过 set_target_properties(${PACK_CUSTOM_NAME}_ascendc_cust_opapi PROPERTIES OUTPUT_NAME faiss_npu_opapi) 覆盖默认产物名,确保打包产物为新库名。
运行时加载逻辑同步: DeviceUtils.cpp 中 getCustOpApiLibName() 的返回值改为 libfaiss_npu_opapi.so,getOpApiFuncAddr() 直接加载新库名的注释与逻辑随之更新,DeviceUtils.h 中相关接口注释同步修正。
算子构建类别调整: build_env.sh 中 OP_CATEGORY_LIST 由 "math conversion examples" 缩减为 "conversion",收窄了算子编译范围。
开发自检