diff --git a/cpp/.gitignore b/cpp/.gitignore index 4b9079031f92140f67c6c8ffe2e92d8dcee960f2..b9ba83ac8aacd24a907adfcc86d96d5864b89227 100644 --- a/cpp/.gitignore +++ b/cpp/.gitignore @@ -1,3 +1,4 @@ milvus/ conf/server_config.yaml version.h +megasearch/ diff --git a/cpp/CHANGELOG.md b/cpp/CHANGELOG.md index 2231ab66754e2066a37b10a4f4e9df1353b0f161..63d57e4beb8c05cec57916636c428d663a1d4d61 100644 --- a/cpp/CHANGELOG.md +++ b/cpp/CHANGELOG.md @@ -6,6 +6,7 @@ Please mark all change in change log and use the ticket from JIRA. ## Bug - MS-80 - Fix server hang issue +- MS-89 - Fix compile failed, libgpufaiss.a link missing ## Improvement - MS-82 - Update server startup welcome message @@ -34,6 +35,7 @@ Please mark all change in change log and use the ticket from JIRA. ## Task - MS-74 - Change README.md in cpp +- MS-88 - Add support for arm architecture # Milvus 0.2.0 (2019-05-31) diff --git a/cpp/cmake/ThirdPartyPackages.cmake b/cpp/cmake/ThirdPartyPackages.cmake index 9addc6679322a00242322d09fa53e7a52541e00c..147fed8e0fd6978eed8658c3bf61816a72503bf0 100644 --- a/cpp/cmake/ThirdPartyPackages.cmake +++ b/cpp/cmake/ThirdPartyPackages.cmake @@ -158,7 +158,7 @@ if("${MAKE}" STREQUAL "") endif() endif() -set(MAKE_BUILD_ARGS "-j4") +set(MAKE_BUILD_ARGS "-j2") ## Using make -j in sub-make is fragile #if(${CMAKE_GENERATOR} MATCHES "Makefiles") @@ -820,14 +820,17 @@ macro(build_faiss) # BUILD_COMMAND # ${MAKE} ${MAKE_BUILD_ARGS} BUILD_COMMAND - ${MAKE} - ${MAKE_BUILD_ARGS} all + ${MAKE} ${MAKE_BUILD_ARGS} all + COMMAND + cd gpu && make ${MAKE_BUILD_ARGS} BUILD_IN_SOURCE 1 # INSTALL_DIR # ${FAISS_PREFIX} -# INSTALL_COMMAND -# "" + INSTALL_COMMAND + ${MAKE} install + COMMAND + ln -s faiss_ep ../faiss BUILD_BYPRODUCTS ${FAISS_STATIC_LIB}) # DEPENDS @@ -866,7 +869,10 @@ 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() # ---------------------------------------------------------------------- @@ -1426,17 +1432,19 @@ macro(build_thrift) ${EP_COMMON_CMAKE_ARGS} "-DCMAKE_INSTALL_PREFIX=${THRIFT_PREFIX}" "-DCMAKE_INSTALL_RPATH=${THRIFT_PREFIX}/lib" - -DBUILD_SHARED_LIBS=OFF - -DBUILD_TESTING=OFF - -DBUILD_EXAMPLES=OFF + -DBOOST_ROOT=${BOOST_PREFIX} + -DWITH_CPP=ON + -DWITH_STATIC_LIB=ON + -DBUILD_SHARED_LIBS=OFF + -DBUILD_TESTING=OFF + -DBUILD_EXAMPLES=OFF -DBUILD_TUTORIALS=OFF -DWITH_QT4=OFF + -DWITH_QT5=OFF -DWITH_C_GLIB=OFF -DWITH_JAVA=OFF -DWITH_PYTHON=OFF -DWITH_HASKELL=OFF - -DWITH_CPP=ON - -DWITH_STATIC_LIB=ON -DWITH_LIBEVENT=OFF -DCMAKE_BUILD_TYPE=Release) @@ -1536,6 +1544,8 @@ macro(build_thrift) ${MAKE_BUILD_ARGS} CMAKE_ARGS ${THRIFT_CMAKE_ARGS} + INSTALL_COMMAND + ${MAKE} install DEPENDS ${THRIFT_DEPENDENCIES} ${EP_LOG_OPTIONS}) @@ -1554,7 +1564,10 @@ if(MILVUS_WITH_THRIFT) # TODO: Don't use global includes but rather target_include_directories # MESSAGE(STATUS ${THRIFT_PREFIX}/lib/) link_directories(SYSTEM ${THRIFT_PREFIX}/lib/) + link_directories(SYSTEM ${CMAKE_CURRENT_BINARY_DIR}/thrift_ep-prefix/src/thrift_ep-build/lib) include_directories(SYSTEM ${THRIFT_INCLUDE_DIR}) + include_directories(SYSTEM ${THRIFT_PREFIX}/lib/cpp/src) + include_directories(SYSTEM ${CMAKE_CURRENT_BINARY_DIR}/thrift_ep-prefix/src/thrift_ep-build) endif() # ---------------------------------------------------------------------- diff --git a/cpp/src/CMakeLists.txt b/cpp/src/CMakeLists.txt index 24b3bfff566a467d97ee0c421e1aca249a60da5a..4826ff2706edba93f270f35ba9109521040a63b5 100644 --- a/cpp/src/CMakeLists.txt +++ b/cpp/src/CMakeLists.txt @@ -62,6 +62,7 @@ set(third_party_libs sqlite thrift yaml-cpp + gpufaiss faiss lapack openblas @@ -88,7 +89,6 @@ if (GPU_VERSION STREQUAL "ON") pthread libgomp.a libgfortran.a - libquadmath.a cudart cublas ${CUDA_TOOLKIT_ROOT_DIR}/lib64/stubs/libnvidia-ml.so @@ -98,11 +98,17 @@ else() pthread libgomp.a libgfortran.a - libquadmath.a ${CUDA_TOOLKIT_ROOT_DIR}/lib64/stubs/libnvidia-ml.so ) endif () +if (NOT ${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm") + set(engine_libs + ${engine_libs} + libquadmath.a + ) +endif () + if (ENABLE_LICENSE STREQUAL "ON") link_directories("${CUDA_TOOLKIT_ROOT_DIR}/lib64/stubs") link_directories("${CUDA_TOOLKIT_ROOT_DIR}/lib64") diff --git a/cpp/thirdparty/versions.txt b/cpp/thirdparty/versions.txt index dde2d8bb03ef8f211a44bb47e8f59c3eb08d9f46..484267b068361d429ced857e9096c211013990d2 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=v1.5.2 +FAISS_VERSION=7b07685 GTEST_VERSION=1.8.1 JSONCONS_VERSION=0.126.0 LAPACK_VERSION=v3.8.0 @@ -18,4 +18,4 @@ YAMLCPP_VERSION=0.6.2 ZLIB_VERSION=v1.2.11 ZSTD_VERSION=v1.4.0 -# vim: set filetype=sh: \ No newline at end of file +# vim: set filetype=sh: