diff --git a/CMakeLists.txt b/CMakeLists.txt index 437d01668246..6c74f2a61aeb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -279,24 +279,26 @@ if(USE_MKLDNN) set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /EHsc /Gy /MT") endif() - set(MKLDNN_BUILD_TESTS OFF CACHE INTERNAL "" FORCE) - set(MKLDNN_BUILD_EXAMPLES OFF CACHE INTERNAL "" FORCE) - set(MKLDNN_ARCH_OPT_FLAGS "" CACHE INTERNAL "" FORCE) - set(MKLDNN_ENABLE_JIT_PROFILING OFF CACHE INTERNAL "" FORCE) - set(MKLDNN_LIBRARY_TYPE STATIC CACHE INTERNAL "" FORCE) - set(DNNL_ENABLE_CONCURRENT_EXEC ON CACHE INTERNAL "" FORCE) - - if(NOT USE_OPENMP) + function(load_mkldnn) + set(MKLDNN_BUILD_TESTS OFF CACHE INTERNAL "" FORCE) + set(MKLDNN_BUILD_EXAMPLES OFF CACHE INTERNAL "" FORCE) + set(MKLDNN_ARCH_OPT_FLAGS "" CACHE INTERNAL "" FORCE) + set(MKLDNN_ENABLE_JIT_PROFILING OFF CACHE INTERNAL "" FORCE) + set(MKLDNN_LIBRARY_TYPE STATIC CACHE INTERNAL "" FORCE) + set(DNNL_ENABLE_CONCURRENT_EXEC ON CACHE INTERNAL "" FORCE) + + if(NOT USE_OPENMP) set(MKLDNN_CPU_RUNTIME SEQ CACHE INTERNAL "" FORCE) - endif() - - add_subdirectory(3rdparty/mkldnn) + endif() + set(CMAKE_INSTALL_INCLUDEDIR "${CMAKE_INSTALL_INCLUDEDIR}/mkldnn") + add_subdirectory(3rdparty/mkldnn) + endfunction() + load_mkldnn() include_directories(3rdparty/mkldnn/include) include_directories(${PROJECT_BINARY_DIR}/3rdparty/mkldnn/include) add_definitions(-DMXNET_USE_MKLDNN=1) list(APPEND mxnet_LINKER_LIBS dnnl) - set(INSTALL_MKLDNN ON) endif() if(USE_CPP_PACKAGE) @@ -853,22 +855,17 @@ if(MSVC AND USE_MXNET_LIB_NAMING) endif() +# NOTE: Public headers will be installed into ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}, see +# https://cmake.org/cmake/help/v3.13/variable/CMAKE_INSTALL_PREFIX.html +# https://cmake.org/cmake/help/v3.13/module/GNUInstallDirs.html include(GNUInstallDirs) install(TARGETS ${MXNET_INSTALL_TARGETS} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ) - -# NOTE: Public headers will be installed into ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}, see -# https://cmake.org/cmake/help/v3.0/variable/CMAKE_INSTALL_PREFIX.html -# https://cmake.org/cmake/help/v3.0/module/GNUInstallDirs.html - install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/dlpack/include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/dmlc-core/include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) -if(USE_MKLDNN) - install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/mkldnn/include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) -endif() install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/mshadow/mshadow/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/mshadow) install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/mxnet/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/mxnet) install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/tvm/nnvm/include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) diff --git a/cd/python/pypi/pypi_package.sh b/cd/python/pypi/pypi_package.sh index fafd88e9742b..1e8103bdfca7 100755 --- a/cd/python/pypi/pypi_package.sh +++ b/cd/python/pypi/pypi_package.sh @@ -28,9 +28,9 @@ export mxnet_variant=${1:?"Please specify the mxnet variant"} # and CD unpacks it to a directory called cd_misc # Nov. 2019 Update: With v1.1, MKL-DNN is renaming to DNNL. Hence changing the prefix of file name. if [ -f "cd_misc/dnnl_version.h" ]; then - mkdir -p 3rdparty/mkldnn/build/install/include - cp cd_misc/dnnl_version.h 3rdparty/mkldnn/build/install/include/. - cp cd_misc/dnnl_config.h 3rdparty/mkldnn/build/install/include/. + mkdir -p 3rdparty/mkldnn/include + cp cd_misc/dnnl_version.h 3rdparty/mkldnn/include/. + cp cd_misc/dnnl_config.h 3rdparty/mkldnn/include/. fi # Create wheel workspace diff --git a/ci/docker/toolchains/aarch64-linux-gnu-toolchain.cmake b/ci/docker/toolchains/aarch64-linux-gnu-toolchain.cmake new file mode 100644 index 000000000000..57072b5cf393 --- /dev/null +++ b/ci/docker/toolchains/aarch64-linux-gnu-toolchain.cmake @@ -0,0 +1,29 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +set(CMAKE_SYSTEM_NAME Linux) +set(CMAKE_SYSTEM_PROCESSOR "aarch64") +set(CMAKE_C_COMPILER aarch64-linux-gnu-gcc) +set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g++) +set(CMAKE_CUDA_COMPILER nvcc) +set(CMAKE_CUDA_HOST_COMPILER aarch64-linux-gnu-gcc) +set(CMAKE_FIND_ROOT_PATH "/usr/aarch64-linux-gnu") + +set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) diff --git a/tools/pip/setup.py b/tools/pip/setup.py index a0b63cc866f9..f20bf00550e7 100644 --- a/tools/pip/setup.py +++ b/tools/pip/setup.py @@ -149,9 +149,8 @@ def has_ext_modules(self): package_data = {'mxnet': [os.path.join('mxnet', os.path.basename(LIB_PATH[0]))], 'dmlc_tracker': []} -if variant.endswith('MKL'): - if platform.system() == 'Darwin': - shutil.copytree(os.path.join(CURRENT_DIR, 'mxnet-build/3rdparty/mkldnn/build/install/include'), +if variant != 'NATIVE': + shutil.copytree(os.path.join(CURRENT_DIR, 'mxnet-build/3rdparty/mkldnn/include'), os.path.join(CURRENT_DIR, 'mxnet/include/mkldnn')) if platform.system() == 'Linux': libdir, mxdir = os.path.dirname(LIB_PATH[0]), os.path.join(CURRENT_DIR, 'mxnet')