Skip to content

Commit 93e9e70

Browse files
committed
Revert "Revert "Feature/mkldnn static 2 (apache#13503)" (apache#13540)"
This reverts commit a3eca5f.
1 parent 002e0bb commit 93e9e70

File tree

8 files changed

+26
-77
lines changed

8 files changed

+26
-77
lines changed

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,7 @@ if(USE_MKLDNN)
227227
include(cmake/DownloadMKLML.cmake)
228228
# CPU architecture (e.g., C5) can't run on another architecture (e.g., g3).
229229
if(NOT MSVC)
230+
set(MKLDNN_LIBRARY_TYPE "STATIC" CACHE INTERNAL "" FORCE)
230231
set(ARCH_OPT_FLAGS "-mtune=generic")
231232
else()
232233
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /EHsc")

Makefile

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,8 +131,13 @@ ifeq ($(USE_MKLDNN), 1)
131131
CFLAGS += -I$(MKLROOT)/include
132132
LDFLAGS += -L$(MKLROOT)/lib
133133
endif
134-
CFLAGS += -I$(MKLDNNROOT)/include
135-
LDFLAGS += -L$(MKLDNNROOT)/lib -lmkldnn -Wl,-rpath,'$${ORIGIN}'
134+
# MKLDNN but to needs to be dynamically linked for windows as not all VS compilers support static linking
135+
ifneq ($(UNAME_S), Windows)
136+
LIB_DEP += $(MKLDNNROOT)/lib/libmkldnn.a
137+
else
138+
CFLAGS += -I$(MKLDNNROOT)/include
139+
LDFLAGS += -L$(MKLDNNROOT)/lib -lmkldnn -Wl,-rpath,'$${ORIGIN}'
140+
endif
136141
endif
137142

138143
# setup opencv

ci/docker/runtime_functions.sh

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -657,9 +657,6 @@ build_ubuntu_gpu_cmake_mkldnn() {
657657
/work/mxnet
658658

659659
ninja -v
660-
# libmkldnn.so.0 is a link file. We need an actual binary file named libmkldnn.so.0.
661-
cp 3rdparty/mkldnn/src/libmkldnn.so.0 3rdparty/mkldnn/src/libmkldnn.so.0.tmp
662-
mv 3rdparty/mkldnn/src/libmkldnn.so.0.tmp 3rdparty/mkldnn/src/libmkldnn.so.0
663660
}
664661

665662
build_ubuntu_gpu_cmake() {

ci/jenkins/Jenkins_steps.groovy

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,19 @@
2323
utils = load('ci/Jenkinsfile_utils.groovy')
2424

2525
// mxnet libraries
26-
mx_lib = 'lib/libmxnet.so, lib/libmxnet.a, 3rdparty/dmlc-core/libdmlc.a, 3rdparty/tvm/nnvm/lib/libnnvm.a'
26+
mx_lib = 'lib/libmxnet.so, lib/libmxnet.a, lib/libiomp5.so, lib/libmklml_intel.so, 3rdparty/dmlc-core/libdmlc.a, 3rdparty/tvm/nnvm/lib/libnnvm.a'
2727

2828
// Python wheels
2929
mx_pip = 'build/*.whl'
3030

3131
// for scala build, need to pass extra libs when run with dist_kvstore
32-
mx_dist_lib = 'lib/libmxnet.so, lib/libmxnet.a, 3rdparty/dmlc-core/libdmlc.a, 3rdparty/tvm/nnvm/lib/libnnvm.a, 3rdparty/ps-lite/build/libps.a, deps/lib/libprotobuf-lite.a, deps/lib/libzmq.a'
32+
mx_dist_lib = 'lib/libmxnet.so, lib/libmxnet.a, 3rdparty/dmlc-core/libdmlc.a, 3rdparty/tvm/nnvm/lib/libnnvm.a, 3rdparty/ps-lite/build/libps.a, deps/lib/libprotobuf-lite.a, deps/lib/libzmq.a, lib/libmkldnn.a'
3333
// mxnet cmake libraries, in cmake builds we do not produce a libnvvm static library by default.
3434
mx_cmake_lib = 'build/libmxnet.so, build/libmxnet.a, build/3rdparty/dmlc-core/libdmlc.a, build/tests/mxnet_unit_tests, build/3rdparty/openmp/runtime/src/libomp.so'
3535
// mxnet cmake libraries, in cmake builds we do not produce a libnvvm static library by default.
3636
mx_cmake_lib_debug = 'build/libmxnet.so, build/libmxnet.a, build/3rdparty/dmlc-core/libdmlc.a, build/tests/mxnet_unit_tests'
37-
mx_cmake_mkldnn_lib = 'build/libmxnet.so, build/libmxnet.a, build/3rdparty/dmlc-core/libdmlc.a, build/tests/mxnet_unit_tests, build/3rdparty/openmp/runtime/src/libomp.so, build/3rdparty/mkldnn/src/libmkldnn.so.0'
38-
mx_mkldnn_lib = 'lib/libmxnet.so, lib/libmxnet.a, lib/libiomp5.so, lib/libmkldnn.so.0, lib/libmklml_intel.so, 3rdparty/dmlc-core/libdmlc.a, 3rdparty/tvm/nnvm/lib/libnnvm.a'
37+
mx_cmake_mkldnn_lib = 'build/libmxnet.so, build/libmxnet.a, build/3rdparty/dmlc-core/libdmlc.a, build/tests/mxnet_unit_tests, build/3rdparty/openmp/runtime/src/libomp.so'
38+
mx_mkldnn_lib = 'lib/libmxnet.so, lib/libmxnet.a, lib/libiomp5.so, lib/libmklml_intel.so, 3rdparty/dmlc-core/libdmlc.a, 3rdparty/tvm/nnvm/lib/libnnvm.a'
3939
mx_tensorrt_lib = 'lib/libmxnet.so, lib/libnvonnxparser_runtime.so.0, lib/libnvonnxparser.so.0, lib/libonnx_proto.so, lib/libonnx.so'
4040
mx_lib_cpp_examples = 'lib/libmxnet.so, lib/libmxnet.a, 3rdparty/dmlc-core/libdmlc.a, 3rdparty/tvm/nnvm/lib/libnnvm.a, 3rdparty/ps-lite/build/libps.a, deps/lib/libprotobuf-lite.a, deps/lib/libzmq.a, build/cpp-package/example/*'
4141
mx_lib_cpp_examples_cpu = 'build/libmxnet.so, build/cpp-package/example/*'

mkldnn.mk

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,20 @@ ifeq ($(USE_MKLDNN), 1)
1919
MKLDNN_SUBMODDIR = $(ROOTDIR)/3rdparty/mkldnn
2020
MKLDNN_BUILDDIR = $(MKLDNN_SUBMODDIR)/build
2121
MXNET_LIBDIR = $(ROOTDIR)/lib
22+
MKLDNN_LIBRARY_TYPE=STATIC
2223
ifeq ($(UNAME_S), Darwin)
2324
OMP_LIBFILE = $(MKLDNNROOT)/lib/libiomp5.dylib
2425
MKLML_LIBFILE = $(MKLDNNROOT)/lib/libmklml.dylib
25-
MKLDNN_LIBFILE = $(MKLDNNROOT)/lib/libmkldnn.0.dylib
26+
MKLDNN_LIBFILE = $(MKLDNNROOT)/lib/libmkldnn.a
27+
else ifeq ($(UNAME_S), Windows)
28+
OMP_LIBFILE = $(MKLDNNROOT)/lib/libiomp5.so
29+
MKLML_LIBFILE = $(MKLDNNROOT)/lib/libmklml_intel.so
30+
MKLDNN_LIBFILE = $(MKLDNNROOT)/lib/libmkldnn.so
31+
MKLDNN_LIBRARY_TYPE=SHARED
2632
else
2733
OMP_LIBFILE = $(MKLDNNROOT)/lib/libiomp5.so
2834
MKLML_LIBFILE = $(MKLDNNROOT)/lib/libmklml_intel.so
29-
MKLDNN_LIBFILE = $(MKLDNNROOT)/lib/libmkldnn.so.0
35+
MKLDNN_LIBFILE = $(MKLDNNROOT)/lib/libmkldnn.a
3036
endif
3137
endif
3238

@@ -37,7 +43,7 @@ mkldnn_build: $(MKLDNN_LIBFILE)
3743
$(MKLDNN_LIBFILE):
3844
mkdir -p $(MKLDNNROOT)
3945
cd $(MKLDNN_SUBMODDIR) && rm -rf external && cd scripts && ./prepare_mkl.sh && cd .. && cp -a external/*/* $(MKLDNNROOT)/.
40-
cmake $(MKLDNN_SUBMODDIR) -DCMAKE_INSTALL_PREFIX=$(MKLDNNROOT) -B$(MKLDNN_BUILDDIR) -DARCH_OPT_FLAGS="-mtune=generic" -DWITH_TEST=OFF -DWITH_EXAMPLE=OFF
46+
cmake $(MKLDNN_SUBMODDIR) -DCMAKE_INSTALL_PREFIX=$(MKLDNNROOT) -B$(MKLDNN_BUILDDIR) -DARCH_OPT_FLAGS="-mtune=generic" -DWITH_TEST=OFF -DWITH_EXAMPLE=OFF -DMKLDNN_LIBRARY_TYPE=$(MKLDNN_LIBRARY_TYPE)
4147
$(MAKE) -C $(MKLDNN_BUILDDIR) VERBOSE=1
4248
$(MAKE) -C $(MKLDNN_BUILDDIR) install
4349
mkdir -p $(MXNET_LIBDIR)

tests/cpp/unittest.mk

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,22 +41,22 @@ gtest-all.o : $(GTEST_SRCS_)
4141
gtest.a : gtest-all.o
4242
$(AR) $(ARFLAGS) $@ $^
4343

44-
build/tests/cpp/%.o : tests/cpp/%.cc | mkldnn
44+
build/tests/cpp/%.o : tests/cpp/%.cc
4545
@mkdir -p $(@D)
4646
$(CXX) -std=c++11 $(TEST_CFLAGS) -I$(GTEST_INC) -MM -MT tests/cpp/$* $< > build/tests/cpp/$*.d
4747
$(CXX) -c -std=c++11 $(TEST_CFLAGS) -I$(GTEST_INC) -o build/tests/cpp/$*.o $(filter %.cc %.a, $^)
4848

49-
build/tests/cpp/operator/%.o : tests/cpp/operator/%.cc | mkldnn
49+
build/tests/cpp/operator/%.o : tests/cpp/operator/%.cc
5050
@mkdir -p $(@D)
5151
$(CXX) -std=c++11 $(TEST_CFLAGS) -I$(GTEST_INC) -MM -MT tests/cpp/operator/$* $< > build/tests/cpp/operator/$*.d
5252
$(CXX) -c -std=c++11 $(TEST_CFLAGS) -I$(GTEST_INC) -o build/tests/cpp/operator/$*.o $(filter %.cc %.a, $^)
5353

54-
build/tests/cpp/storage/%.o : tests/cpp/storage/%.cc | mkldnn
54+
build/tests/cpp/storage/%.o : tests/cpp/storage/%.cc
5555
@mkdir -p $(@D)
5656
$(CXX) -std=c++11 $(TEST_CFLAGS) -I$(GTEST_INC) -MM -MT tests/cpp/storage/$* $< > build/tests/cpp/storage/$*.d
5757
$(CXX) -c -std=c++11 $(TEST_CFLAGS) -I$(GTEST_INC) -o build/tests/cpp/storage/$*.o $(filter %.cc %.a, $^)
5858

59-
build/tests/cpp/engine/%.o : tests/cpp/engine/%.cc | mkldnn
59+
build/tests/cpp/engine/%.o : tests/cpp/engine/%.cc
6060
@mkdir -p $(@D)
6161
$(CXX) -std=c++11 $(TEST_CFLAGS) -I$(GTEST_INC) -MM -MT tests/cpp/engine/$* $< > build/tests/cpp/engine/$*.d
6262
$(CXX) -c -std=c++11 $(TEST_CFLAGS) -I$(GTEST_INC) -o build/tests/cpp/engine/$*.o $(filter %.cc %.a, $^)

tests/python/mkl/test_mkldnn.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
from mxnet import gluon
2828
from mxnet.gluon import nn
2929
from mxnet.test_utils import *
30-
import test_mkldnn_install as install
3130
curr_path = os.path.dirname(os.path.abspath(os.path.expanduser(__file__)))
3231
sys.path.append(os.path.join(curr_path, '../unittest/'))
3332
from common import with_seed
@@ -441,7 +440,4 @@ def backward(self, req, out_grad, in_data, out_data, in_grad, aux):
441440
custom = mx.symbol.Custom(name='custom', data=conv, op_type='custom')
442441
exec1 = custom.bind(mx.cpu(), args={'data': mx.nd.ones([10,3,96,96]), 'conv_weight': mx.nd.ones([8,3,5,5])})
443442
exec1.forward()[0].wait_to_read()
444-
445-
446-
if __name__ == '__main__':
447-
install.test_mkldnn_install()
443+

tests/python/mkl/test_mkldnn_install.py

Lines changed: 0 additions & 56 deletions
This file was deleted.

0 commit comments

Comments
 (0)