diff options
author | Justine Tunney <jart@google.com> | 2016-12-29 00:24:58 -0800 |
---|---|---|
committer | TensorFlower Gardener <gardener@tensorflow.org> | 2016-12-29 00:51:20 -0800 |
commit | e28db9fced14d1ae16b20773544f57e382b9983e (patch) | |
tree | 84126c51638f04f7098c1f4181b88f6364fa4463 /third_party/libxsmm.BUILD | |
parent | a1a3b0c6c3abe0df0c8e017d9f134db4731484b9 (diff) |
Move most foo.BUILD files into third_party
This frees up space on the TensorFlow GitHub home page!
Change: 143161497
Diffstat (limited to 'third_party/libxsmm.BUILD')
-rw-r--r-- | third_party/libxsmm.BUILD | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/third_party/libxsmm.BUILD b/third_party/libxsmm.BUILD new file mode 100644 index 0000000000..a0aab0f5b7 --- /dev/null +++ b/third_party/libxsmm.BUILD @@ -0,0 +1,137 @@ +# Description: +# LIBXSMM: Library for small matrix-matrix multiplications targeting Intel Architecture (x86). + +licenses(["notice"]) # BSD 3-clause + +exports_files(["LICENSE"]) + +# Arguments to ./scripts/libxsmm_interface.py, see that file for detailed description. +# precision: SP & DP +# prefetch: 1 (auto) +libxsmm_interface_arguments = "0 1" + +# Arguments to ./scripts/libxsmm_config.py, see that file for detailed description. +# ilp64: no +# big: no +# offload: no +# alignment [b] +# prefetch: 1 (auto) +# threshold: fallback to BLAS if n*m*k above this +# synchronize: yes +# jit: yes +# flags +# alpha = 1 +# beta = 1 +libxsmm_config_arguments = "0 0 0 64 1 0 1 1 0 1 1" + +# Arguments to ./scripts/libxsmm_dispatch.py, see that file for detailed description. +# (dummy argument) +libxsmm_dispatch_arguments = "0" + +genrule( + name = "libxsmm_headers", + srcs = [ + "src/template/libxsmm.h", + "src/template/libxsmm_config.h", + ], + outs = [ + "include/libxsmm.h", + "include/libxsmm_config.h", + "include/libxsmm_dispatch.h", + ], + cmd = "$(location :libxsmm_interface) $(location src/template/libxsmm.h) " + libxsmm_interface_arguments + " > $(location include/libxsmm.h);" + + "$(location :libxsmm_config) $(location src/template/libxsmm_config.h) " + libxsmm_config_arguments + " > $(location include/libxsmm_config.h);" + + "$(location :libxsmm_dispatch) " + libxsmm_dispatch_arguments + " > $(location include/libxsmm_dispatch.h)", + tools = [ + ":libxsmm_config", + ":libxsmm_dispatch", + ":libxsmm_interface", + ], + visibility = [ + "//tensorflow/core/kernels:__pkg__", + "//third_party/eigen3:__pkg__", + ], +) + +cc_library( + name = "xsmm_avx", + srcs = [ + "src/libxsmm_main.c", + "src/libxsmm_dump.c", + "src/libxsmm_malloc.c", + "src/libxsmm_gemm.c", + "src/libxsmm_gemm_diff.c", + "src/libxsmm_hash.c", + "src/libxsmm_timer.c", + "src/libxsmm_trace.c", + "src/libxsmm_trans.c", + "src/libxsmm_sync.c", + "src/libxsmm_perf.c", + "src/libxsmm_spmdm.c", + "src/libxsmm_dnn.c", + "src/libxsmm_dnn_handle.c", + "src/libxsmm_dnn_convolution_forward.c", + "src/libxsmm_dnn_convolution_backward.c", + "src/libxsmm_dnn_convolution_weight_update.c", + "src/libxsmm_cpuid_x86.c", + ] + glob([ + "src/generator_*.c", + ]), + hdrs = [ + "include/libxsmm_cpuid.h", + "include/libxsmm_dnn.h", + "include/libxsmm_frontend.h", + "include/libxsmm_generator.h", + "include/libxsmm_intrinsics_x86.h", + "include/libxsmm_macros.h", + "include/libxsmm_malloc.h", + "include/libxsmm_spmdm.h", + "include/libxsmm_sync.h", + "include/libxsmm_timer.h", + "include/libxsmm_typedefs.h", + # Generated: + "include/libxsmm.h", + "include/libxsmm_config.h", + "include/libxsmm_dispatch.h", + ], + copts = [ + "-mavx", # JIT does not work without avx anyway, and this silences some CRC32 warnings. + "-Wno-vla", # Libxsmm convolutions heavily use VLA. + ], + defines = [ + "LIBXSMM_BUILD", + "LIBXSMM_CPUID_X86_NOINLINE", + "__BLAS=0", + ], + includes = [ + "include", + "src", + "src/template", + ], + linkopts = ["-ldl"], + visibility = ["//visibility:public"], +) + +py_library( + name = "libxsmm_scripts", + srcs = glob(["scripts/*.py"]), + data = ["version.txt"], +) + +py_binary( + name = "libxsmm_interface", + srcs = ["scripts/libxsmm_interface.py"], + deps = [":libxsmm_scripts"], +) + +py_binary( + name = "libxsmm_config", + srcs = ["scripts/libxsmm_config.py"], + deps = [":libxsmm_scripts"], +) + +py_binary( + name = "libxsmm_dispatch", + srcs = ["scripts/libxsmm_dispatch.py"], + deps = [":libxsmm_scripts"], +) |