以图搜图升级版faiss框架二之faiss 安装

1.faiss 介绍*
Faiss是一个用于高效相似性搜索和密集向量聚类的库。它包含搜索任意大小的向量集的算法,最多可能不适合RAM。它还包含用于评估和参数调整的支持代码。Faiss是用C ++编写的,包含Python / numpy的完整包装器。一些最有用的算法是在GPU上实现的。它由Facebook AI Research开发。
2. 通过Conda安装
安装FAISS最简单的方法是使用Anaconda。我们经常将稳定版本推送到pytorch conda频道。
目前我们在Linux和OSX上都支持faiss-cpu。我们还在Linux系统上提供了使用CUDA8 / CUDA9 / CUDA10编译的faiss-gpu。
你可以轻松安装它
#CPU version only
conda install faiss-cpu -c pytorch
#GPU version
conda install faiss-gpu cudatoolkit=8.0 -c pytorch # For CUDA8
conda install faiss-gpu cudatoolkit=9.0 -c pytorch # For CUDA9
conda install faiss-gpu cudatoolkit=10.0 -c pytorch # For CUDA10
3. faiss 源码编译安装
cent os 7
步骤一:环境安装,安装gcc及g++
安装gcc:
yum install gcc

安装g++:
yum install gcc-c++ (权限不够,用在root权限下安装)

#查看gcc版本,如果是gcc4.8以下建议升级到gcc4.8
gcc -v

步骤二:安装Faiss依赖的数学库(openblas 和 lapack)
安装OpenBLAS
#没有安装git,先安装git,CentOS安装git
#yum install git

git clone https://github.com/xianyi/OpenBLAS.git
cd OpenBLAS

#如果没有安装gfortran
#yum install gcc-gfortran (unbuntu版 执行 sudo apt-get install gfortran)
make FC=gfortran

#将OpenBLAS安装在/opt下
make install

#之后将编译好的动态库链接至/usr/lib目录下
ln -s /opt/OpenBLAS/lib/libopenblas.so /usr/lib/libopenblas.so

ln -s /opt/OpenBLAS/lib/libopenblas.so /usr/lib64/libopenblas.so

在 /etc/profile中加入
LD_LIBRARY_PATH=/opt/OpenBLAS/lib
export LD_LIBRARY_PATH

安装lapack

下载lapack源码

wget http://www.netlib.org/lapack/lapack-3.4.2.tgz

tar -zxf lapack-3.4.2.tgz

首先当然是进入lapack-3.4.2文件夹,然后根据平台的特点,将INSTALL目录下对应的make.inc.XXX复制一份到 lapack-3.4.2目录下,并命名为make.inc, 这里我复制的是INSTALL/make.inc.gfortran,因为我这里用的是gfortran编译器
cd lapack-3.4.2

cp ./INSTALL/make.inc.gfortran ./

mv make.inc.gfortran make.inc

修改lapack-3.4.2/Makefile,因为lapack以来于blas库,所以需要做如下修改(注释第一句话,去掉注释第二句话):

#lib: lapacklib tmglib
lib: blaslib variants lapacklig tmglib

接着进行编译:

编译所有的lapack文件

make
进入lapacke 文件夹,这个文件夹包含lapack的C语言接口文件
cd lapacke
编译lapacke
make

由于lapack的makefile文件中没有make isntall 命令,需要手工进行安装
将lapacke的头文件复制到系统头文件目录

cp include/*.h /usr/include

返回到 lapack-3.4.2 目录
cd …
将生成的所有库文件复制到系统库目录
cp *.a /usr/lib
这里的头文件包括: lapacke.h, lapacke_config.h, lapacke_mangling.h,lapacke_mangling_with_flags.h lapacke_utils.h
生成的库文件包括: liblapack.a, liblapacke.a, librefblas.a,libtmglib.a

步骤三:编译安装Faiss
下载FAISS源码.
git clone https://github.com/facebookresearch/faiss.git
进入FAISS源码目录.
cd faiss

根据系统配置编译环境. [Linux 为例]
cp example_makefiles/makefile.inc.Linux ./makefile.inc
接着需要验证步骤二中两个数学库安装是否成功,需要执行BLAS测试用例
首先先执行./configure,看看环境是否符合编译条件,其中有一些不是必选项,一般管制输出日志的最后一句话有无错误即可
./configure
makefile.inc 2改3
PYTHONCFLAGS = -I/usr/local/python3/Include -I/usr/local/python3/include/python3.6m/ -I/usr/local/python3/lib/python3.6/site-packages/numpy/core/include -I/usr/local/include/faiss -I
PYTHON = python3

之后进行编译用例测试,若无报错即代表数学库安装成功
make misc/test_blas
./misc/test_blas
错误Intentional Lapack error
swig 2.0.3版本太老,不能解析C++11.见 swig 3 安装

接下来终于到了最终的编译安装Faiss的环节了
执行最重要的make & make install
make
make install
可以在项目根目录下看见编译好的静态库和动态库

make py
cd python
make install

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值