@@ -71,11 +71,13 @@ endif
71
71
72
72
RETURN_STRING=$(shell ./external/mlsl/prepare_mlsl.sh)
73
73
MLSL_ROOT=$(firstword $(RETURN_STRING))
74
- MLSL_LDFLAGS=$(lastword $(RETURN_STRING))
74
+ MLSL_LDFLAGS=$(lastword $(RETURN_STRING))
75
75
COMMON_FLAGS += -DUSE_MLSL=1
76
76
LIBRARIES += mlsl
77
77
INCLUDE_DIRS += $(MLSL_ROOT)/intel64/include
78
78
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
79
81
80
82
ifeq ($(CAFFE_PER_LAYER_TIMINGS ) , 1)
81
83
COMMON_FLAGS += -DCAFFE_PER_LAYER_TIMINGS
@@ -249,7 +251,13 @@ ifneq ($(CPU_ONLY), 1)
249
251
LIBRARIES := cudart cublas curand
250
252
endif
251
253
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
+
253
261
BOOST_LIBRARIES += boost_system boost_filesystem boost_regex
254
262
255
263
# handle IO dependencies
@@ -479,6 +487,11 @@ ifeq ($(WITH_PYTHON_LAYER), 1)
479
487
LIBRARIES += $(PYTHON_LIBRARIES)
480
488
endif
481
489
490
+ # Remove batch norm feature support
491
+ ifeq ($(DISABLE_BN_FOLDING ) , 1)
492
+ COMMON_FLAGS += -DDISABLE_BN_FOLDING
493
+ endif
494
+
482
495
# Performance monitoring
483
496
ifeq ($(PERFORMANCE_MONITORING ) , 1)
484
497
CXXFLAGS += -DPERFORMANCE_MONITORING
@@ -489,6 +502,8 @@ ifeq ($(USE_MKLDNN_AS_DEFAULT_ENGINE), 1)
489
502
CXXFLAGS += -DUSE_MKLDNN_AS_DEFAULT_ENGINE
490
503
endif
491
504
505
+ include Makefile.dlcp
506
+
492
507
# BOOST configuration
493
508
# detect support for custom boost version
494
509
BOOST_LDFLAGS += $(foreach boost_lib,$(BOOST_LIBRARIES ) ,-l$(boost_lib ) )
@@ -602,7 +617,7 @@ endif
602
617
# #############################
603
618
.PHONY : all lib test clean docs linecount lint lintclean tools examples $(DIST_ALIASES ) \
604
619
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
606
621
607
622
.DEFAULT_GOAL := all
608
623
@@ -757,14 +772,14 @@ $(ALL_BUILD_DIRS): | $(BUILD_DIR_LINK)
757
772
758
773
$(DYNAMIC_NAME ) : $(OBJS ) | $(LIB_BUILD_DIR )
759
774
@ 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 )
761
776
@ cd $(BUILD_DIR ) /lib; rm -f $(DYNAMIC_NAME_SHORT ) ; ln -s $(DYNAMIC_VERSIONED_NAME_SHORT ) $(DYNAMIC_NAME_SHORT )
762
777
763
778
$(STATIC_NAME ) : $(OBJS ) | $(LIB_BUILD_DIR )
764
779
@ echo AR -o $@
765
780
$(Q ) ar rcs $@ $(OBJS )
766
781
767
- $(BUILD_DIR ) /% .o : % .cpp | mkldnn $(ALL_BUILD_DIRS )
782
+ $(BUILD_DIR ) /% .o : % .cpp | mkldnn dlcp $(ALL_BUILD_DIRS )
768
783
@ echo CXX $<
769
784
$(Q )$(CXX ) $< $(CXX_HARDENING_FLAGS ) $(CXXFLAGS ) -c -o $@ 2> $@ .$(WARNS_EXT ) \
770
785
|| (cat $@ .$( WARNS_EXT) ; exit 1)
@@ -789,7 +804,7 @@ $(TEST_ALL_BIN): $(TEST_MAIN_SRC) $(TEST_OBJS) $(GTEST_OBJS) \
789
804
| $(DYNAMIC_NAME ) $(TEST_BIN_DIR )
790
805
@ echo CXX/LD -o $@ $<
791
806
$(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
793
808
794
809
$(TEST_CU_BINS ) : $(TEST_BIN_DIR ) /% .testbin: $(TEST_CU_BUILD_DIR ) /% .o \
795
810
$(GTEST_OBJS ) | $(DYNAMIC_NAME ) $(TEST_BIN_DIR )
@@ -801,7 +816,7 @@ $(TEST_CXX_BINS): $(TEST_BIN_DIR)/%.testbin: $(TEST_CXX_BUILD_DIR)/%.o \
801
816
$(GTEST_OBJS ) | $(DYNAMIC_NAME ) $(TEST_BIN_DIR )
802
817
@ echo LD $<
803
818
$(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
805
820
806
821
# Target for extension-less symlinks to tool binaries with extension '*.bin'.
807
822
$(TOOL_BUILD_DIR ) /% : $(TOOL_BUILD_DIR ) /% .bin | $(TOOL_BUILD_DIR )
@@ -810,12 +825,12 @@ $(TOOL_BUILD_DIR)/%: $(TOOL_BUILD_DIR)/%.bin | $(TOOL_BUILD_DIR)
810
825
811
826
$(TOOL_BINS ) : % .bin : % .o | $(DYNAMIC_NAME )
812
827
@ 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 ) \
814
829
-Wl,-rpath,$(ORIGIN ) /../lib
815
830
816
831
$(EXAMPLE_BINS ) : % .bin : % .o | $(DYNAMIC_NAME )
817
832
@ 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 ) \
819
834
-Wl,-rpath,$(ORIGIN ) /../../lib
820
835
821
836
proto : $(PROTO_GEN_CC ) $(PROTO_GEN_HEADER )
@@ -833,7 +848,7 @@ $(PY_PROTO_BUILD_DIR)/%_pb2.py : $(PROTO_SRC_DIR)/%.proto \
833
848
$(PY_PROTO_INIT ) : | $(PY_PROTO_BUILD_DIR )
834
849
touch $(PY_PROTO_INIT )
835
850
836
- clean : mkldnn_clean
851
+ clean : mkldnn_clean dlcp_clean
837
852
@echo " Will download the new version of MKL2017 and MLSL when clean and prepare the environment."
838
853
@- $(RM ) -rf $(ALL_BUILD_DIRS )
839
854
@- $(RM ) -rf $(OTHER_BUILD_DIR )
0 commit comments