本文只介绍graphvite依赖库faiss 的安装,graphvite的详细安装过程请参考(二)Graphvite 安装过程整理
---------------------------分割线----------------------------------------------------------------------------------
这是实验室安排我调试的第三个项目的源码,记录一下今天工作,仅供参考,欢迎交流!
github 源码地址:https://github.com/DeepGraphLearning/graphvite.git
安装方法有我就不过多说了,就说我遇到的问题吧!
我的系统是Centos 7
我在make的时候遇到了这样一个问题:
make error: An implementation of BLAS is required but none was found.
具体如下:
checking for sgemm_ in -lmkl_intel_lp64... no
checking for sgemm_ in -lmkl... no
checking for sgemm_ in -lopenblas... no
checking for ATL_xerbla in -latlas... no
checking for sgemm_ in -lblas... no
checking for sgemm_ in -framework vecLib... no
checking for sgemm_ in -lcxml... no
checking for sgemm_ in -ldxml... no
checking for sgemm_ in -lscs... no
checking for sgemm_ in -lcomplib.sgimath... no
checking for sgemm_ in -lblas... (cached) no
checking for sgemm_ in -lblas... (cached) no
configure: error: An implementation of BLAS is required but none was found.
make[2]: *** [faiss/src/faiss-stamp/faiss-configure] Error 1
make[1]: *** [CMakeFiles/faiss.dir/all] Error 2
make: *** [all] Error 2
解决方案:
1、首先定位错误:从error描述应该是在配置faiss的时候BLAS这个库没有安装,那么问题来了这个项目是graphvite 跟faiss有什么关系,这时我打开CMakeList.txt文件,通过查看源码发现,该项目会判断是否安装了faiss这个库,如果没有就会给你安装,源码如下:
# faiss
if (NOT FAISS_PATH)
ExternalProject_Add(faiss
GIT_REPOSITORY https://github.com/facebookresearch/faiss.git
UPDATE_DISCONNECTED ${SKIP_UPDATE}
PREFIX faiss
SOURCE_DIR ${EXTERNAL_DIR}/faiss
BINARY_DIR ${EXTERNAL_DIR}/faiss
INSTALL_DIR ${PROJECT_BINARY_DIR}/faiss
CONFIGURE_COMMAND test -e makefile.inc ||
${EXTERNAL_DIR}/faiss/configure --with-cuda=${CUDA_ROOT} --with-cuda-arch=${CUDA_ARCH}
BUILD_COMMAND test -e libfaiss.so || make -j
INSTALL_COMMAND test -e ${PROJECT_BINARY_DIR}/faiss/include/faiss/gpu/GpuIndexFlat.h ||
make install prefix=${PROJECT_BINARY_DIR}/faiss)
include_directories(${PROJECT_BINARY_DIR}/faiss/include)
link_directories(${PROJECT_BINARY_DIR}/faiss/lib)
set(FAISS_LIBRARY ${PROJEC