Ubuntu 16.0.4下源码编译faiss库

记录一下编译faiss库的过程
首先到 https://github.com/facebookresearch/faiss 下载一下最新的发布包 faiss-1.7.2.tar.gz

tar -xzvf faiss-1.7.2.tar.gz
cd faiss-1.7.2
mkdir build
cd build
#只编译C++库,使用CPU,不需要PYTHON和GPU
sudo cmake .. -DBUILD_SHARED_LIBS=OFF -DFAISS_ENABLE_GPU=OFF  -DFAISS_ENABLE_PYTHON=OFF -DBLA_VENDOR=Intel10_64_dyn -DMKL_LIBRARIES=/opt/intel/oneapi/mkl/latest/lib/intel64/
sudo make faiss -j

过程中碰到的问题以及解决方法
1. ubuntu 16.0.4自带的cmake版本不够,
处理方法,到 https://cmake.org/files/v3.24/ 下载 cmake-3.24.2-linux-x86_64.tar.gz

wget https://cmake.org/files/v3.24/cmake-3.24.2-linux-x86_64.tar.gz
tar -xzvf cmake-3.24.2-linux-x86_64.tar.gz
cd cmake-3.24.2-linux-x86_64
#sudo cp -ap /usr/bin/cmake /usr/bin/cmake35
#sudo cp -ap bin/cmake /usr/bin/cmake324
sudo cp -ap bin/cmake /usr/bin/cmake
sudo cp -apr share/cmake-3.24/ /usr/share/cmake-3.24

2. 提示缺少MKL库
到Intel网站下载安装 https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl-download.html
目前下载到的是 l_onemkl_p_2022.2.0.8748_offline.sh

sudo ./l_onemkl_p_2022.2.0.8748_offline.sh

按照提示一路确认下去

#导入mkl的环境
. /opt/intel/oneapi/mkl/latest/env/vars.sh
#可以去掉cmake命令中的参数
-DBLA_VENDOR=Intel10_64_dyn -DMKL_LIBRARIES=/opt/intel/oneapi/mkl/latest/lib/intel64/

3.提示找不到BLA库
设置 -DBLA_VENDOR=Intel10_64_dyn -DMKL_LIBRARIES=/opt/intel/oneapi/mkl/latest/lib/intel64/
库目录根据实际安装路径定,上面是默认路径

Popularity: 2% [?]

Random Posts