DiskANN基于图的近似近邻搜索索引

联合创作 · 2023-09-29 03:15

DiskANN 的目标是构建可扩展、高性能且具有成本效益的近似最近邻搜索算法。该项目采用了 Microsoft 开放源代码行为准则。

Linux 构建:

通过 apt-get 和 Intel MKL 安装以下软件包,方法是下载安装程序或使用 apt

sudo apt install cmake g++ libaio-dev libgoogle-perftools-dev clang-format-4.0 libboost-dev

构建

mkdir build && cd build && cmake .. && make -j 

Windows 构建:

Windows 版本已经过 Visual Studio 2017 和 Visual Studio 2019 的企业版测试。它应该也适用于社区版和专业版,无需任何更改。

先决条件:

  • 从 https://cmake.org 安装 CMAKE(v3.15.2 或更高版本)

  • 从 https://software.intel.com/en-us/mkl 安装 MKL

  • 从 https://www.boost.org 安装/下载 Boost

  • 环境变量:

    • 将名为 INTEL_ROOT 的新系统环境变量设置到 MKL 安装下的“windows”文件夹(例如,如果您的安装文件夹是“C:\Program Files (x86)\IntelSWtools”,请将 INTEL_ROOT 设置为“C:\Program Files” (x86)\IntelSWtools\compilers_and_libraries\windows")
    • 将环境变量 BOOST_ROOT 设置为您的 boost 文件夹。

构建步骤:

  • 打开一个新的命令提示符窗口
  • 在 diskann 下创建一个“build”目录
  • 切换到“build”目录并运行
<full-path-to-cmake>\cmake -G "Visual Studio 16 2019" -B. -A x64 ..

或者

<full-path-to-cmake>\cmake -G "Visual Studio 15 2017" -B. -A x64 ..

注意:由于 VS 自带(较旧)版本的 cmake,您必须指定 cmake 的完整路径以确保使用正确的版本。

  • 这将在“build”目录中创建一个“diskann”解决方案文件
  • 打开“diskann”解决方案并构建“diskann”项目。
  • 然后使用作为解决方案一部分的 ALL_BUILD 项目构建所有其他二进制文件
  • 生成的二进制文件存储在 diskann/x64/Debug 或 diskann/x64/Release 目录中。

要从命令行构建,请转到“build”目录并使用 msbuild 首先构建“diskpriority_io”和“diskann_dll”项目。然后构建整个解决方案,如下所示。

msbuild src\dll\diskann.vcxproj
msbuild diskann.sln

检查 msbuild 文档以获取其他选项,包括在调试和发布版本之间进行选择。

用法:

我们现在详细介绍主要二进制文件,使用它们可以构建和搜索驻留在内存中的索引以及驻留在 SSD 中的索引。

浏览 7
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报