@@ -71,11 +71,13 @@ endif
7171
7272 RETURN_STRING=$(shell ./external/mlsl/prepare_mlsl.sh)
7373 MLSL_ROOT=$(firstword $(RETURN_STRING))
74- MLSL_LDFLAGS=$(lastword $(RETURN_STRING))
74+ MLSL_LDFLAGS=$(lastword $(RETURN_STRING))
7575 COMMON_FLAGS += -DUSE_MLSL=1
7676 LIBRARIES += mlsl
7777 INCLUDE_DIRS += $(MLSL_ROOT)/intel64/include
7878 LIBRARY_DIRS += $(MLSL_ROOT)/intel64/lib
79+ IGNORE := $(shell bash -c "source $(MLSL_ROOT)/intel64/bin/mlslvars.sh; env | sed 's/=/:=/' | sed 's/^/export /' > make_mlsl_env")
80+ include make_mlsl_env
7981
8082ifeq ($(CAFFE_PER_LAYER_TIMINGS ) , 1)
8183 COMMON_FLAGS += -DCAFFE_PER_LAYER_TIMINGS
@@ -249,7 +251,13 @@ ifneq ($(CPU_ONLY), 1)
249251 LIBRARIES := cudart cublas curand
250252endif
251253
252- LIBRARIES += glog gflags protobuf m hdf5_hl hdf5
254+ LIBRARIES += glog gflags protobuf m
255+ ifeq ($(shell find /usr/lib* /usr/local/lib* -name "libhdf5_serial.so" 2> /dev/null | grep serial >/dev/null && echo serial) , serial)
256+ LIBRARIES += hdf5_serial_hl hdf5_serial
257+ else
258+ LIBRARIES += hdf5_hl hdf5
259+ endif
260+
253261BOOST_LIBRARIES += boost_system boost_filesystem boost_regex
254262
255263# handle IO dependencies
@@ -479,6 +487,11 @@ ifeq ($(WITH_PYTHON_LAYER), 1)
479487 LIBRARIES += $(PYTHON_LIBRARIES)
480488endif
481489
490+ # Remove batch norm feature support
491+ ifeq ($(DISABLE_BN_FOLDING ) , 1)
492+ COMMON_FLAGS += -DDISABLE_BN_FOLDING
493+ endif
494+
482495# Performance monitoring
483496ifeq ($(PERFORMANCE_MONITORING ) , 1)
484497 CXXFLAGS += -DPERFORMANCE_MONITORING
@@ -489,6 +502,8 @@ ifeq ($(USE_MKLDNN_AS_DEFAULT_ENGINE), 1)
489502 CXXFLAGS += -DUSE_MKLDNN_AS_DEFAULT_ENGINE
490503endif
491504
505+ include Makefile.dlcp
506+
492507# BOOST configuration
493508# detect support for custom boost version
494509BOOST_LDFLAGS += $(foreach boost_lib,$(BOOST_LIBRARIES ) ,-l$(boost_lib ) )
@@ -602,7 +617,7 @@ endif
602617# #############################
603618.PHONY : all lib test clean docs linecount lint lintclean tools examples $(DIST_ALIASES ) \
604619 py mat py$(PROJECT ) mat$(PROJECT ) proto runtest \
605- superclean supercleanlist supercleanfiles warn everything mkldnn mkldnn_clean
620+ superclean supercleanlist supercleanfiles warn everything mkldnn mkldnn_clean dlcp dlcp_clean
606621
607622.DEFAULT_GOAL := all
608623
@@ -757,14 +772,14 @@ $(ALL_BUILD_DIRS): | $(BUILD_DIR_LINK)
757772
758773$(DYNAMIC_NAME ) : $(OBJS ) | $(LIB_BUILD_DIR )
759774 @ echo LD -o $@
760- $(Q )$(CXX ) -shared -o $@ $(OBJS ) $(VERSIONFLAGS ) $(BOOST_LDFLAGS ) $(LINKFLAGS ) $(MKL_LDFLAGS ) $(MKLDNN_LDFLAGS ) $(CXX_HARDENING_FLAGS ) $(LINKER_SHARED_HARDENING_FLAGS ) $(LDFLAGS )
775+ $(Q )$(CXX ) -shared -o $@ $(OBJS ) $(VERSIONFLAGS ) $(BOOST_LDFLAGS ) $(LINKFLAGS ) $(MKL_LDFLAGS ) $(MKLDNN_LDFLAGS ) $(DLCP_LDFLAGS ) $( CXX_HARDENING_FLAGS ) $(LINKER_SHARED_HARDENING_FLAGS ) $(LDFLAGS )
761776 @ cd $(BUILD_DIR ) /lib; rm -f $(DYNAMIC_NAME_SHORT ) ; ln -s $(DYNAMIC_VERSIONED_NAME_SHORT ) $(DYNAMIC_NAME_SHORT )
762777
763778$(STATIC_NAME ) : $(OBJS ) | $(LIB_BUILD_DIR )
764779 @ echo AR -o $@
765780 $(Q ) ar rcs $@ $(OBJS )
766781
767- $(BUILD_DIR ) /% .o : % .cpp | mkldnn $(ALL_BUILD_DIRS )
782+ $(BUILD_DIR ) /% .o : % .cpp | mkldnn dlcp $(ALL_BUILD_DIRS )
768783 @ echo CXX $<
769784 $(Q )$(CXX ) $< $(CXX_HARDENING_FLAGS ) $(CXXFLAGS ) -c -o $@ 2> $@ .$(WARNS_EXT ) \
770785 || (cat $@ .$( WARNS_EXT) ; exit 1)
@@ -789,7 +804,7 @@ $(TEST_ALL_BIN): $(TEST_MAIN_SRC) $(TEST_OBJS) $(GTEST_OBJS) \
789804 | $(DYNAMIC_NAME ) $(TEST_BIN_DIR )
790805 @ echo CXX/LD -o $@ $<
791806 $(Q )$(CXX ) -std=c++11 $(TEST_MAIN_SRC ) $(TEST_OBJS ) $(GTEST_OBJS ) \
792- -o $@ $(BOOST_LDFLAGS ) $(LINKFLAGS ) $(MKL_LDFLAGS ) $(MKLDNN_LDFLAGS ) $(CXX_HARDENING_FLAGS ) $(LINKER_EXEC_HARDENING_FLAGS ) $(LDFLAGS ) -l$(LIBRARY_NAME ) -Wl,-rpath,$(ORIGIN ) /../lib
807+ -o $@ $(BOOST_LDFLAGS ) $(LINKFLAGS ) $(MKL_LDFLAGS ) $(MKLDNN_LDFLAGS ) $(DLCP_LDFLAGS ) $( CXX_HARDENING_FLAGS ) $(LINKER_EXEC_HARDENING_FLAGS ) $(LDFLAGS ) -l$(LIBRARY_NAME ) -Wl,-rpath,$(ORIGIN ) /../lib
793808
794809$(TEST_CU_BINS ) : $(TEST_BIN_DIR ) /% .testbin: $(TEST_CU_BUILD_DIR ) /% .o \
795810 $(GTEST_OBJS ) | $(DYNAMIC_NAME ) $(TEST_BIN_DIR )
@@ -801,7 +816,7 @@ $(TEST_CXX_BINS): $(TEST_BIN_DIR)/%.testbin: $(TEST_CXX_BUILD_DIR)/%.o \
801816 $(GTEST_OBJS ) | $(DYNAMIC_NAME ) $(TEST_BIN_DIR )
802817 @ echo LD $<
803818 $(Q )$(CXX ) -std=c++11 $(TEST_MAIN_SRC ) $< $(GTEST_OBJS ) \
804- -o $@ $(BOOST_LDFLAGS ) $(LINKFLAGS ) $(MKL_LDFLAGS ) $(MKLDNN_LDFLAGS ) $(CXX_HARDENING_FLAGS ) $(LINKER_EXEC_HARDENING_FLAGS ) $(LDFLAGS ) -l$(LIBRARY_NAME ) -Wl,-rpath,$(ORIGIN ) /../lib
819+ -o $@ $(BOOST_LDFLAGS ) $(LINKFLAGS ) $(MKL_LDFLAGS ) $(MKLDNN_LDFLAGS ) $(DLCP_LDFLAGS ) $( CXX_HARDENING_FLAGS ) $(LINKER_EXEC_HARDENING_FLAGS ) $(LDFLAGS ) -l$(LIBRARY_NAME ) -Wl,-rpath,$(ORIGIN ) /../lib
805820
806821# Target for extension-less symlinks to tool binaries with extension '*.bin'.
807822$(TOOL_BUILD_DIR ) /% : $(TOOL_BUILD_DIR ) /% .bin | $(TOOL_BUILD_DIR )
@@ -810,12 +825,12 @@ $(TOOL_BUILD_DIR)/%: $(TOOL_BUILD_DIR)/%.bin | $(TOOL_BUILD_DIR)
810825
811826$(TOOL_BINS ) : % .bin : % .o | $(DYNAMIC_NAME )
812827 @ echo CXX/LD -o $@
813- $(Q )$(CXX ) $< -o $@ $(BOOST_LDFLAGS ) $(LINKFLAGS ) $(MKL_LDFLAGS ) $(MKLDNN_LDFLAGS ) $(CXX_HARDENING_FLAGS ) $(LINKER_EXEC_HARDENING_FLAGS ) -l$(LIBRARY_NAME ) $(LDFLAGS ) \
828+ $(Q )$(CXX ) $< -o $@ $(BOOST_LDFLAGS ) $(LINKFLAGS ) $(MKL_LDFLAGS ) $(MKLDNN_LDFLAGS ) $(DLCP_LDFLAGS ) $( CXX_HARDENING_FLAGS ) $(LINKER_EXEC_HARDENING_FLAGS ) -l$(LIBRARY_NAME ) $(LDFLAGS ) \
814829 -Wl,-rpath,$(ORIGIN ) /../lib
815830
816831$(EXAMPLE_BINS ) : % .bin : % .o | $(DYNAMIC_NAME )
817832 @ echo CXX/LD -o $@
818- $(Q )$(CXX ) $< -o $@ $(BOOST_LDFLAGS ) $(LINKFLAGS ) $(MKL_LDFLAGS ) $(MKLDNN_LDFLAGS ) $(CXX_HARDENING_FLAGS ) $(LINKER_EXEC_HARDENING_FLAGS ) -l$(LIBRARY_NAME ) $(LDFLAGS ) \
833+ $(Q )$(CXX ) $< -o $@ $(BOOST_LDFLAGS ) $(LINKFLAGS ) $(MKL_LDFLAGS ) $(MKLDNN_LDFLAGS ) $(DLCP_LDFLAGS ) $( CXX_HARDENING_FLAGS ) $(LINKER_EXEC_HARDENING_FLAGS ) -l$(LIBRARY_NAME ) $(LDFLAGS ) \
819834 -Wl,-rpath,$(ORIGIN ) /../../lib
820835
821836proto : $(PROTO_GEN_CC ) $(PROTO_GEN_HEADER )
@@ -833,7 +848,7 @@ $(PY_PROTO_BUILD_DIR)/%_pb2.py : $(PROTO_SRC_DIR)/%.proto \
833848$(PY_PROTO_INIT ) : | $(PY_PROTO_BUILD_DIR )
834849 touch $(PY_PROTO_INIT )
835850
836- clean : mkldnn_clean
851+ clean : mkldnn_clean dlcp_clean
837852 @echo " Will download the new version of MKL2017 and MLSL when clean and prepare the environment."
838853 @- $(RM ) -rf $(ALL_BUILD_DIRS )
839854 @- $(RM ) -rf $(OTHER_BUILD_DIR )
0 commit comments