From 8e3b4ccd578ad24bba3f1825af201cd9d085e42c Mon Sep 17 00:00:00 2001 From: Zhiru Zhu Date: Sat, 21 Dec 2019 13:37:53 +0800 Subject: [PATCH] Use openblas / lapack from apt install (#739) * remove build openblas/lapack and use find_package * update ubuntu_build_deps.sh * update build image * update build image * update CHANGELOG * trigger ci * update image * update centos build envvironment image on Jenkins CI * trigger ci --- CHANGELOG.md | 1 + ci/docker/centos-7-core.dockerfile | 3 +- ...vus-cpu-version-centos7-build-env-pod.yaml | 1 + ...vus-gpu-version-centos7-build-env-pod.yaml | 1 + core/centos7_build_deps.sh | 3 +- core/src/index/cmake/DefineOptionsCore.cmake | 2 - core/src/index/cmake/FindFAISS.cmake | 2 +- .../index/cmake/ThirdPartyPackagesCore.cmake | 194 +----------------- core/src/index/knowhere/CMakeLists.txt | 5 +- core/src/index/unittest/CMakeLists.txt | 5 +- .../unittest/faiss_benchmark/CMakeLists.txt | 5 +- .../index/unittest/faiss_ori/CMakeLists.txt | 6 +- core/ubuntu_build_deps.sh | 2 +- docker/build_env/cpu/centos7/Dockerfile | 3 +- docker/build_env/cpu/ubuntu16.04/Dockerfile | 2 +- docker/build_env/cpu/ubuntu18.04/Dockerfile | 2 +- docker/build_env/gpu/centos7/Dockerfile | 3 +- docker/build_env/gpu/ubuntu16.04/Dockerfile | 2 +- docker/build_env/gpu/ubuntu18.04/Dockerfile | 2 +- docker/deploy/cpu/centos7/Dockerfile | 2 +- docker/deploy/cpu/ubuntu16.04/Dockerfile | 2 +- docker/deploy/cpu/ubuntu18.04/Dockerfile | 2 +- docker/deploy/gpu/centos7/Dockerfile | 2 +- docker/deploy/gpu/ubuntu16.04/Dockerfile | 2 +- docker/deploy/gpu/ubuntu18.04/Dockerfile | 2 +- 25 files changed, 45 insertions(+), 211 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 731d05c70d..1241f70475 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ Please mark all change in change log and use the issue from GitHub - \#759 - Put C++ sdk out of milvus/core ## Improvement +- \#738 - Use Openblas / lapack from apt install - \#758 - Enhance config description ## Task diff --git a/ci/docker/centos-7-core.dockerfile b/ci/docker/centos-7-core.dockerfile index 5bb7ca385f..263668af04 100644 --- a/ci/docker/centos-7-core.dockerfile +++ b/ci/docker/centos-7-core.dockerfile @@ -8,7 +8,8 @@ SHELL ["/bin/bash", "-o", "pipefail", "-c"] RUN yum install -y epel-release centos-release-scl-rh && yum install -y wget curl which && \ wget -qO- "https://cmake.org/files/v3.14/cmake-3.14.3-Linux-x86_64.tar.gz" | tar --strip-components=1 -xz -C /usr/local && \ yum install -y ccache make automake git python3-pip libcurl-devel python3-devel boost-static mysql-devel \ - devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-gcc-gfortran llvm-toolset-7.0-clang llvm-toolset-7.0-clang-tools-extra mysql lcov \ + devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-gcc-gfortran llvm-toolset-7.0-clang llvm-toolset-7.0-clang-tools-extra \ + mysql lcov openblas-devel lapack-devel \ && \ rm -rf /var/cache/yum/* diff --git a/ci/jenkins/pod/milvus-cpu-version-centos7-build-env-pod.yaml b/ci/jenkins/pod/milvus-cpu-version-centos7-build-env-pod.yaml index 775e9f628f..47735937b6 100644 --- a/ci/jenkins/pod/milvus-cpu-version-centos7-build-env-pod.yaml +++ b/ci/jenkins/pod/milvus-cpu-version-centos7-build-env-pod.yaml @@ -9,6 +9,7 @@ spec: containers: - name: milvus-cpu-build-env image: registry.zilliz.com/milvus/milvus-cpu-build-env:v0.7.0-centos7 + imagePullPolicy: Always env: - name: POD_IP valueFrom: diff --git a/ci/jenkins/pod/milvus-gpu-version-centos7-build-env-pod.yaml b/ci/jenkins/pod/milvus-gpu-version-centos7-build-env-pod.yaml index 2164db267c..55abdff5a3 100644 --- a/ci/jenkins/pod/milvus-gpu-version-centos7-build-env-pod.yaml +++ b/ci/jenkins/pod/milvus-gpu-version-centos7-build-env-pod.yaml @@ -9,6 +9,7 @@ spec: containers: - name: milvus-gpu-build-env image: registry.zilliz.com/milvus/milvus-gpu-build-env:v0.7.0-centos7 + imagePullPolicy: Always env: - name: POD_IP valueFrom: diff --git a/core/centos7_build_deps.sh b/core/centos7_build_deps.sh index f415e359af..9cc5a25b66 100755 --- a/core/centos7_build_deps.sh +++ b/core/centos7_build_deps.sh @@ -3,7 +3,8 @@ sudo yum install -y epel-release centos-release-scl-rh && sudo yum install -y wget curl which && \ sudo wget -qO- "https://cmake.org/files/v3.14/cmake-3.14.3-Linux-x86_64.tar.gz" | sudo tar --strip-components=1 -xz -C /usr/local && \ sudo yum install -y ccache make automake git python3-pip libcurl-devel python3-devel boost-static mysql-devel \ -devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-gcc-gfortran llvm-toolset-7.0-clang llvm-toolset-7.0-clang-tools-extra lcov +devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-gcc-gfortran llvm-toolset-7.0-clang llvm-toolset-7.0-clang-tools-extra lcov \ +openblas-devel lapack-devel echo "source scl_source enable devtoolset-7" | sudo tee -a /etc/profile.d/devtoolset-7.sh echo "source scl_source enable llvm-toolset-7.0" | sudo tee -a /etc/profile.d/llvm-toolset-7.sh diff --git a/core/src/index/cmake/DefineOptionsCore.cmake b/core/src/index/cmake/DefineOptionsCore.cmake index ccf0048e46..38599997c0 100644 --- a/core/src/index/cmake/DefineOptionsCore.cmake +++ b/core/src/index/cmake/DefineOptionsCore.cmake @@ -75,8 +75,6 @@ define_option(KNOWHERE_BOOST_HEADER_ONLY "Use only BOOST headers" OFF) define_option(KNOWHERE_WITH_ARROW "Build with ARROW" ON) -define_option(KNOWHERE_WITH_LAPACK "Build with LAPACK library" ON) - define_option(KNOWHERE_WITH_FAISS "Build with FAISS library" ON) define_option(KNOWHERE_WITH_FAISS_GPU_VERSION "Build with FAISS GPU version" ON) diff --git a/core/src/index/cmake/FindFAISS.cmake b/core/src/index/cmake/FindFAISS.cmake index e0e6337bce..2d61592fcb 100644 --- a/core/src/index/cmake/FindFAISS.cmake +++ b/core/src/index/cmake/FindFAISS.cmake @@ -38,7 +38,7 @@ if (FAISS_FOUND) set_target_properties( faiss PROPERTIES - INTERFACE_LINK_LIBRARIES "openblas;lapack") + INTERFACE_LINK_LIBRARIES ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES}) endif () endif () endif () diff --git a/core/src/index/cmake/ThirdPartyPackagesCore.cmake b/core/src/index/cmake/ThirdPartyPackagesCore.cmake index 9ae0391f54..ec0df49a48 100644 --- a/core/src/index/cmake/ThirdPartyPackagesCore.cmake +++ b/core/src/index/cmake/ThirdPartyPackagesCore.cmake @@ -19,8 +19,6 @@ set(KNOWHERE_THIRDPARTY_DEPENDENCIES Arrow FAISS GTest - LAPACK - OpenBLAS MKL ) @@ -36,12 +34,8 @@ endforeach () macro(build_dependency DEPENDENCY_NAME) if ("${DEPENDENCY_NAME}" STREQUAL "Arrow") build_arrow() - elseif ("${DEPENDENCY_NAME}" STREQUAL "LAPACK") - build_lapack() elseif ("${DEPENDENCY_NAME}" STREQUAL "GTest") build_gtest() - elseif ("${DEPENDENCY_NAME}" STREQUAL "OpenBLAS") - build_openblas() elseif ("${DEPENDENCY_NAME}" STREQUAL "FAISS") build_faiss() elseif ("${DEPENDENCY_NAME}" STREQUAL "MKL") @@ -248,21 +242,6 @@ else () endif () set(GTEST_MD5 "2e6fbeb6a91310a16efe181886c59596") -if (DEFINED ENV{KNOWHERE_LAPACK_URL}) - set(LAPACK_SOURCE_URL "$ENV{KNOWHERE_LAPACK_URL}") -else () - set(LAPACK_SOURCE_URL "https://github.com/Reference-LAPACK/lapack/archive/${LAPACK_VERSION}.tar.gz") -endif () -set(LAPACK_MD5 "96591affdbf58c450d45c1daa540dbd2") - -if (DEFINED ENV{KNOWHERE_OPENBLAS_URL}) - set(OPENBLAS_SOURCE_URL "$ENV{KNOWHERE_OPENBLAS_URL}") -else () - set(OPENBLAS_SOURCE_URL - "https://github.com/xianyi/OpenBLAS/archive/${OPENBLAS_VERSION}.tar.gz") -endif () -set(OPENBLAS_MD5 "8a110a25b819a4b94e8a9580702b6495") - # ---------------------------------------------------------------------- # ARROW set(ARROW_PREFIX "${INDEX_BINARY_DIR}/arrow_ep-prefix/src/arrow_ep/cpp") @@ -395,153 +374,6 @@ if (KNOWHERE_WITH_ARROW AND NOT TARGET arrow_ep) include_directories(SYSTEM ${ARROW_INCLUDE_DIR}) endif () -# ---------------------------------------------------------------------- -# OpenBLAS - -macro(build_openblas) - message(STATUS "Building OpenBLAS-${OPENBLAS_VERSION} from source") - set(OPENBLAS_PREFIX "${INDEX_BINARY_DIR}/openblas_ep-prefix/src/openblas_ep") - set(OPENBLAS_INCLUDE_DIR "${OPENBLAS_PREFIX}/include") - set(OPENBLAS_STATIC_LIB - "${OPENBLAS_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}openblas${CMAKE_STATIC_LIBRARY_SUFFIX}") - set(OPENBLAS_REAL_STATIC_LIB - "${OPENBLAS_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}openblas_haswellp-r0.3.6${CMAKE_STATIC_LIBRARY_SUFFIX}") - - if (USE_JFROG_CACHE STREQUAL "ON") - set(OPENBLAS_CACHE_PACKAGE_NAME "openblas_${OPENBLAS_MD5}.tar.gz") - set(OPENBLAS_CACHE_URL "${JFROG_ARTFACTORY_CACHE_URL}/${OPENBLAS_CACHE_PACKAGE_NAME}") - set(OPENBLAS_CACHE_PACKAGE_PATH "${THIRDPARTY_PACKAGE_CACHE}/${OPENBLAS_CACHE_PACKAGE_NAME}") - - execute_process(COMMAND wget -q --method HEAD ${OPENBLAS_CACHE_URL} RESULT_VARIABLE return_code) - message(STATUS "Check the remote file ${OPENBLAS_CACHE_URL}. return code = ${return_code}") - if (NOT return_code EQUAL 0) - externalproject_add(openblas_ep - URL - ${OPENBLAS_SOURCE_URL} - ${EP_LOG_OPTIONS} - CONFIGURE_COMMAND - "" - BUILD_IN_SOURCE - 1 - BUILD_COMMAND - ${MAKE} - ${MAKE_BUILD_ARGS} - INSTALL_COMMAND - ${MAKE} - PREFIX=${OPENBLAS_PREFIX} - install - BUILD_BYPRODUCTS - ${OPENBLAS_STATIC_LIB}) - - ExternalProject_Create_Cache(openblas_ep ${OPENBLAS_CACHE_PACKAGE_PATH} "${INDEX_BINARY_DIR}/openblas_ep-prefix" ${JFROG_USER_NAME} ${JFROG_PASSWORD} ${OPENBLAS_CACHE_URL}) - else () - file(DOWNLOAD ${OPENBLAS_CACHE_URL} ${OPENBLAS_CACHE_PACKAGE_PATH} STATUS status) - list(GET status 0 status_code) - message(STATUS "DOWNLOADING FROM ${OPENBLAS_CACHE_URL} TO ${OPENBLAS_CACHE_PACKAGE_PATH}. STATUS = ${status_code}") - if (status_code EQUAL 0) - ExternalProject_Use_Cache(openblas_ep ${OPENBLAS_CACHE_PACKAGE_PATH} ${INDEX_BINARY_DIR}) - endif () - endif () - else () - externalproject_add(openblas_ep - URL - ${OPENBLAS_SOURCE_URL} - ${EP_LOG_OPTIONS} - CONFIGURE_COMMAND - "" - BUILD_IN_SOURCE - 1 - BUILD_COMMAND - ${MAKE} - ${MAKE_BUILD_ARGS} - INSTALL_COMMAND - ${MAKE} - PREFIX=${OPENBLAS_PREFIX} - install - BUILD_BYPRODUCTS - ${OPENBLAS_STATIC_LIB}) - endif () - - file(MAKE_DIRECTORY "${OPENBLAS_INCLUDE_DIR}") - add_library(openblas STATIC IMPORTED) - set_target_properties( - openblas - PROPERTIES IMPORTED_LOCATION "${OPENBLAS_STATIC_LIB}" - INTERFACE_INCLUDE_DIRECTORIES "${OPENBLAS_INCLUDE_DIR}") - - add_dependencies(openblas openblas_ep) -endmacro() - -# ---------------------------------------------------------------------- -# LAPACK - -macro(build_lapack) - message(STATUS "Building LAPACK-${LAPACK_VERSION} from source") - set(LAPACK_PREFIX "${INDEX_BINARY_DIR}/lapack_ep-prefix/src/lapack_ep") - set(LAPACK_INCLUDE_DIR "${LAPACK_PREFIX}/include") - set(LAPACK_STATIC_LIB - "${LAPACK_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}lapack${CMAKE_STATIC_LIBRARY_SUFFIX}") - set(BLAS_STATIC_LIB - "${LAPACK_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}blas${CMAKE_STATIC_LIBRARY_SUFFIX}") - - set(LAPACK_CMAKE_ARGS - ${EP_COMMON_CMAKE_ARGS} - "-DCMAKE_INSTALL_PREFIX=${LAPACK_PREFIX}" - -DCMAKE_INSTALL_LIBDIR=lib) - - if (USE_JFROG_CACHE STREQUAL "ON") - set(LAPACK_CACHE_PACKAGE_NAME "lapack_${LAPACK_MD5}.tar.gz") - set(LAPACK_CACHE_URL "${JFROG_ARTFACTORY_CACHE_URL}/${LAPACK_CACHE_PACKAGE_NAME}") - set(LAPACK_CACHE_PACKAGE_PATH "${THIRDPARTY_PACKAGE_CACHE}/${LAPACK_CACHE_PACKAGE_NAME}") - - execute_process(COMMAND wget -q --method HEAD ${LAPACK_CACHE_URL} RESULT_VARIABLE return_code) - message(STATUS "Check the remote file ${LAPACK_CACHE_URL}. return code = ${return_code}") - if (NOT return_code EQUAL 0) - externalproject_add(lapack_ep - URL - ${LAPACK_SOURCE_URL} - ${EP_LOG_OPTIONS} - CMAKE_ARGS - ${LAPACK_CMAKE_ARGS} - BUILD_COMMAND - ${MAKE} - ${MAKE_BUILD_ARGS} - BUILD_BYPRODUCTS - ${LAPACK_STATIC_LIB}) - - ExternalProject_Create_Cache(lapack_ep ${LAPACK_CACHE_PACKAGE_PATH} "${INDEX_BINARY_DIR}/lapack_ep-prefix" ${JFROG_USER_NAME} ${JFROG_PASSWORD} ${LAPACK_CACHE_URL}) - else () - file(DOWNLOAD ${LAPACK_CACHE_URL} ${LAPACK_CACHE_PACKAGE_PATH} STATUS status) - list(GET status 0 status_code) - message(STATUS "DOWNLOADING FROM ${LAPACK_CACHE_URL} TO ${LAPACK_CACHE_PACKAGE_PATH}. STATUS = ${status_code}") - if (status_code EQUAL 0) - ExternalProject_Use_Cache(lapack_ep ${LAPACK_CACHE_PACKAGE_PATH} ${INDEX_BINARY_DIR}) - endif () - endif () - else () - externalproject_add(lapack_ep - URL - ${LAPACK_SOURCE_URL} - ${EP_LOG_OPTIONS} - CMAKE_ARGS - ${LAPACK_CMAKE_ARGS} - BUILD_COMMAND - ${MAKE} - ${MAKE_BUILD_ARGS} - BUILD_BYPRODUCTS - ${LAPACK_STATIC_LIB}) - endif () - - file(MAKE_DIRECTORY "${LAPACK_INCLUDE_DIR}") - add_library(lapack STATIC IMPORTED) - set_target_properties( - lapack - PROPERTIES IMPORTED_LOCATION "${LAPACK_STATIC_LIB}" - INTERFACE_INCLUDE_DIRECTORIES "${LAPACK_INCLUDE_DIR}") - - add_dependencies(lapack lapack_ep) -endmacro() - # ---------------------------------------------------------------------- # Google gtest @@ -766,10 +598,6 @@ macro(build_faiss) BUILD_BYPRODUCTS ${FAISS_STATIC_LIB}) - if (NOT FAISS_WITH_MKL) - ExternalProject_Add_StepDependencies(faiss_ep build openblas_ep lapack_ep) - endif () - ExternalProject_Create_Cache(faiss_ep ${FAISS_CACHE_PACKAGE_PATH} "${INDEX_BINARY_DIR}/faiss_ep-prefix" ${JFROG_USER_NAME} ${JFROG_PASSWORD} ${FAISS_CACHE_URL}) else () file(DOWNLOAD ${FAISS_CACHE_URL} ${FAISS_CACHE_PACKAGE_PATH} STATUS status) @@ -816,10 +644,6 @@ macro(build_faiss) ${FAISS_STATIC_LIB}) endif () - if (NOT FAISS_WITH_MKL) - ExternalProject_Add_StepDependencies(faiss_ep build openblas_ep lapack_ep) - endif () - endif () file(MAKE_DIRECTORY "${FAISS_INCLUDE_DIR}") @@ -840,7 +664,7 @@ macro(build_faiss) set_target_properties( faiss PROPERTIES - INTERFACE_LINK_LIBRARIES "openblas;lapack") + INTERFACE_LINK_LIBRARIES ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES}) endif () @@ -853,15 +677,15 @@ if (KNOWHERE_WITH_FAISS AND NOT TARGET faiss_ep) if (FAISS_WITH_MKL) resolve_dependency(MKL) else () - resolve_dependency(OpenBLAS) - get_target_property(OPENBLAS_INCLUDE_DIR openblas INTERFACE_INCLUDE_DIRECTORIES) - include_directories(SYSTEM "${OPENBLAS_INCLUDE_DIR}") - link_directories(SYSTEM ${OPENBLAS_PREFIX}/lib) + # set(BLA_STATIC ON) + set(BLA_VENDOR OpenBLAS) + find_package(BLAS REQUIRED) + # message(STATUS ${BLAS_LINKER_FLAGS}) + # message(STATUS ${BLAS_LIBRARIES}) + find_package(LAPACK REQUIRED) + # message(STATUS ${LAPACK_LINKER_FLAGS}) + # message(STATUS ${LAPACK_LIBRARIES}) - resolve_dependency(LAPACK) - get_target_property(LAPACK_INCLUDE_DIR lapack INTERFACE_INCLUDE_DIRECTORIES) - include_directories(SYSTEM "${LAPACK_INCLUDE_DIR}") - link_directories(SYSTEM "${LAPACK_PREFIX}/lib") endif () resolve_dependency(FAISS) diff --git a/core/src/index/knowhere/CMakeLists.txt b/core/src/index/knowhere/CMakeLists.txt index a7d3966481..6c2c5d7fff 100644 --- a/core/src/index/knowhere/CMakeLists.txt +++ b/core/src/index/knowhere/CMakeLists.txt @@ -65,8 +65,9 @@ if (FAISS_WITH_MKL) ) else () set(depend_libs ${depend_libs} - lapack - openblas) + ${BLAS_LIBRARIES} + ${LAPACK_LIBRARIES} + ) endif () if (KNOWHERE_GPU_VERSION) diff --git a/core/src/index/unittest/CMakeLists.txt b/core/src/index/unittest/CMakeLists.txt index 93ae63a9ec..831ae81a05 100644 --- a/core/src/index/unittest/CMakeLists.txt +++ b/core/src/index/unittest/CMakeLists.txt @@ -18,8 +18,9 @@ if (FAISS_WITH_MKL) ) else () set(depend_libs ${depend_libs} - lapack - openblas) + ${BLAS_LIBRARIES} + ${LAPACK_LIBRARIES} + ) endif () set(basic_libs diff --git a/core/src/index/unittest/faiss_benchmark/CMakeLists.txt b/core/src/index/unittest/faiss_benchmark/CMakeLists.txt index e2fd7a6c85..41fc132723 100644 --- a/core/src/index/unittest/faiss_benchmark/CMakeLists.txt +++ b/core/src/index/unittest/faiss_benchmark/CMakeLists.txt @@ -25,8 +25,9 @@ if (KNOWHERE_GPU_VERSION) ) else () set(depend_libs ${depend_libs} - lapack - openblas) + ${BLAS_LIBRARIES} + ${LAPACK_LIBRARIES} + ) endif () set(basic_libs diff --git a/core/src/index/unittest/faiss_ori/CMakeLists.txt b/core/src/index/unittest/faiss_ori/CMakeLists.txt index 907076ca6e..23d9c2f613 100644 --- a/core/src/index/unittest/faiss_ori/CMakeLists.txt +++ b/core/src/index/unittest/faiss_ori/CMakeLists.txt @@ -20,8 +20,10 @@ if (KNOWHERE_GPU_VERSION) ) else () set(depend_libs ${depend_libs} - lapack - openblas) + ${BLAS_LIBRARIES} + ${LAPACK_LIBRARIES} + ) + endif () set(basic_libs diff --git a/core/ubuntu_build_deps.sh b/core/ubuntu_build_deps.sh index 6f3fabc084..109eea7dbd 100755 --- a/core/ubuntu_build_deps.sh +++ b/core/ubuntu_build_deps.sh @@ -7,7 +7,7 @@ sudo sh -c 'echo deb https://apt.repos.intel.com/mkl all main > /etc/apt/sources sudo apt-get -y update && sudo apt-get -y install intel-mkl-gnu-2019.5-281 intel-mkl-core-2019.5-281 sudo apt-get install -y gfortran libmysqlclient-dev mysql-client libcurl4-openssl-dev libboost-system-dev \ -libboost-filesystem-dev libboost-serialization-dev libboost-regex-dev +libboost-filesystem-dev libboost-serialization-dev libboost-regex-dev libopenblas-dev liblapack3 if [ ! -f "/usr/lib/x86_64-linux-gnu/libmysqlclient_r.so" ]; then sudo ln -s /usr/lib/x86_64-linux-gnu/libmysqlclient.so /usr/lib/x86_64-linux-gnu/libmysqlclient_r.so diff --git a/docker/build_env/cpu/centos7/Dockerfile b/docker/build_env/cpu/centos7/Dockerfile index 6b3817f849..d9883cd1b4 100644 --- a/docker/build_env/cpu/centos7/Dockerfile +++ b/docker/build_env/cpu/centos7/Dockerfile @@ -3,7 +3,8 @@ FROM centos:centos7 RUN yum install -y epel-release centos-release-scl-rh && yum install -y wget curl which && \ wget -qO- "https://cmake.org/files/v3.14/cmake-3.14.3-Linux-x86_64.tar.gz" | tar --strip-components=1 -xz -C /usr/local && \ yum install -y ccache make automake git python3-pip libcurl-devel python3-devel boost-static mysql-devel \ - devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-gcc-gfortran llvm-toolset-7.0-clang llvm-toolset-7.0-clang-tools-extra mysql lcov \ + devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-gcc-gfortran llvm-toolset-7.0-clang llvm-toolset-7.0-clang-tools-extra \ + mysql lcov openblas-devel lapack-devel \ && \ rm -rf /var/cache/yum/* diff --git a/docker/build_env/cpu/ubuntu16.04/Dockerfile b/docker/build_env/cpu/ubuntu16.04/Dockerfile index 292eb27ecf..f703d736bb 100644 --- a/docker/build_env/cpu/ubuntu16.04/Dockerfile +++ b/docker/build_env/cpu/ubuntu16.04/Dockerfile @@ -12,7 +12,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends wget ca-certifi libboost-serialization-dev libboost-filesystem-dev libboost-system-dev libboost-regex-dev \ curl libtool automake libssl-dev pkg-config libcurl4-openssl-dev python3-pip \ clang-format-6.0 clang-tidy-6.0 \ - lcov mysql-client libmysqlclient-dev intel-mkl-gnu-2019.5-281 intel-mkl-core-2019.5-281 && \ + lcov mysql-client libmysqlclient-dev intel-mkl-gnu-2019.5-281 intel-mkl-core-2019.5-281 libopenblas-dev liblapack3 && \ apt-get remove --purge -y && \ rm -rf /var/lib/apt/lists/* diff --git a/docker/build_env/cpu/ubuntu18.04/Dockerfile b/docker/build_env/cpu/ubuntu18.04/Dockerfile index 0e068a4972..dca71b6217 100644 --- a/docker/build_env/cpu/ubuntu18.04/Dockerfile +++ b/docker/build_env/cpu/ubuntu18.04/Dockerfile @@ -12,7 +12,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends wget ca-certifi libboost-serialization-dev libboost-filesystem-dev libboost-system-dev libboost-regex-dev \ curl libtool automake libssl-dev pkg-config libcurl4-openssl-dev python3-pip \ clang-format-6.0 clang-tidy-6.0 \ - lcov mysql-client libmysqlclient-dev intel-mkl-gnu-2019.5-281 intel-mkl-core-2019.5-281 && \ + lcov mysql-client libmysqlclient-dev intel-mkl-gnu-2019.5-281 intel-mkl-core-2019.5-281 libopenblas-dev liblapack3 && \ apt-get remove --purge -y && \ rm -rf /var/lib/apt/lists/* diff --git a/docker/build_env/gpu/centos7/Dockerfile b/docker/build_env/gpu/centos7/Dockerfile index fc800d1b5d..e13d4fa86a 100644 --- a/docker/build_env/gpu/centos7/Dockerfile +++ b/docker/build_env/gpu/centos7/Dockerfile @@ -5,7 +5,8 @@ ENV NVIDIA_DRIVER_CAPABILITIES compute,utility RUN yum install -y epel-release centos-release-scl-rh && yum install -y wget curl which && \ wget -qO- "https://cmake.org/files/v3.14/cmake-3.14.3-Linux-x86_64.tar.gz" | tar --strip-components=1 -xz -C /usr/local && \ yum install -y ccache make automake git python3-pip libcurl-devel python3-devel boost-static mysql-devel \ - devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-gcc-gfortran llvm-toolset-7.0-clang llvm-toolset-7.0-clang-tools-extra mysql lcov \ + devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-gcc-gfortran llvm-toolset-7.0-clang llvm-toolset-7.0-clang-tools-extra \ + mysql lcov openblas-devel lapack-devel \ && \ rm -rf /var/cache/yum/* diff --git a/docker/build_env/gpu/ubuntu16.04/Dockerfile b/docker/build_env/gpu/ubuntu16.04/Dockerfile index 144955bdc6..bf2ebc6ef8 100644 --- a/docker/build_env/gpu/ubuntu16.04/Dockerfile +++ b/docker/build_env/gpu/ubuntu16.04/Dockerfile @@ -11,7 +11,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends wget && \ git flex bison gfortran lsb-core ccache \ curl libtool automake libboost1.58-all-dev libssl-dev pkg-config libcurl4-openssl-dev python3-pip \ clang-format-6.0 clang-tidy-6.0 \ - lcov mysql-client libmysqlclient-dev intel-mkl-gnu-2019.5-281 intel-mkl-core-2019.5-281 && \ + lcov mysql-client libmysqlclient-dev intel-mkl-gnu-2019.5-281 intel-mkl-core-2019.5-281 libopenblas-dev liblapack3 && \ apt-get remove --purge -y && \ rm -rf /var/lib/apt/lists/* diff --git a/docker/build_env/gpu/ubuntu18.04/Dockerfile b/docker/build_env/gpu/ubuntu18.04/Dockerfile index 4ecf735b80..f23b517024 100644 --- a/docker/build_env/gpu/ubuntu18.04/Dockerfile +++ b/docker/build_env/gpu/ubuntu18.04/Dockerfile @@ -11,7 +11,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends wget && \ git flex bison gfortran lsb-core ccache \ curl libtool automake libboost-all-dev libssl-dev pkg-config libcurl4-openssl-dev python3-pip \ clang-format-6.0 clang-tidy-6.0 \ - lcov mysql-client libmysqlclient-dev intel-mkl-gnu-2019.5-281 intel-mkl-core-2019.5-281 && \ + lcov mysql-client libmysqlclient-dev intel-mkl-gnu-2019.5-281 intel-mkl-core-2019.5-281 libopenblas-dev liblapack3 && \ apt-get remove --purge -y && \ rm -rf /var/lib/apt/lists/* diff --git a/docker/deploy/cpu/centos7/Dockerfile b/docker/deploy/cpu/centos7/Dockerfile index f1e4169d41..c6c731a26c 100644 --- a/docker/deploy/cpu/centos7/Dockerfile +++ b/docker/deploy/cpu/centos7/Dockerfile @@ -1,7 +1,7 @@ FROM centos:centos7 RUN yum install -y epel-release && \ - yum install -y libgomp libgfortran4 mysql-devel && \ + yum install -y libgomp libgfortran4 mysql-devel openblas-devel lapack-devel && \ rm -rf /var/cache/yum/* COPY ./milvus /var/lib/milvus diff --git a/docker/deploy/cpu/ubuntu16.04/Dockerfile b/docker/deploy/cpu/ubuntu16.04/Dockerfile index 294fe7828b..43f3a81cdb 100644 --- a/docker/deploy/cpu/ubuntu16.04/Dockerfile +++ b/docker/deploy/cpu/ubuntu16.04/Dockerfile @@ -1,7 +1,7 @@ FROM ubuntu:16.04 RUN apt-get update && apt-get install -y --no-install-recommends \ - gfortran libsqlite3-dev libmysqlclient-dev libcurl4-openssl-dev python3 && \ + gfortran libsqlite3-dev libmysqlclient-dev libcurl4-openssl-dev python3 libopenblas-dev liblapack3 && \ apt-get remove --purge -y && \ rm -rf /var/lib/apt/lists/* diff --git a/docker/deploy/cpu/ubuntu18.04/Dockerfile b/docker/deploy/cpu/ubuntu18.04/Dockerfile index e13d7bec6c..d3655417d3 100644 --- a/docker/deploy/cpu/ubuntu18.04/Dockerfile +++ b/docker/deploy/cpu/ubuntu18.04/Dockerfile @@ -1,7 +1,7 @@ FROM ubuntu:18.04 RUN apt-get update && apt-get install -y --no-install-recommends \ - gfortran libsqlite3-dev libmysqlclient-dev libcurl4-openssl-dev python3 && \ + gfortran libsqlite3-dev libmysqlclient-dev libcurl4-openssl-dev python3 libopenblas-dev liblapack3 && \ apt-get remove --purge -y && \ rm -rf /var/lib/apt/lists/* diff --git a/docker/deploy/gpu/centos7/Dockerfile b/docker/deploy/gpu/centos7/Dockerfile index c43debfe71..36bf88fcf1 100644 --- a/docker/deploy/gpu/centos7/Dockerfile +++ b/docker/deploy/gpu/centos7/Dockerfile @@ -3,7 +3,7 @@ FROM nvidia/cuda:10.1-devel-centos7 ENV NVIDIA_DRIVER_CAPABILITIES compute,utility RUN yum install -y epel-release && \ - yum install -y libgomp libgfortran4 mysql-devel && \ + yum install -y libgomp libgfortran4 mysql-devel openblas-devel lapack-devel && \ rm -rf /var/cache/yum/* COPY ./milvus /var/lib/milvus diff --git a/docker/deploy/gpu/ubuntu16.04/Dockerfile b/docker/deploy/gpu/ubuntu16.04/Dockerfile index 005ebd6d17..fd7f09ee65 100644 --- a/docker/deploy/gpu/ubuntu16.04/Dockerfile +++ b/docker/deploy/gpu/ubuntu16.04/Dockerfile @@ -5,7 +5,7 @@ ENV NVIDIA_DRIVER_CAPABILITIES compute,utility RUN rm -rf /etc/apt/sources.list.d/nvidia-ml.list && rm -rf /etc/apt/sources.list.d/cuda.list RUN apt-get update && apt-get install -y --no-install-recommends \ - gfortran libsqlite3-dev libmysqlclient-dev libcurl4-openssl-dev python3 && \ + gfortran libsqlite3-dev libmysqlclient-dev libcurl4-openssl-dev python3 libopenblas-dev liblapack3 && \ apt-get remove --purge -y && \ rm -rf /var/lib/apt/lists/* diff --git a/docker/deploy/gpu/ubuntu18.04/Dockerfile b/docker/deploy/gpu/ubuntu18.04/Dockerfile index 2f53471374..a3940223d5 100644 --- a/docker/deploy/gpu/ubuntu18.04/Dockerfile +++ b/docker/deploy/gpu/ubuntu18.04/Dockerfile @@ -5,7 +5,7 @@ ENV NVIDIA_DRIVER_CAPABILITIES compute,utility RUN rm -rf /etc/apt/sources.list.d/nvidia-ml.list && rm -rf /etc/apt/sources.list.d/cuda.list RUN apt-get update && apt-get install -y --no-install-recommends \ - gfortran libsqlite3-dev libmysqlclient-dev libcurl4-openssl-dev python3 && \ + gfortran libsqlite3-dev libmysqlclient-dev libcurl4-openssl-dev python3 libopenblas-dev liblapack3 && \ apt-get remove --purge -y && \ rm -rf /var/lib/apt/lists/*