- [2025.12.30]: 🚀 INDEXSDK 开源发布
Index SDK是基于Faiss开发的昇腾NPU异构检索加速框架,针对高维空间中的海量数据,提供高性能的检索,采用与Faiss风格一致的C++语言,结合TBE,Ascendc算子开发,支持ARM和x86_64平台。 用户可以在此框架上实现面向应用场景的检索系统。更多详情可查看简介。
├── build
├── feature_retrieval
├── ivfsp_impl
├── ivfsp_utils
├── vsa_hpp
└── vstar_great_impl
Index SDK的版本说明包括软件版本配套关系和每个版本的特性变更说明,详情可查看版本说明。
介绍Index SDK的安装方式,详情可查看安装指南。
-
安装NPU驱动固件和CANN
软件类型 软件包名称 获取方式 NPU驱动 Ascend-hdk-xxx-npu-driver_{version}_linux-{arch}.run 昇腾社区下载 NPU固件 Ascend-hdk-xxx-npu-firmware_{version}.run 昇腾社区下载 CANN软件包 Ascend-cann-toolkit_{version}_linux-{arch}.run 昇腾社区下载 开放态场景包 Ascend-cann-device-sdk_{version}_linux-{arch}.run 昇腾社区商用版资源申请 -
安装依赖
若执行后续
bash build/build.sh编译流程可跳过此步骤,脚本下载OpenBLAS或faiss时遇到网络问题,可手动下载安装包到项目根目录下。手动安装运行和构建依赖可执行
bash build/install_deps.sh,安装ut运行依赖可执行bash build/install_deps.sh ut。 -
安装Index SDK
本节以CANN 8.3.RC2相关配套为例,介绍如何通过源码编译生成Index SDK,其中NPU驱动、固件和CANN软件包可以通过昇腾社区下载,开放态场景包可以通过登录 https://support.huawei.com 搜索CANN 8.3.RC2,在相关页面申请商业版下载。
-
执行编译
执行以下命令编译:
bash build/build.sh
-
生成的 run 包在
build/output下:Ascend-mindxsdk-mxindex_{version}_linux-{arch}.run -
执行测试用例
执行以下命令运行测试用例:
bash build/build.sh ut
Index SDK提供了一个简单的样例,帮助用户快速体验运用Index SDK进行检索的流程。详情可参考使用样例。
安全要求:使用API读取文件时,用户需要保证该文件的owner必须为自己,且权限不大于640,避免发生提权等安全问题。外部下载的软件代码或程序可能存在风险,功能的安全性需由用户保证。
版本分支的维护阶段如下:
| 状态 | 时间 | 说明 |
|---|---|---|
| 计划 | 1-3个月 | 计划特性 |
| 开发 | 3个月 | 开发新特性并修复问题,定期发布新版本 |
| 维护 | 3-12个月 | 常规分支维护3个月,长期支持分支维护12个月。对重大BUG进行修复,不合入新特性,并视BUG的影响发布补丁版本 |
| 生命周期终止(EOL) | N/A | 分支不再接受任何修改 |
| 版本 | 维护策略 | 当前状态 | 发布日期 | 后续状态 | EOL日期 |
|---|---|---|---|---|---|
| master | 长期支持 | 开发 | 2025-12-30 | - |
IndexSDK以Mulan PSL v2许可证许可,对应许可证文本可查阅LICENSE。
IndexSDK docs目录下的文档适用CC-BY 4.0许可证,具体请参见LICENSE文件。
- 提交错误报告:如果您在Index SDK中发现了一个不存在安全问题的漏洞,请在Index SDK仓库中的Issues中搜索,以防该漏洞已被提交,如果找不到漏洞可以创建一个新的Issues。如果发现了一个安全问题请不要将其公开,请参阅安全问题处理方式。提交错误报告时应该包含完整信息。
- 安全问题处理:本项目中对安全问题处理的形式,请通过邮箱通知项目核心人员确认编辑。
- 解决现有问题:通过查看仓库的Issues列表可以发现需要处理的问题信息, 可以尝试解决其中的某个问题
- 如何提出新功能:请使用Issues的Feature标签进行标记,我们会定期处理和确认开发。
- 开始贡献:
- Fork本项目的仓库。
- Clone到本地。
- 创建开发分支。
- 本地自测,提交前请通过所有的已经单元测试,以及为您要解决的问题新增单元测试。
- 提交代码。
- 新建Pull Request。
- 代码检视,您需要根据评审意见修改代码,并再次推送更新。此过程可能会有多轮。
- 当您的PR获得足够数量的检视者批准后,Committer会进行最终审核。
- 审核和测试通过后,CI会将您的PR合并入到项目的主干分支。
欢迎大家为社区做贡献。贡献前,请先签署开放项目贡献者许可协议(CLA)。如果有任何疑问或建议,请提交GitCode Issues,我们会尽快回复。 感谢您的支持。