兼容性验证
本章节提供在鲲鹏平台进行开源hnswlib兼容性验证的方法,包括获取hnswlib开源代码,编写测试脚本,执行测试脚本。
hnswlib是Hierarchical Navigable Small World(分层可导航小世界)图检索算法的开源实现,采用分层贪心搜索策略快速查找相似节点,广泛用于高效的近似最近邻搜索(Approximate Nearest Neighbor, ANN)。hnswlib的兼容性验证方法如下所示。
- 下载hnswlib开源代码。
git clone -b v0.8.0 https://github.com/nmslib/hnswlib.git cd /path/to/hnswlib
- 修改CMakeLists.txt。
vim CMakeLists.txt
将文件中的“-march=native”修改为“-march=armv8.2-a+dotprod”。
按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 添加测试脚本。
vim run.sh
脚本文件的内容如下所示。rm -rf build mkdir build cd build cmake .. make cd ../tests/cpp python update_gen_data.py cd ../../build ./epsilon_search_test ./example_epsilon_search ./example_filter ./example_mt_filter ./example_mt_replace_deleted ./example_mt_search ./example_multivector_search ./example_replace_deleted ./example_search ./multiThreadLoad_test ./multiThread_replace_test ./multivector_search_test ./searchKnnCloserFirst_test ./searchKnnWithFilter_test ./test_updates ./test_updates update
- 为脚本添加运行权限。
chmod +x run.sh
- 运行脚本,运行测试代码。
./run.sh
测试结果如下图所示。

父主题: hnswlib说明