azai91 closed pull request #13744: Making MKL-DNN default on MXNet master
(continue from #13681)
URL: https://github.com/apache/incubator-mxnet/pull/13744
This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:
As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3b8bbd2e027..e783e5262f8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -20,7 +20,7 @@ mxnet_option(USE_F16C "Build with x86 F16C
instruction support" ON)
mxnet_option(USE_LAPACK "Build with lapack support" ON)
mxnet_option(USE_MKL_IF_AVAILABLE "Use MKL if found" ON)
mxnet_option(USE_MKLML_MKL "Use MKLDNN variant of MKL (if MKL found)"
ON IF USE_MKL_IF_AVAILABLE AND (NOT APPLE))
-mxnet_option(USE_MKLDNN "Use MKLDNN variant of MKL (if MKL found)"
ON IF USE_MKL_IF_AVAILABLE AND (NOT APPLE))
+mxnet_option(USE_MKLDNN "Use MKLDNN variant of MKL (if MKL found)"
ON IF USE_MKL_IF_AVAILABLE AND (NOT APPLE) AND (NOT MSVC) AND
(CMAKE_SYSTEM_PROCESSOR MATCHES x86_64))
mxnet_option(USE_OPERATOR_TUNING "Enable auto-tuning of operators" ON IF NOT
MSVC)
mxnet_option(USE_GPERFTOOLS "Build with GPerfTools support (if found)"
ON)
mxnet_option(USE_JEMALLOC "Build with Jemalloc support" ON)
@@ -215,7 +215,7 @@ if(ENABLE_TESTCOVERAGE)
if(NOT GCOV_PATH)
message(FATAL_ERROR "gcov not found! Aborting...")
endif() # NOT GCOV_PATH
-
+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --coverage")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage")
set(CMAKE_LINKER_FLAGS "${CMAKE_LINKER_FLAGS} --coverage")
diff --git a/Makefile b/Makefile
index 4fb518e591b..56f2537d68f 100644
--- a/Makefile
+++ b/Makefile
@@ -24,6 +24,7 @@ ifeq ($(OS),Windows_NT)
UNAME_S := Windows
else
UNAME_S := $(shell uname -s)
+ UNAME_P := $(shell uname -p)
endif
ifndef config
@@ -60,6 +61,16 @@ endif
# use customized config file
include $(config)
+ifndef $(USE_MKLDNN)
+ifneq ($(UNAME_S), Darwin)
+ifneq ($(UNAME_S), Windows)
+ifeq ($(UNAME_P), x86_64)
+ USE_MKLDNN=1
+endif
+endif
+endif
+endif
+
ifeq ($(USE_MKL2017), 1)
$(warning "USE_MKL2017 is deprecated. We will switch to USE_MKLDNN.")
USE_MKLDNN=1
diff --git a/ci/docker/runtime_functions.sh b/ci/docker/runtime_functions.sh
index ad9bbe50f98..be10cd9a7d2 100755
--- a/ci/docker/runtime_functions.sh
+++ b/ci/docker/runtime_functions.sh
@@ -285,6 +285,7 @@ build_centos7_cpu() {
ENABLE_TESTCOVERAGE=1 \
USE_LAPACK_PATH=/usr/lib64/liblapack.so \
USE_BLAS=openblas \
+ USE_MKLDNN=0 \
USE_DIST_KVSTORE=1 \
-j$(nproc)
}
@@ -320,7 +321,6 @@ build_centos7_mkldnn() {
ENABLE_TESTCOVERAGE=1 \
USE_LAPACK=1 \
USE_LAPACK_PATH=/usr/lib64/liblapack.so \
- USE_MKLDNN=1 \
USE_BLAS=openblas \
-j$(nproc)
}
@@ -336,6 +336,7 @@ build_centos7_gpu() {
USE_LAPACK=1 \
USE_LAPACK_PATH=/usr/lib64/liblapack.so \
USE_BLAS=openblas \
+ USE_MKLDNN=0 \
USE_CUDA=1 \
USE_CUDA_PATH=/usr/local/cuda \
USE_CUDNN=1 \
@@ -358,6 +359,7 @@ build_ubuntu_cpu_openblas() {
ENABLE_TESTCOVERAGE=1 \
USE_CPP_PACKAGE=1 \
USE_BLAS=openblas \
+ USE_MKLDNN=0 \
USE_DIST_KVSTORE=1 \
-j$(nproc)
}
@@ -371,6 +373,7 @@ build_ubuntu_cpu_mkl() {
ENABLE_TESTCOVERAGE=1 \
USE_CPP_PACKAGE=1 \
USE_BLAS=mkl \
+ USE_MKLDNN=0 \
USE_INTEL_PATH=/opt/intel \
USE_DIST_KVSTORE=1 \
-j$(nproc)
@@ -410,6 +413,7 @@ build_ubuntu_cpu_cmake_asan() {
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
-DUSE_CUDA=OFF \
-DUSE_MKL_IF_AVAILABLE=OFF \
+ -DUSE_MKLDNN=OFF \
-DUSE_OPENMP=OFF \
-DUSE_OPENCV=OFF \
-DCMAKE_BUILD_TYPE=Debug \
@@ -436,6 +440,7 @@ build_ubuntu_cpu_clang39() {
ENABLE_TESTCOVERAGE=1 \
USE_CPP_PACKAGE=1 \
USE_BLAS=openblas \
+ USE_MKLDNN=0 \
USE_OPENMP=0 \
USE_DIST_KVSTORE=1 \
-j$(nproc)
@@ -453,6 +458,7 @@ build_ubuntu_cpu_clang60() {
ENABLE_TESTCOVERAGE=1 \
USE_CPP_PACKAGE=1 \
USE_BLAS=openblas \
+ USE_MKLDNN=0 \
USE_OPENMP=1 \
USE_DIST_KVSTORE=1 \
-j$(nproc)
@@ -472,6 +478,7 @@ build_ubuntu_cpu_clang_tidy() {
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
-DUSE_CUDA=OFF \
+ -DUSE_MKLDNN=OFF \
-DUSE_MKL_IF_AVAILABLE=OFF \
-DUSE_OPENCV=ON \
-DCMAKE_BUILD_TYPE=Debug \
@@ -497,7 +504,6 @@ build_ubuntu_cpu_clang39_mkldnn() {
ENABLE_TESTCOVERAGE=1 \
USE_CPP_PACKAGE=1 \
USE_BLAS=openblas \
- USE_MKLDNN=1 \
USE_OPENMP=0 \
-j$(nproc)
}
@@ -514,7 +520,6 @@ build_ubuntu_cpu_clang60_mkldnn() {
ENABLE_TESTCOVERAGE=1 \
USE_CPP_PACKAGE=1 \
USE_BLAS=openblas \
- USE_MKLDNN=1 \
USE_OPENMP=1 \
-j$(nproc)
}
@@ -529,7 +534,6 @@ build_ubuntu_cpu_mkldnn() {
ENABLE_TESTCOVERAGE=1 \
USE_CPP_PACKAGE=1 \
USE_BLAS=openblas \
- USE_MKLDNN=1 \
-j$(nproc)
}
@@ -543,7 +547,6 @@ build_ubuntu_cpu_mkldnn_mkl() {
ENABLE_TESTCOVERAGE=1 \
USE_CPP_PACKAGE=1 \
USE_BLAS=mkl \
- USE_MKLDNN=1 \
-j$(nproc)
}
@@ -603,6 +606,7 @@ build_ubuntu_gpu_tensorrt() {
USE_CUDA_PATH=/usr/local/cuda \
USE_CUDNN=1 \
USE_OPENCV=0 \
+ USE_MKLDNN=0 \
USE_DIST_KVSTORE=0 \
USE_TENSORRT=1 \
USE_JEMALLOC=0 \
@@ -622,7 +626,6 @@ build_ubuntu_gpu_mkldnn() {
ENABLE_TESTCOVERAGE=1 \
USE_CPP_PACKAGE=1 \
USE_BLAS=openblas \
- USE_MKLDNN=1 \
USE_CUDA=1 \
USE_CUDA_PATH=/usr/local/cuda \
USE_CUDNN=1 \
@@ -639,7 +642,6 @@ build_ubuntu_gpu_mkldnn_nocudnn() {
DEV=1 \
ENABLE_TESTCOVERAGE=1 \
USE_BLAS=openblas \
- USE_MKLDNN=1 \
USE_CUDA=1 \
USE_CUDA_PATH=/usr/local/cuda \
USE_CUDNN=0 \
@@ -655,6 +657,7 @@ build_ubuntu_gpu_cuda91_cudnn7() {
DEV=1 \
ENABLE_TESTCOVERAGE=1 \
USE_BLAS=openblas \
+ USE_MKLDNN=0 \
USE_CUDA=1 \
USE_CUDA_PATH=/usr/local/cuda \
USE_CUDNN=1 \
@@ -697,7 +700,6 @@ build_ubuntu_gpu_cmake_mkldnn() {
-DUSE_CUDA=1 \
-DUSE_CUDNN=1 \
-DUSE_MKLML_MKL=1 \
- -DUSE_MKLDNN=1 \
-DCMAKE_BUILD_TYPE=Release \
-DCUDA_ARCH_NAME=Manual \
-DCUDA_ARCH_BIN=$CI_CMAKE_CUDA_ARCH_BIN \
@@ -911,6 +913,7 @@ unittest_ubuntu_cpu_julia06() {
# FIXME
export LD_PRELOAD='/usr/lib/x86_64-linux-gnu/libjemalloc.so'
+ export LD_LIBRARY_PATH=/work/mxnet/lib:$LD_LIBRARY_PATH
# use the prebuilt binary from $MXNET_HOME/lib
julia -e 'Pkg.build("MXNet")'
@@ -1237,6 +1240,7 @@ deploy_jl_docs() {
# FIXME
export LD_PRELOAD='/usr/lib/x86_64-linux-gnu/libjemalloc.so'
+ export LD_LIBRARY_PATH=/work/mxnet/lib:$LD_LIBRARY_PATH
# use the prebuilt binary from $MXNET_HOME/lib
julia -e 'Pkg.build("MXNet")'
diff --git a/ci/jenkins/Jenkins_steps.groovy b/ci/jenkins/Jenkins_steps.groovy
index 74bde1eee21..3ca1f2ee033 100644
--- a/ci/jenkins/Jenkins_steps.groovy
+++ b/ci/jenkins/Jenkins_steps.groovy
@@ -268,7 +268,7 @@ def compile_centos7_cpu_mkldnn() {
timeout(time: max_time, unit: 'MINUTES') {
utils.init_git()
utils.docker_run('centos7_cpu', 'build_centos7_mkldnn', false)
- utils.pack_lib('centos7_mkldnn', mx_lib, true)
+ utils.pack_lib('centos7_mkldnn', mx_mkldnn_lib, true)
}
}
}
diff --git a/docs/mxdoc.py b/docs/mxdoc.py
index 7be4b90e799..d4f379b3e84 100644
--- a/docs/mxdoc.py
+++ b/docs/mxdoc.py
@@ -87,10 +87,10 @@ def generate_doxygen(app):
def build_mxnet(app):
"""Build mxnet .so lib"""
if not os.path.exists(os.path.join(app.builder.srcdir, '..', 'config.mk')):
- _run_cmd("cd %s/.. && cp make/config.mk config.mk && make -j$(nproc)
DEBUG=1" %
+ _run_cmd("cd %s/.. && cp make/config.mk config.mk && make -j$(nproc)
DEBUG=1 USE_MKLDNN=0" %
app.builder.srcdir)
else:
- _run_cmd("cd %s/.. && make -j$(nproc) DEBUG=1" %
+ _run_cmd("cd %s/.. && make -j$(nproc) DEBUG=1 USE_MKLDNN=0" %
app.builder.srcdir)
def build_r_docs(app):
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services