安装和使用特性
针对Milvus数据库的加速特性主要应用于HNSW和ScaNN两个索引算法,优化特性以补丁文件形式提供。需要在编译Milvus后,在Knowhere源码中应用该补丁文件,之后再次进行编译,即可使用优化特性。该补丁文件针对Milvus 2.4.5版本进行开发。

开源Milvus源码不包括索引相关的组件Knowhere,需要在编译过程中拉取Knowhere的源码并进行对接。本次优化特性应用于索引查询,补丁文件会添加到Knowhere源码中。所以整体使用过程需要编译Milvus两次,一次编译拉取Knowhere的源码,在打入patch文件后进行第二次编译,用来使能优化特性。
此外,建议预先开启BIOS预取功能,可结合patch文件中软件预取,通过修改预取步长,使性能获得更好的提升。具体操作参见安装前配置。
- 下载Milvus安装包,放在主目录下(~),参见《Milvus数据库 安装指南》完成Milvus的编译安装。
获取路径请参见表2 操作系统和软件要求。默认已满足Milvus的所有环境要求。
- 获取加速优化特性的补丁文件0001-hnsw-scann-sve-pf.patch,将其上传到主目录下。
获取路径请参见表2 操作系统和软件要求。
- 进入安装目录下的“./cmake_build/thirdparty/knowhere/knowhere-src”目录,并执行以下命令,合入加速优化特性。没有输出则说明合入成功。
1 2
cd cmake_build/thirdparty/knowhere/knowhere-src git apply --whitespace=nowarn < ~/0001-hnsw-scann-sve-pf.patch
- “./cmake_build/thirdparty/knowhere/knowhere-build”目录下,执行以下命令编译Knowhere组件,使用优化特性。
1 2 3
cd ../knowhere-build make -sj cp -r ../../../lib/libknowhere.so ../../../../internal/core/output/lib64/
- 执行以下命令,确认是否使能加速特性。
1
strings ~/milvus/internal/core/output/lib64/libknowhere.so | grep sve
若返回SVE相关信息,表示加速特性使能成功。
1
GNU C++17 10.3.1 -march=armv8-a+sve -mlittle-endian -mabi=lp64 -g -O3 -O3 -std=gnu++17 -std=gnu++17 -std=gnu++17 -fopenmp -fPIC
- 通过ann-benchmarks gist数据集进行测试,可以得到使用加速优化特性前后的性能提升效果,如图1 加速优化特性优化前后性能对比所示。详细测试步骤请参见《Milvus数据库ann-benchmarks 测试指导》。
父主题: 特性指南