From cc14e2ed59d298c978204930444dba1740da5329 Mon Sep 17 00:00:00 2001 From: Xiangyu Wang Date: Mon, 17 Jun 2019 14:15:07 +0800 Subject: [PATCH 1/4] add support arm Former-commit-id: ecb01d5728e276f2aae6162cf280d1cf959a1235 --- cpp/cmake/ThirdPartyPackages.cmake | 33 +++++++++++++++++++++--------- cpp/src/CMakeLists.txt | 2 -- cpp/thirdparty/versions.txt | 4 ++-- 3 files changed, 25 insertions(+), 14 deletions(-) diff --git a/cpp/cmake/ThirdPartyPackages.cmake b/cpp/cmake/ThirdPartyPackages.cmake index f42c279a8d..579416d1bc 100644 --- a/cpp/cmake/ThirdPartyPackages.cmake +++ b/cpp/cmake/ThirdPartyPackages.cmake @@ -152,7 +152,7 @@ if("${MAKE}" STREQUAL "") endif() endif() -set(MAKE_BUILD_ARGS "-j4") +set(MAKE_BUILD_ARGS "-j2") ## Using make -j in sub-make is fragile ## see discussion https://github.com/apache/MEGASEARCH/pull/2779 @@ -704,14 +704,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 @@ -744,7 +747,10 @@ if(MEGASEARCH_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() # ---------------------------------------------------------------------- @@ -1271,17 +1277,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=ON + -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) @@ -1381,6 +1389,8 @@ macro(build_thrift) ${MAKE_BUILD_ARGS} CMAKE_ARGS ${THRIFT_CMAKE_ARGS} + INSTALL_COMMAND + ${MAKE} install DEPENDS ${THRIFT_DEPENDENCIES} ${EP_LOG_OPTIONS}) @@ -1399,7 +1409,10 @@ if(MEGASEARCH_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 e3943cf594..dad1134e92 100644 --- a/cpp/src/CMakeLists.txt +++ b/cpp/src/CMakeLists.txt @@ -104,7 +104,6 @@ if (GPU_VERSION STREQUAL "ON") libgomp.a libopenblas.a libgfortran.a - libquadmath.a cudart cublas libsqlite3.a @@ -119,7 +118,6 @@ else() libgomp.a libopenblas.a libgfortran.a - libquadmath.a libsqlite3.a libprometheus-cpp-push.a libprometheus-cpp-pull.a diff --git a/cpp/thirdparty/versions.txt b/cpp/thirdparty/versions.txt index b2d076ee56..cac0459cf7 100644 --- a/cpp/thirdparty/versions.txt +++ b/cpp/thirdparty/versions.txt @@ -26,7 +26,7 @@ BOOST_VERSION=1.70.0 BZIP2_VERSION=1.0.6 EASYLOGGINGPP_VERSION=v9.96.7 -FAISS_VERSION=master +FAISS_VERSION=7b07685 GTEST_VERSION=1.8.1 LAPACK_VERSION=v3.8.0 LZ4_VERSION=v1.9.1 @@ -65,4 +65,4 @@ DEPENDENCIES=( "MEGASEARCH_ZSTD_URL zstd-${ZSTD_VERSION}.tar.gz https://github.com/facebook/zstd/archive/${ZSTD_VERSION}.tar.gz" ) -# vim: set filetype=sh: \ No newline at end of file +# vim: set filetype=sh: From f48ffc58a1014c0bc78a37bd38484aa83053ce7b Mon Sep 17 00:00:00 2001 From: wxyu Date: Mon, 17 Jun 2019 15:32:25 +0800 Subject: [PATCH 2/4] MS-88 add support for arm arch Former-commit-id: db52dc345c907874d4fde1c0f048bab3cdc207f5 --- cpp/CHANGELOG.md | 1 + cpp/src/CMakeLists.txt | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/cpp/CHANGELOG.md b/cpp/CHANGELOG.md index 4134528d64..df9cd36e0a 100644 --- a/cpp/CHANGELOG.md +++ b/cpp/CHANGELOG.md @@ -33,6 +33,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/src/CMakeLists.txt b/cpp/src/CMakeLists.txt index f4ecce1ad5..b7d33ea9ad 100644 --- a/cpp/src/CMakeLists.txt +++ b/cpp/src/CMakeLists.txt @@ -101,6 +101,13 @@ else() ) 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") From d65da423b82a992be1c08f6e53137efff170e5eb Mon Sep 17 00:00:00 2001 From: wxyu Date: Mon, 17 Jun 2019 15:39:11 +0800 Subject: [PATCH 3/4] update .gitignore Former-commit-id: e155a9e7911403958bf9c0246d3e9da529451266 --- cpp/.gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/cpp/.gitignore b/cpp/.gitignore index 4b9079031f..b9ba83ac8a 100644 --- a/cpp/.gitignore +++ b/cpp/.gitignore @@ -1,3 +1,4 @@ milvus/ conf/server_config.yaml version.h +megasearch/ From 4b1ef8e92e8edaef41d9ff5790d26567fa8d5c06 Mon Sep 17 00:00:00 2001 From: wxyu Date: Mon, 17 Jun 2019 15:42:18 +0800 Subject: [PATCH 4/4] update thrift cmake arguments Former-commit-id: eea86175005e6a0e67c6c7e2f2d404d568671095 --- cpp/cmake/ThirdPartyPackages.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/cmake/ThirdPartyPackages.cmake b/cpp/cmake/ThirdPartyPackages.cmake index a51c39c58f..147fed8e0f 100644 --- a/cpp/cmake/ThirdPartyPackages.cmake +++ b/cpp/cmake/ThirdPartyPackages.cmake @@ -1435,7 +1435,7 @@ macro(build_thrift) -DBOOST_ROOT=${BOOST_PREFIX} -DWITH_CPP=ON -DWITH_STATIC_LIB=ON - -DBUILD_SHARED_LIBS=ON + -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF -DBUILD_TUTORIALS=OFF