cmake编译faiss源码记录

Faiss是一个开源的FacebookAI项目,专注于大规模向量检索。它利用聚类、压缩和量化技术提供快速、准确的搜索,适用于信息检索、推荐系统和图像识别。本文介绍了如何下载源码、安装依赖及编译Faiss以适应不同需求,包括GPU加速选项。
摘要由CSDN通过智能技术生成

简介

Faiss(Facebook AI Similarity Search)是一个由Facebook AI研发并开源的,用于大规模向量检索的库。其核心算法采用了聚类、压缩和量化等技术,以优化最近邻搜索的效率和准确性。Faiss提供了高效的索引构建和最近邻搜索功能,特别适用于搜索大规模数据集。

Faiss支持多种数据类型,包括图像、文本和嵌入向量等,具有出色的性能和准确性。它的特点包括速度快、可扩展性强,能够在短时间内处理大量数据,提高检索效率。Faiss检索算法具有快速查找最相似向量的能力,可以准确快速地定位目标信息。

在应用方面,Faiss在信息检索、推荐系统和图像识别等领域都有广泛的应用。例如,它可以用于构建文档或图像的相似性搜索引擎,快速找到与查询向量最相似的文档或图像;在推荐系统中,Faiss可以快速查找用户喜欢的物品或者寻找相似的用户,为用户提供更加个性化和准确的推荐结果;在图像识别领域,Faiss可以用于构建图像特征的索引,实现快速的相似图像搜索和图像聚类。

此外,Faiss提供了多种索引算法,如FAISS索引、PTB索引和SVN索引等,以满足不同规模数据集的需求。其中,FAISS索引采用树形结构对向量进行划分,并在每个子节点上计算向量的局部亲密度,具有较高的检索效率;PTB索引则通过产品量化对向量进行编码,具有较小的内存占用和较快的索引构建速度;SVN索引则通过特征向量归一化,使得相似度计算更加鲁棒。

总的来说,Faiss作为一种高效的多模态向量检索引擎,为大规模数据集的向量检索提供了强大的支持,是信息检索、推荐系统和图像识别等领域的重要工具。

下载源码

源码位置

安装环境

sudo apt install libblas-dev
sudo apt-get install liblapack-dev
sudo apt-get install swig

编译

  • 常规选项:
    -DFAISS_ENABLE_GPU=OFF 禁用构建 GPU 索引
    -DFAISS_ENABLE_PYTHON=OFF 禁用构建 Python 绑定
    -DFAISS_ENABLE_RAFT=ON 构建 RAFT 实现 IVF-Flat 和 IVF-PQ GPU 加速指数
    -DBUILD_TESTING=OFF 禁用构建 C++ 测试,
    -DBUILD_SHARED_LIBS=ON 构建共享库
    -DFAISS_ENABLE_C_API=ON 启用构建 C API

  • 与优化相关的选项:

    -DCMAKE_BUILD_TYPE=Release 启用泛型编译器 优化选项(例如在 GCC 上启用-O3)
    -DFAISS_OPT_LEVEL=avx2 启用所需的编译器标志 使用优化的 SIMD 指令生成代码avx2/avx512

  • BLAS 相关选项:

    -DBLA_VENDOR=Intel10_64_dyn -DMKL_LIBRARIES=/path/to/mkl/libs要使用 英特尔 MKL BLAS 实施,明显快于 OpenBLAS (有关该选项值的更多信息,请参见 CMake 文档),BLA_VENDOR

  • GPU 相关选项:

    -DCUDAToolkit_ROOT=/path/to/cuda-10.1为了暗示 CUDA 工具包(有关更多信息,请参阅 CMake 文档),
    -DCMAKE_CUDA_ARCHITECTURES="75;72"用于指定哪些 GPU 架构 针对 (请参阅 CUDA 文档 确定应选择的架构),

  • 与 Python 相关的选项:

    -DPython_EXECUTABLE=/path/to/python3.7为了构建 Python 接口与默认 python 不同的 python(请参阅 CMake 文档)

cmake -B build -DFAISS_ENABLE_PYTHON=OFF -DFAISS_ENABLE_GPU=ON -DBUILD_SHARED_LIBS=ON -DFAISS_ENABLE_C_API=ON -DCMAKE_BUILD_TYPE=Release  -DCMAKE_INSTALL_PREFIX=/home/disk/liangbaikai/faiss/faiss_install .

cd build
make
make install
  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值