已开启
[faiss] 支持单 Faiss 内嵌 NPU Flat 并完善过滤与安装 #96
[faiss] 支持单 Faiss 内嵌 NPU Flat 并完善过滤与安装 #96
已开启
肾炝喜鲤创建于 7月6日
肾炝喜鲤
肾炝喜鲤
7月6日

变更摘要

提供可编入调用方已有 Faiss target 的 FP32 Flat source-component;补齐 IDSelector/mask、过滤后不足 k 的填充语义、MathUtils 安装头及 custom_math 公共头安装;补充 L2 tiling 类型缓冲区判空与 CompileInfo 默认初始化。删除旧 IndexSDK/OM 对接说明和包装路径。默认独立 Faiss-NPU 构建与 embedded 模式分开,后者不引入 INT8 扩展 vtable。

源码与验证版本

Faiss 当前源码 15891cfad06f72118e6239f9c865e8eb53476686,基于上游 87f8d1b82f519a0333e33529ef9e9fa18b9591c5。已完成 P1/P2 和服务矩阵的 Faiss 源码为 3561604fc6d7f368e7c0f0fa9e76fbf386f74039;tiling 防护定向验证绑定 53ac5087b83c496fdd3bd2d3c9d5c78fc902591e。本次重基线、格式和提交整理未重跑完整矩阵。

验证记录与边界

P1 FP32/FP16 Flat、selector/mask、安装后 consumer 与嵌入式 consumer 的既有验证继续绑定 356160453ac508 的真实 CANN 定向回归 5/5 通过;原版本 typed-null 同例退出 139,修复后返回 GRAPH_FAILED;完整 translation unit 语法检查通过。Milvus 服务级矩阵由 C3/C4 报告提供,不使用旧 IndexSDK 单算子数据。

流水线 #687 的格式失败已按仓库 clang-format 18 与尾空白规则修正。其 UT 两项失败分别为旧 OPQIVFPQ 克隆用例 nlist=8 不满足 64 对齐,以及旧 OPQ 对照用例 recall=75 未达 80;本次纳入上游已有对应修复,不新增本 PR 的阈值调整。Flat 测试在该轮通过。定向格式及静态检查通过;本机缺少 CI 注入的 ./gitleaks,已用现有 gitleaks 对 15 个变更文件完成等价扫描。新 head 的正式 CI 以流水线结果为准。

共同环境:Linux arm64、Ascend910B3、CANN 9.1.0-beta.3、driver 25.2.0。FP32 为主机接口;设备 Flat 路径使用 FP16。容器 NPU E2E 为 NOT_RUN,按本次确认的验收分工非必需;native 验证与本地 Docker 基础检查不能互相代替。本地验证不替代本 PR 新 head 的 CI、维护者检视或合入。

依赖与复验

主链为 B!96C1!969C2!970C3!971C4!974C5!976。IndexSDK !285 是独立历史增强,不是前置。不得混用旧单体 Milvus patch。

依照 C5 README 首次准备 native 环境,之后运行 ./review.sh quick --env review.env./review.sh full --env review.env。完整材料已补交至 Issue #13 的最终交付评论(评论编号 188853340):设计文档测试验证报告C3 CSVC4 CSV七文件 review bundle。请使用本次新附件;此前 IndexSDK/OM 附件仅供历史查阅。

开发自检

  • 规范:源码相对当前上游 87f8d1b 为 15 文件、2013 增/519 删;包含 clang-format 的机械换行。超过 1k,备案状态待维护者确认,不宣称已完成。
  • 规范:关联 Ascend/IndexSDK#13
  • 规范:UT/ST 或安装/构建/入口验证范围如上;不使用旧后端的结果证明直连。
  • 安全:复用既有 Faiss、CANN 与 Milvus 依赖体系,不引入 IndexSDK/mxIndex/OM 运行依赖或第二套完整 Faiss;Faiss-NPU 源码接入与 runtime 依赖范围如本 PR 所述。
  • 安全:新增嵌入式 CMake 接入面;IDSelector 不再被忽略。仅 FloatVector、L2/IP 的 embedded 模式,不承诺 INT8 或 COSINE。
  • 规范:本 PR 职责内资料已同步;完整安装复验及限制统一见 C5,新的设计与测试报告已补交主 Issue,链接见上文。
likedislike
合并受阻
肾炝喜鲤肾炝喜鲤
7月6日 关联了issue:[Feature]: 新增 presmoke 预冒烟流水线
ascend-robot
ascend-robot成员
7月6日 评论:

compile

likedislike
xiangjie10成员
7月6日 评论:
🔍 PR 规范审计未通过,以下项目需要修正:
  • ⚠️ PR 代码变更未包含测试用例(变更文件路径中均不包含 test 或 ut),请确认已经备注原因!

请修正后重新提交,或联系仓库管理员。

likedislike
ascend-robotascend-robot成员
7月6日 添加了label:ascend-cla/yes
此处折叠了100条消息 查看更多
ascend-robotascend-robot成员
15 小时前 添加了label:ci-pipeline-running
ascend-robotascend-robot成员
15 小时前 删除了label:ci-pipeline-running
ascend-robotascend-robot成员
15 小时前 添加了label:ci-pipeline-passed
ascend-robot
ascend-robot成员
15 小时前 评论:
流水线 PR-pipeline_faiss#688 [ commitID:15891cfa ] 已完成
>>>代码风格自动修复执行成功(无修复内容)
阶段 任务名 状态 详情
编译构建 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
肾炝喜鲤肾炝喜鲤
14 小时前 修改了pull request 的描述