From 64117da0c36f0697467ce6d56a7be6837da24d2f Mon Sep 17 00:00:00 2001 From: Mahmoud Abuzaina Date: Thu, 5 Jul 2018 13:56:22 -0700 Subject: Fixing AVX performance issue --- tensorflow/tensorflow.bzl | 5 +++++ third_party/mkl_dnn/BUILD | 8 ++++++++ third_party/mkl_dnn/mkldnn.BUILD | 29 ++++++++++++++++++++++++++++- tools/bazel.rc | 4 ++++ 4 files changed, 45 insertions(+), 1 deletion(-) diff --git a/tensorflow/tensorflow.bzl b/tensorflow/tensorflow.bzl index e4632c4811..3e3fbeb8f8 100644 --- a/tensorflow/tensorflow.bzl +++ b/tensorflow/tensorflow.bzl @@ -24,6 +24,10 @@ load( "if_mkl", "if_mkl_lnx_x64" ) +load( + "//third_party/mkl_dnn:build_defs.bzl", + "if_mkl_open_source_only", +) def register_extension_info(**kwargs): pass @@ -214,6 +218,7 @@ def tf_copts(android_optimization_level_override="-O2", is_external=False): + if_cuda(["-DGOOGLE_CUDA=1"]) + if_tensorrt(["-DGOOGLE_TENSORRT=1"]) + if_mkl(["-DINTEL_MKL=1", "-DEIGEN_USE_VML"]) + + if_mkl_open_source_only(["-DDO_NOT_USE_ML"]) + if_mkl_lnx_x64(["-fopenmp"]) + if_android_arm(["-mfpu=neon"]) + if_linux_x86_64(["-msse3"]) diff --git a/third_party/mkl_dnn/BUILD b/third_party/mkl_dnn/BUILD index 5b01f6e3e4..17a0074abe 100644 --- a/third_party/mkl_dnn/BUILD +++ b/third_party/mkl_dnn/BUILD @@ -1 +1,9 @@ licenses(["notice"]) + +config_setting( + name = "using_mkl_dnn_only", + values = { + "define": "using_mkl_dnn_only=true", + }, + visibility = ["//visibility:public"], +) diff --git a/third_party/mkl_dnn/mkldnn.BUILD b/third_party/mkl_dnn/mkldnn.BUILD index 68f24aabae..57d2e1292b 100644 --- a/third_party/mkl_dnn/mkldnn.BUILD +++ b/third_party/mkl_dnn/mkldnn.BUILD @@ -1,5 +1,10 @@ exports_files(["LICENSE"]) +load( + "@org_tensorflow//third_party/mkl_dnn:build_defs.bzl", + "if_mkl_open_source_only", +) + config_setting( name = "clang_linux_x86_64", values = { @@ -15,7 +20,14 @@ cc_library( "src/cpu/*.cpp", ]), hdrs = glob(["include/*"]), - copts = ["-fexceptions"] + select({ + copts = [ + "-fexceptions", + "-DUSE_MKL", + "-DUSE_CBLAS", + ] + if_mkl_open_source_only([ + "-UUSE_MKL", + "-UUSE_CBLAS", + ]) + select({ "@org_tensorflow//tensorflow:linux_x86_64": [ "-fopenmp", # only works with gcc ], @@ -33,4 +45,19 @@ cc_library( ], nocopts = "-fno-exceptions", visibility = ["//visibility:public"], + deps = select({ + "@org_tensorflow//tensorflow:linux_x86_64": [ + "@mkl_linux//:mkl_headers", + "@mkl_linux//:mkl_libs_linux", + ], + "@org_tensorflow//tensorflow:darwin": [ + "@mkl_darwin//:mkl_headers", + "@mkl_darwin//:mkl_libs_darwin", + ], + "@org_tensorflow//tensorflow:windows": [ + "@mkl_windows//:mkl_headers", + "@mkl_windows//:mkl_libs_windows", + ], + "//conditions:default": [], + }), ) diff --git a/tools/bazel.rc b/tools/bazel.rc index 1c1e6afb65..b3a9e6f0ef 100644 --- a/tools/bazel.rc +++ b/tools/bazel.rc @@ -27,6 +27,10 @@ build --define framework_shared_object=true build:mkl --define=using_mkl=true build:mkl -c opt +# This config option is used to enable MKL-DNN open source library only, +# without depending on MKL binary version. +build:mkl_open_source_only --define=using_mkl_dnn_only=true + build:download_clang --crosstool_top=@local_config_download_clang//:toolchain build:download_clang --define=using_clang=true -- cgit v1.2.3 From d3b4945e6de5343bcf7c37507e9a1d1ff8d9e496 Mon Sep 17 00:00:00 2001 From: Mahmoud Abuzaina Date: Tue, 10 Jul 2018 17:35:27 -0700 Subject: Added missing file --- third_party/mkl_dnn/build_defs.bzl | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 third_party/mkl_dnn/build_defs.bzl diff --git a/third_party/mkl_dnn/build_defs.bzl b/third_party/mkl_dnn/build_defs.bzl new file mode 100644 index 0000000000..108d82e683 --- /dev/null +++ b/third_party/mkl_dnn/build_defs.bzl @@ -0,0 +1,13 @@ +def if_mkl_open_source_only(if_true, if_false = []): + """Shorthand for select()'ing on whether we're building with + MKL-DNN open source lib only, without depending on MKL binary form. + + Returns a select statement which evaluates to if_true if we're building + with MKL-DNN open source lib only. Otherwise, + the select statement evaluates to if_false. + + """ + return select({ + str(Label("//third_party/mkl_dnn:using_mkl_dnn_only")): if_true, + "//conditions:default": if_false + }) \ No newline at end of file -- cgit v1.2.3 From c82cac172297865c9bf106dfcc11195934b95478 Mon Sep 17 00:00:00 2001 From: Mahmoud Abuzaina Date: Wed, 11 Jul 2018 12:13:38 -0700 Subject: Exporting build_defs.bzl in BUILD file --- third_party/mkl_dnn/BUILD | 2 ++ third_party/mkl_dnn/mkldnn.BUILD | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/third_party/mkl_dnn/BUILD b/third_party/mkl_dnn/BUILD index 17a0074abe..6a36b50e70 100644 --- a/third_party/mkl_dnn/BUILD +++ b/third_party/mkl_dnn/BUILD @@ -1,5 +1,7 @@ licenses(["notice"]) +exports_files(["build_defs.bzl"]) + config_setting( name = "using_mkl_dnn_only", values = { diff --git a/third_party/mkl_dnn/mkldnn.BUILD b/third_party/mkl_dnn/mkldnn.BUILD index 57d2e1292b..b9c12d4535 100644 --- a/third_party/mkl_dnn/mkldnn.BUILD +++ b/third_party/mkl_dnn/mkldnn.BUILD @@ -1,4 +1,7 @@ -exports_files(["LICENSE"]) +exports_files([ + "LICENSE", + "build_defs.bzl", +]) load( "@org_tensorflow//third_party/mkl_dnn:build_defs.bzl", -- cgit v1.2.3 From 47a2ac52147e9bbb41637170bf7e468367f82976 Mon Sep 17 00:00:00 2001 From: Mahmoud Abuzaina Date: Wed, 11 Jul 2018 13:21:10 -0700 Subject: Adding MKL_DNN license to BUILD files --- tensorflow/tools/lib_package/BUILD | 2 ++ tensorflow/tools/pip_package/BUILD | 1 + third_party/mkl_dnn/BUILD | 2 -- third_party/mkl_dnn/mkldnn.BUILD | 5 +---- 4 files changed, 4 insertions(+), 6 deletions(-) diff --git a/tensorflow/tools/lib_package/BUILD b/tensorflow/tools/lib_package/BUILD index 173f418dc8..ef3eb16121 100644 --- a/tensorflow/tools/lib_package/BUILD +++ b/tensorflow/tools/lib_package/BUILD @@ -143,6 +143,7 @@ genrule( "@zlib_archive//:zlib.h", ] + if_mkl([ "//third_party/mkl:LICENSE", + "@mkl_dnn//:LICENSE", ]), outs = ["include/tensorflow/c/LICENSE"], cmd = "$(location :concat_licenses.sh) $(SRCS) >$@", @@ -182,6 +183,7 @@ genrule( "@zlib_archive//:zlib.h", ] + if_mkl([ "//third_party/mkl:LICENSE", + "@mkl_dnn//:LICENSE", ]), outs = ["include/tensorflow/jni/LICENSE"], cmd = "$(location :concat_licenses.sh) $(SRCS) >$@", diff --git a/tensorflow/tools/pip_package/BUILD b/tensorflow/tools/pip_package/BUILD index c9d53f46c3..cfafbcbfa1 100644 --- a/tensorflow/tools/pip_package/BUILD +++ b/tensorflow/tools/pip_package/BUILD @@ -168,6 +168,7 @@ filegroup( "@org_python_pypi_backports_weakref//:LICENSE", ] + if_mkl([ "//third_party/mkl:LICENSE", + "@mkl_dnn//:LICENSE", ]) + tf_additional_license_deps(), ) diff --git a/third_party/mkl_dnn/BUILD b/third_party/mkl_dnn/BUILD index 6a36b50e70..17a0074abe 100644 --- a/third_party/mkl_dnn/BUILD +++ b/third_party/mkl_dnn/BUILD @@ -1,7 +1,5 @@ licenses(["notice"]) -exports_files(["build_defs.bzl"]) - config_setting( name = "using_mkl_dnn_only", values = { diff --git a/third_party/mkl_dnn/mkldnn.BUILD b/third_party/mkl_dnn/mkldnn.BUILD index b9c12d4535..57d2e1292b 100644 --- a/third_party/mkl_dnn/mkldnn.BUILD +++ b/third_party/mkl_dnn/mkldnn.BUILD @@ -1,7 +1,4 @@ -exports_files([ - "LICENSE", - "build_defs.bzl", -]) +exports_files(["LICENSE"]) load( "@org_tensorflow//third_party/mkl_dnn:build_defs.bzl", -- cgit v1.2.3 From 03ab64c3a68f3b990bf690ede06e3066ad4e35a0 Mon Sep 17 00:00:00 2001 From: Mahmoud Abuzaina Date: Wed, 11 Jul 2018 16:10:24 -0700 Subject: Adding LICENSE file to mkl_dnn --- tensorflow/tools/lib_package/BUILD | 4 ++-- tensorflow/tools/pip_package/BUILD | 2 +- third_party/mkl_dnn/BUILD | 2 ++ 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/tensorflow/tools/lib_package/BUILD b/tensorflow/tools/lib_package/BUILD index ef3eb16121..44d8a37a8f 100644 --- a/tensorflow/tools/lib_package/BUILD +++ b/tensorflow/tools/lib_package/BUILD @@ -143,7 +143,7 @@ genrule( "@zlib_archive//:zlib.h", ] + if_mkl([ "//third_party/mkl:LICENSE", - "@mkl_dnn//:LICENSE", + "//third_party/mkl_dnn:LICENSE", ]), outs = ["include/tensorflow/c/LICENSE"], cmd = "$(location :concat_licenses.sh) $(SRCS) >$@", @@ -183,7 +183,7 @@ genrule( "@zlib_archive//:zlib.h", ] + if_mkl([ "//third_party/mkl:LICENSE", - "@mkl_dnn//:LICENSE", + "//third_party/mkl_dnn:LICENSE", ]), outs = ["include/tensorflow/jni/LICENSE"], cmd = "$(location :concat_licenses.sh) $(SRCS) >$@", diff --git a/tensorflow/tools/pip_package/BUILD b/tensorflow/tools/pip_package/BUILD index cfafbcbfa1..bff3042990 100644 --- a/tensorflow/tools/pip_package/BUILD +++ b/tensorflow/tools/pip_package/BUILD @@ -168,7 +168,7 @@ filegroup( "@org_python_pypi_backports_weakref//:LICENSE", ] + if_mkl([ "//third_party/mkl:LICENSE", - "@mkl_dnn//:LICENSE", + "//third_party/mkl_dnn:LICENSE", ]) + tf_additional_license_deps(), ) diff --git a/third_party/mkl_dnn/BUILD b/third_party/mkl_dnn/BUILD index 17a0074abe..d075809ee9 100644 --- a/third_party/mkl_dnn/BUILD +++ b/third_party/mkl_dnn/BUILD @@ -1,5 +1,7 @@ licenses(["notice"]) +exports_files(["LICENSE"]) + config_setting( name = "using_mkl_dnn_only", values = { -- cgit v1.2.3