鲲鹏社区首页
中文
注册
开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

兼容性验证

本章节提供在鲲鹏平台进行开源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。
    vim CMakeLists.txt

    将文件中的“-march=native”修改为“-march=armv8.2-a+dotprod”

    “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

    测试结果如下图所示。