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

使用示例

下方使用示例以使用sift-128-euclidean.hdf5数据集,线程数80为例。

  1. 获取数据集。
    1
    wget http://ann-benchmarks.com/sift-128-euclidean.hdf5 --no-check-certificate
    
  2. 获取测试程序。
    获取链接。分支为v1.2.0,假设程序运行的目录为“/path/to/kbest_test/test”,完整的目录结构应如下所示:
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    ├── build                                                   // 存放构建文件,编译后自动生成
    ├── CMakeLists.txt                                          // 编译配置文件
    ├── data                                                    // 存放数据集
          └── sift-128-euclidean.hdf5
    ├── graph                                                   // 存放构建好的图索引,需手动创建。
          └── sift_tsdg.kgn                                     // 构建好的图索引,运行可执行文件run后(对应数据集配置文件“index_save_or_load”为save,"save_types"为save_graph)时生成
    ├── searcher                                                // 存放构建好的检索器,需手动创建。
          └── sift.ksn                                          // 构建好的检索器,运行可执行文件run后(对应数据集配置文件“index_save_or_load”为save,"save_types"为save_searcher)时生成
    ├── main.cpp                                                // 包含运行函数的文件
    ├── run                                                     // 编译后生成的可执行文件
    └── sift.config                                             // 对应数据集配置文件
    

运行步骤如下:

  1. 假设程序运行的目录为“/path/to/kbest_test/test”,存放数据集至当前路径下的data文件夹。
  2. 若是第一次执行,确保sift.config文件中的“index_save_or_load”“save”;后续执行时可改为“load”,使用构建好的图索引或检索器查询。
  3. 安装相关依赖。
    1
    yum install hdf5 hdf5-devel openssl-devel libcurl-devel numactl numactl-devel
    
  4. 编译运行程序。
    1
    2
    3
    4
    5
    mkdir build
    cd build
    cmake ..
    make -j
    mv run ../
    
  5. 运行可执行文件run。
    1
    ./run 80 2 -1 sift.config
    

    测试指令参数与解释如下所示。

    ./run <threads> <query_mode> <batch_size> <config_name>
    • “threads”表示实际运行时的线程数。
    • “query_mode”表示测试模式选择,设置为“1”时表示batch查询模式,即一次查询“batch_size”条query;设置为“2”时表示并发单query查询模式,即在并发条件下每个线程仅查询单条query,此时“batch_size”参数无效。
    • “batch_size”表示batch查询模式下一次查询的query数量,设置为“-1”时表示一次查询数据集中所有的查询query。
    • “config_name”表示测试数据集对应的配置文件名称。

    执行结果如下。