faiss:基于昇腾 NPU 的大规模向量检索加速项目

fork开源faiss,提供向量检索NPU加速能力。

分支2Tags0
文件最后提交记录最后更新时间
13 天前
3 个月前
5 个月前
5 个月前
13 天前
5 个月前
5 个月前
5 个月前
5 个月前
2 天前
5 个月前
5 个月前
2 个月前
5 个月前
5 个月前
5 个月前
5 个月前
5 个月前
2 个月前
5 个月前
3 个月前
5 个月前
5 个月前
5 个月前
5 个月前
5 个月前
11 天前

Faiss NPU

基于 Meta Faiss 的昇腾 NPU 加速版本

Ascend License

✨ 最新消息

🔹 [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 检索流程
安装指南 查看环境准备、编译安装和部署说明
FAQ 常见问题解答与使用答疑

🗺️ Roadmap

Roadmap(2026Q3)

🔀 版本维护策略

分支 说明
main 主干开发分支
v1.13.2-26.2.0 mindsdk 版本分支

🛠️ 贡献指南

欢迎参与项目贡献,贡献流程和规范请参见贡献指南

⚖️ 相关说明

🔹 《许可证声明
🔹 《免责声明
🔹 《第三方开源软件声明

🤝 建议与交流

欢迎大家为社区做贡献。贡献前,请先签署开放项目贡献者许可协议(CLA)。

欢迎大家通过以下方式提出问题、交流讨论。

资源 说明
FAQ 常见问题解答与使用答疑
创建Issue 提交 Bug、需求或建议

🙏 致谢

感谢来自社区的每一个 PR,欢迎贡献 Faiss NPU。

项目介绍

fork开源faiss,提供向量检索NPU加速能力。

定制我的领域