可用于在昇腾 NPU 上构建大规模向量检索系统,完成 IVFPQ 索引训练、检索与距离计算加速。项目基于 Meta 向量检索生态深度适配昇腾 NPU,通过 AscendC 自定义算子优化 Flat、IVFPQ 和 TopK 流程,支持 OPQ 变换与多卡部署。【此简介由AI生成】
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 3 个月前 | ||
| 5 个月前 | ||
| 5 个月前 | ||
| 1 个月前 | ||
| 5 个月前 | ||
| 5 个月前 | ||
| 5 个月前 | ||
| 5 个月前 | ||
| 24 天前 | ||
| 5 个月前 | ||
| 5 个月前 | ||
| 2 个月前 | ||
| 5 个月前 | ||
| 5 个月前 | ||
| 5 个月前 | ||
| 5 个月前 | ||
| 5 个月前 | ||
| 2 个月前 | ||
| 5 个月前 | ||
| 3 个月前 | ||
| 5 个月前 | ||
| 5 个月前 | ||
| 5 个月前 | ||
| 5 个月前 | ||
| 5 个月前 | ||
| 24 天前 |
Faiss NPU
✨ 最新消息
🔹 [2026.5.20]:🚀 基于 Meta Faiss 提供 NPU 加速能力,算法持续实现中
ℹ️ 简介
Faiss NPU 是在 Meta 开源 Faiss(Facebook AI Similarity Search)v1.13.2 基础上深度适配的昇腾 NPU 加速版本,为大规模向量检索提供高性能的硬件加速能力。项目完整保留 Meta Faiss 的功能和 API 接口,并通过 AscendC 自定义算子针对昇腾 NPU 的硬件特性进行优化。更多详情可查看简介。
⚙️ 功能介绍
NPU 加速功能
本项目实现了多个 AscendC 自定义算子,用于加速核心计算:
| 算子名称 | 功能描述 | 文档链接 |
|---|---|---|
| topk_flat_cpu | Flat 算法 TopK 选择 | 详细文档 |
| topk_flat_fp32_cpu | Flat 算法 TopK 选择(FP32) | 详细文档 |
| topk_ivfpq_l3_cpu | IVFPQ L3 阶段 TopK 归并 | 详细文档 |
| distance_flat_ip | Flat 内积距离计算 | 详细文档 |
| distance_flat_l2 | Flat L2 距离计算 | 详细文档 |
| distance_flat_extrema_at_fp32 | Flat L2/IP 距离计算(FP32) | 详细文档 |
| ascendc_dist_int8_flat_cos | Int8 Flat 余弦距离计算 | 详细文档 |
| ascendc_dist_int8_flat_l2 | Int8 Flat L2 距离计算 | 详细文档 |
| ascendc_ivfpq_search_distance_ip | IVFPQ IP 距离计算 | 详细文档 |
| ascendc_ivfpq_subspace_distance | IVFPQ 子空间距离计算 | 详细文档 |
NPU 索引/向量变换 API 文档:
| 类型 | 功能描述 | 文档链接 |
|---|---|---|
| IVFPQ | 倒排文件 + 乘积量化索引,结合 IVF 粗量化和 PQ 细量化,支持单卡推理、多卡分片、多卡副本等多种部署模式,可在 NPU 上完成训练与推理 | 详细文档 |
| OPQ | 优化乘积量化预处理,通过训练旋转矩阵减小各子空间方差相关性,提升 IVFPQ 检索精度,旋转矩阵训练与数据变换均在 NPU 上完成,可作为 IndexIVFPQ 的前置变换 | 详细文档 |
🚀 快速入门
Faiss NPU 提供了一个简单样例,帮助用户快速体验通过 Faiss NPU 进行检索的流程。详情可参考快速入门。
📦 安装指南
Faiss NPU 依赖 NPU 驱动、固件和 CANN 环境,支持通过源码编译并安装部署。详细安装步骤请参考安装指南。
📘 使用指南
文档入口
| 文档 | 说明 |
|---|---|
| 简介 | 了解 Faiss NPU 的项目背景、特点和架构 |
| 快速入门 | 通过样例快速体验 Faiss NPU 检索流程 |
| 安装指南 | 查看环境准备、编译安装和部署说明 |
| IVFPQ API | 查看 NPU IVFPQ 索引接口说明 |
🗺️ Roadmap
🔀 版本维护策略
| 分支 | 说明 |
|---|---|
| main | 主干开发分支 |
| v1.13.2-26.2.0 | mindsdk 版本分支 |
🛠️ 贡献指南
欢迎参与项目贡献,贡献流程和规范请参见贡献指南。
⚖️ 相关说明
🔹 《许可证声明》
🔹 《免责声明》
🔹 《第三方开源软件声明》
🤝 建议与交流
欢迎大家为社区做贡献。贡献前,请先签署开放项目贡献者许可协议(CLA)。
如果有任何疑问或建议,请提交 GitCode Issues,我们会尽快回复。
🙏 致谢
感谢来自社区的每一个 PR,欢迎贡献 Faiss NPU。
项目介绍
可用于在昇腾 NPU 上构建大规模向量检索系统,完成 IVFPQ 索引训练、检索与距离计算加速。项目基于 Meta 向量检索生态深度适配昇腾 NPU,通过 AscendC 自定义算子优化 Flat、IVFPQ 和 TopK 流程,支持 OPQ 变换与多卡部署。【此简介由AI生成】
定制我的领域