diff --git a/3rdparty/mkldnn b/3rdparty/mkldnn index 464c268e544b..f5218ff4fd2d 160000 --- a/3rdparty/mkldnn +++ b/3rdparty/mkldnn @@ -1 +1 @@ -Subproject commit 464c268e544bae26f9b85a2acb9122c766a4c396 +Subproject commit f5218ff4fd2d16d13aada2e632afd18f2514fee3 diff --git a/Makefile b/Makefile index 50b125baaefb..862a40c3406c 100644 --- a/Makefile +++ b/Makefile @@ -429,6 +429,13 @@ lib/libmxnet.so: $(ALLX_DEP) @mkdir -p $(@D) $(CXX) $(CFLAGS) -shared -o $@ $(filter-out %libnnvm.a, $(filter %.o %.a, $^)) $(LDFLAGS) \ -Wl,${WHOLE_ARCH} $(filter %libnnvm.a, $^) -Wl,${NO_WHOLE_ARCH} +ifeq ($(USE_MKLDNN), 1) +ifeq ($(UNAME_S), Darwin) + install_name_tool -change '@rpath/libmklml.dylib' '@loader_path/libmklml.dylib' lib/libmxnet.so + install_name_tool -change '@rpath/libiomp5.dylib' '@loader_path/libiomp5.dylib' lib/libmxnet.so + install_name_tool -change '@rpath/libmkldnn.0.dylib' '@loader_path/libmkldnn.0.dylib' lib/libmxnet.so +endif +endif $(PS_PATH)/build/libps.a: PSLITE diff --git a/prepare_mkldnn.sh b/prepare_mkldnn.sh index 3cfd2dd455b8..50552eb22f65 100755 --- a/prepare_mkldnn.sh +++ b/prepare_mkldnn.sh @@ -72,8 +72,14 @@ if [ ! -z "$HOME_MKLDNN" ]; then fi fi +if [ $OSTYPE == "darwin16" ]; then + MKLDNN_LIBFILE="$MKLDNN_INSTALLDIR/lib/libmkldnn.dylib" +else + MKLDNN_LIBFILE="$MKLDNN_INSTALLDIR/lib/libmkldnn.so" +fi + if [ -z $MKLDNNROOT ]; then -if [ ! -f "$MKLDNN_INSTALLDIR/lib/libmkldnn.so" ]; then +if [ ! -f $MKLDNN_LIBFILE ]; then mkdir -p $MKLDNN_INSTALLDIR cd $MKLDNN_ROOTDIR if [ -z $MKLROOT ] && [ ! -f $MKLDNN_INSTALLDIR/include/mkl_cblas.h ]; then @@ -84,7 +90,16 @@ if [ ! -f "$MKLDNN_INSTALLDIR/lib/libmkldnn.so" ]; then cd $MXNET_ROOTDIR g++ --version >&2 cmake $MKLDNN_ROOTDIR -DCMAKE_INSTALL_PREFIX=$MKLDNN_INSTALLDIR -B$MKLDNN_BUILDDIR -DARCH_OPT_FLAGS="-mtune=generic" >&2 - make -C $MKLDNN_BUILDDIR -j$(cat /proc/cpuinfo | grep processor | wc -l) VERBOSE=1 >&2 + NUM_PROC=1 + if [[ ! -z $(command -v nproc) ]]; then + NUM_PROC=$(nproc) + elif [[ ! -z $(command -v sysctl) ]]; then + NUM_PROC=$(sysctl -n hw.ncpu) + else + >&2 echo "Can't discover number of cores." + fi + make -C $MKLDNN_BUILDDIR -j$(NUM_PROC) VERBOSE=1 >&2 + make -C $MKLDNN_BUILDDIR install >&2 rm -rf $MKLDNN_BUILDDIR mkdir -p $MKLDNN_LIBDIR