开发者
Rate This Document
Findability
Accuracy
Completeness
Readability
在线提单
论坛求助

兼容性验证

本章节提供在鲲鹏平台进行开源hnswlib兼容性验证的方法,包括获取hnswlib开源代码,编写测试脚本,执行测试脚本。

hnswlib是Hierarchical Navigable Small World(分层可导航小世界)图检索算法的开源实现,采用分层贪心搜索策略快速查找相似节点,广泛用于高效的近似最近邻搜索(Approximate Nearest Neighbor, ANN)。hnswlib的兼容性验证方法如下所示。

  1. 下载hnswlib开源代码。
    git clone -b v0.8.0 https://github.com/nmslib/hnswlib.git
    cd /path/to/hnswlib
  2. 修改CMakeLists.txt。
    1. 编辑CMakeLists.txt文件。
      vim CMakeLists.txt
    2. 将文件中的“-march=native”修改为“-march=armv8.2-a+dotprod”
    3. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
  3. 添加测试脚本。
    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
  4. 为脚本添加运行权限。
    chmod +x run.sh
  5. 运行脚本,运行测试代码。
    ./run.sh

    测试结果如下图所示。