diff --git a/cpp/cmake/ThirdPartyPackages.cmake b/cpp/cmake/ThirdPartyPackages.cmake index 62b55dda81f9de4580adfbab135d932e4aae4cf7..fed5dece88c122b402966a888f98e6b4ccb32e12 100644 --- a/cpp/cmake/ThirdPartyPackages.cmake +++ b/cpp/cmake/ThirdPartyPackages.cmake @@ -699,7 +699,9 @@ endmacro() # ---------------------------------------------------------------------- # FAISS -set(BUILD_FAISS_WITH_MKL false) +if(NOT DEFINED BUILD_FAISS_WITH_MKL) + set(BUILD_FAISS_WITH_MKL OFF) +endif() if(EXISTS "/proc/cpuinfo") FILE(READ /proc/cpuinfo PROC_CPUINFO) @@ -708,8 +710,8 @@ if(EXISTS "/proc/cpuinfo") STRING(REGEX MATCH "${VENDOR_ID_RX}" VENDOR_ID "${PROC_CPUINFO}") STRING(REGEX REPLACE "${VENDOR_ID_RX}" "\\1" VENDOR_ID "${VENDOR_ID}") - if(${VENDOR_ID} STREQUAL "GenuineIntel") - set(BUILD_FAISS_WITH_MKL true) + if(NOT ${VENDOR_ID} STREQUAL "GenuineIntel") + set(BUILD_FAISS_WITH_MKL OFF) endif() endif() @@ -729,7 +731,7 @@ macro(build_faiss) set(FAISS_CFLAGS ${EP_C_FLAGS}) set(FAISS_CXXFLAGS ${EP_CXX_FLAGS}) - if(${BUILD_FAISS_WITH_MKL} STREQUAL "true") + if(${BUILD_FAISS_WITH_MKL} STREQUAL "ON") message(STATUS "Build Faiss with MKL") if(NOT DEFINED MKL_LIB_PATH) set(MKL_LIB_PATH "/opt/intel/compilers_and_libraries_${MKL_VERSION}/linux/mkl/lib/intel64") @@ -750,10 +752,10 @@ macro(build_faiss) if(${MILVUS_WITH_FAISS_GPU_VERSION} STREQUAL "ON") set(FAISS_CONFIGURE_ARGS ${FAISS_CONFIGURE_ARGS} "--with-cuda=${CUDA_TOOLKIT_ROOT_DIR}" - "--with-cuda-arch=\"-gencode=arch=compute_35,code=compute_35\"" - "--with-cuda-arch=\"-gencode=arch=compute_52,code=compute_52\"" - "--with-cuda-arch=\"-gencode=arch=compute_60,code=compute_60\"" - "--with-cuda-arch=\"-gencode=arch=compute_61,code=compute_61\"" + "--with-cuda-arch=\"-gencode=arch=compute_35,code=sm_35\"" + "--with-cuda-arch=\"-gencode=arch=compute_52,code=sm_52\"" + "--with-cuda-arch=\"-gencode=arch=compute_60,code=sm_60\"" + "--with-cuda-arch=\"-gencode=arch=compute_61,code=sm_61\"" ) else() set(FAISS_CONFIGURE_ARGS ${FAISS_CONFIGURE_ARGS} --without-cuda) @@ -767,26 +769,22 @@ macro(build_faiss) "./configure" ${FAISS_CONFIGURE_ARGS} BUILD_COMMAND - ${MAKE} ${MAKE_BUILD_ARGS} all - COMMAND - cd gpu && ${MAKE} ${MAKE_BUILD_ARGS} + ${MAKE} ${MAKE_BUILD_ARGS} BUILD_IN_SOURCE 1 INSTALL_COMMAND ${MAKE} install - COMMAND - ln -s faiss_ep ../faiss BUILD_BYPRODUCTS ${FAISS_STATIC_LIB}) - if(${BUILD_FAISS_WITH_MKL} STREQUAL "false") + if(${BUILD_FAISS_WITH_MKL} STREQUAL "OFF") ExternalProject_Add_StepDependencies(faiss_ep build openblas_ep lapack_ep) endif() file(MAKE_DIRECTORY "${FAISS_INCLUDE_DIR}") add_library(faiss SHARED IMPORTED) - if(${BUILD_FAISS_WITH_MKL} STREQUAL "true") + if(${BUILD_FAISS_WITH_MKL} STREQUAL "ON") set(MKL_LIBS ${MKL_LIB_PATH}/libmkl_intel_ilp64.a ${MKL_LIB_PATH}/libmkl_gnu_thread.a ${MKL_LIB_PATH}/libmkl_core.a) @@ -806,7 +804,7 @@ macro(build_faiss) add_dependencies(faiss faiss_ep) - if(${BUILD_FAISS_WITH_MKL} STREQUAL "false") + if(${BUILD_FAISS_WITH_MKL} STREQUAL "OFF") add_dependencies(faiss openblas_ep) add_dependencies(faiss lapack_ep) endif() @@ -815,7 +813,7 @@ endmacro() if(MILVUS_WITH_FAISS) - if(${BUILD_FAISS_WITH_MKL} STREQUAL "false") + if(${BUILD_FAISS_WITH_MKL} STREQUAL "OFF") resolve_dependency(OpenBLAS) get_target_property(OPENBLAS_INCLUDE_DIR openblas INTERFACE_INCLUDE_DIRECTORIES) include_directories(SYSTEM "${OPENBLAS_INCLUDE_DIR}") @@ -830,10 +828,7 @@ if(MILVUS_WITH_FAISS) resolve_dependency(FAISS) get_target_property(FAISS_INCLUDE_DIR faiss INTERFACE_INCLUDE_DIRECTORIES) include_directories(SYSTEM "${FAISS_INCLUDE_DIR}") - include_directories(SYSTEM "${CMAKE_CURRENT_BINARY_DIR}/faiss_ep-prefix/src/") - link_directories(SYSTEM ${FAISS_PREFIX}/) link_directories(SYSTEM ${FAISS_PREFIX}/lib/) - link_directories(SYSTEM ${FAISS_PREFIX}/gpu/) endif() # ---------------------------------------------------------------------- diff --git a/cpp/src/CMakeLists.txt b/cpp/src/CMakeLists.txt index 64edf5b91ef5a1aed92be90014bb9cf7e59cfb91..80603cf67316df75a53e228a4e8519368dab8808 100644 --- a/cpp/src/CMakeLists.txt +++ b/cpp/src/CMakeLists.txt @@ -72,7 +72,6 @@ set(third_party_libs sqlite thrift yaml-cpp - libgpufaiss.a faiss prometheus-cpp-push prometheus-cpp-pull @@ -93,7 +92,7 @@ set(third_party_libs if (MEGASEARCH_WITH_ARROW STREQUAL "ON") set(third_party_libs ${third_party_libs} arrow) endif() -if(${BUILD_FAISS_WITH_MKL} STREQUAL "true") +if(${BUILD_FAISS_WITH_MKL} STREQUAL "ON") set(third_party_libs ${third_party_libs} ${MKL_LIBS} ${MKL_LIBS}) diff --git a/cpp/thirdparty/versions.txt b/cpp/thirdparty/versions.txt index e8c63cad1cf927f9ade88aa934c0d331796d275d..02e20c32cba197f0ed763b98dde2ae6a4235d4f7 100644 --- a/cpp/thirdparty/versions.txt +++ b/cpp/thirdparty/versions.txt @@ -2,7 +2,7 @@ ARROW_VERSION=zilliz BOOST_VERSION=1.70.0 BZIP2_VERSION=1.0.6 EASYLOGGINGPP_VERSION=v9.96.7 -FAISS_VERSION=7b07685 +FAISS_VERSION=v1.5.3 MKL_VERSION=2019.4.243 GTEST_VERSION=1.8.1 JSONCONS_VERSION=0.126.0 diff --git a/cpp/unittest/db/CMakeLists.txt b/cpp/unittest/db/CMakeLists.txt index 736219952cdf969104daa8bc77f6d78dbaf250d5..0e3531cd339c2c4b4743ee1752a543574795e236 100644 --- a/cpp/unittest/db/CMakeLists.txt +++ b/cpp/unittest/db/CMakeLists.txt @@ -35,7 +35,6 @@ set(db_test_src cuda_add_executable(db_test ${db_test_src}) set(db_libs - libgpufaiss.a faiss cudart cublas @@ -46,7 +45,7 @@ set(db_libs mysqlpp ) -if(${BUILD_FAISS_WITH_MKL} STREQUAL "true") +if(${BUILD_FAISS_WITH_MKL} STREQUAL "ON") set(db_libs ${db_libs} ${MKL_LIBS} ${MKL_LIBS}) endif() diff --git a/cpp/unittest/faiss_wrapper/CMakeLists.txt b/cpp/unittest/faiss_wrapper/CMakeLists.txt index c4392505449dfe17678e7d95b4b95f6adbaf85fd..f7976fb60404123e74ec713bd13f39ef59068b1a 100644 --- a/cpp/unittest/faiss_wrapper/CMakeLists.txt +++ b/cpp/unittest/faiss_wrapper/CMakeLists.txt @@ -24,7 +24,6 @@ set(wrapper_libs stdc++ boost_system_static boost_filesystem_static - libgpufaiss.a faiss cudart cublas @@ -35,7 +34,7 @@ set(wrapper_libs zstd lz4 ) -if(${BUILD_FAISS_WITH_MKL} STREQUAL "true") +if(${BUILD_FAISS_WITH_MKL} STREQUAL "ON") set(wrapper_libs ${wrapper_libs} ${MKL_LIBS} ${MKL_LIBS}) endif() diff --git a/cpp/unittest/metrics/CMakeLists.txt b/cpp/unittest/metrics/CMakeLists.txt index 418544d0cafd6a7431020d91b58b56bc5a575992..d4ae934d6f658b1f8168c80fadd9b33af0d2d9bf 100644 --- a/cpp/unittest/metrics/CMakeLists.txt +++ b/cpp/unittest/metrics/CMakeLists.txt @@ -49,7 +49,6 @@ set(count_test_src add_executable(metrics_test ${count_test_src} ${require_files} ) target_link_libraries(metrics_test - libgpufaiss.a faiss cudart cublas @@ -64,7 +63,7 @@ target_link_libraries(metrics_test mysqlpp ${unittest_libs} ) -if(${BUILD_FAISS_WITH_MKL} STREQUAL "true") +if(${BUILD_FAISS_WITH_MKL} STREQUAL "ON") target_link_libraries(metrics_test ${MKL_LIBS} ${MKL_LIBS}) endif() diff --git a/cpp/unittest/server/CMakeLists.txt b/cpp/unittest/server/CMakeLists.txt index 40f5b1012884a820938c9a32c8dce92c5c8a4ed9..7a20e6287b302ebced99ebb4c2914eae20a2b1dc 100644 --- a/cpp/unittest/server/CMakeLists.txt +++ b/cpp/unittest/server/CMakeLists.txt @@ -33,7 +33,6 @@ cuda_add_executable(server_test set(require_libs stdc++ - libgpufaiss.a faiss cudart cublas @@ -48,7 +47,7 @@ set(require_libs pthread ) -if(${BUILD_FAISS_WITH_MKL} STREQUAL "true") +if(${BUILD_FAISS_WITH_MKL} STREQUAL "ON") set(require_libs ${require_libs} ${MKL_LIBS} ${MKL_LIBS}) endif()