From e70c00950d295c519fd9c7f8b12e13a3c5aaf710 Mon Sep 17 00:00:00 2001 From: Yifei Feng Date: Wed, 22 Nov 2017 00:39:22 -0800 Subject: Automated g4 rollback of changelist 176615107 PiperOrigin-RevId: 176622438 --- third_party/sycl/crosstool/CROSSTOOL.tpl | 8 +-- third_party/sycl/crosstool/trisycl.tpl | 73 --------------------------- third_party/sycl/sycl/BUILD.tpl | 17 ++----- third_party/sycl/sycl/build_defs.bzl.tpl | 17 +------ third_party/sycl/sycl_configure.bzl | 86 ++++++++------------------------ 5 files changed, 30 insertions(+), 171 deletions(-) delete mode 100644 third_party/sycl/crosstool/trisycl.tpl (limited to 'third_party/sycl') diff --git a/third_party/sycl/crosstool/CROSSTOOL.tpl b/third_party/sycl/crosstool/CROSSTOOL.tpl index f8e50efcc6..32884d71e7 100755 --- a/third_party/sycl/crosstool/CROSSTOOL.tpl +++ b/third_party/sycl/crosstool/CROSSTOOL.tpl @@ -35,10 +35,10 @@ toolchain { tool_path { name: "compat-ld" path: "/usr/bin/ld" } tool_path { name: "cpp" path: "/usr/bin/cpp" } tool_path { name: "dwp" path: "/usr/bin/dwp" } - tool_path { name: "gcc" path: "%{sycl_impl}" } + tool_path { name: "gcc" path: "computecpp" } # Use "-std=c++11" for nvcc. For consistency, force both the host compiler # and the device compiler to use "-std=c++11". - cxx_flag: "%{c++_std}" + cxx_flag: "-std=c++11" linker_flag: "-Wl,-no-as-needed" linker_flag: "-lstdc++" linker_flag: "-B/usr/bin/" @@ -53,7 +53,7 @@ toolchain { cxx_builtin_include_directory: "/usr/local/include" cxx_builtin_include_directory: "/usr/include" - cxx_builtin_include_directory: "%{sycl_include_dir}" + cxx_builtin_include_directory: "%{computecpp_toolkit_path}" cxx_builtin_include_directory: "%{python_lib_path}" tool_path { name: "gcov" path: "/usr/bin/gcov" } @@ -214,4 +214,4 @@ toolchain { compiler_flag: "-O2" compiler_flag: "-DNDEBUG" } -} \ No newline at end of file +} diff --git a/third_party/sycl/crosstool/trisycl.tpl b/third_party/sycl/crosstool/trisycl.tpl deleted file mode 100644 index b470772fbf..0000000000 --- a/third_party/sycl/crosstool/trisycl.tpl +++ /dev/null @@ -1,73 +0,0 @@ -#!/usr/bin/env python - -import os -import sys -import tempfile -from subprocess import call - -CPU_CXX_COMPILER = ('%{host_cxx_compiler}') -CPU_C_COMPILER = ('%{host_c_compiler}') - -CURRENT_DIR = os.path.dirname(sys.argv[0]) -TRISYCL_INCLUDE_DIR = CURRENT_DIR + '/../sycl/include' - -def main(): - compiler_flags = [] - - remove_flags = ('-Wl,--no-undefined', '-Wno-unused-but-set-variable', '-Wignored-attributes', '-fno-exceptions') - # remove -fsamotoze-coverage from string with g++ - if 'g++' in CPU_CXX_COMPILER: - remove_flags += ('-fsanitize-coverage',) - compiler_flags += ['-fopenmp'] - else: - compiler_flags += ['-fopenmp=libomp'] - - compiler_flags += [flag for flag in sys.argv[1:] if not flag.startswith(remove_flags)] - - - output_file_index = compiler_flags.index('-o') + 1 - output_file_name = compiler_flags[output_file_index] - - if(output_file_index == 1): - # we are linking - return call([CPU_CXX_COMPILER] + compiler_flags + - ['-Wl,--no-undefined']) - - # find what we compile - compiling_cpp = 0 - if('-c' in compiler_flags): - compiled_file_index = compiler_flags.index('-c') + 1 - compiled_file_name = compiler_flags[compiled_file_index] - if(compiled_file_name.endswith(('.cc', '.c++', '.cpp', '.CPP', - '.C', '.cxx'))): - compiling_cpp = 1; - - debug_flags = ['-DTRISYCL_DEBUG', '-DBOOST_LOG_DYN_LINK', '-DTRISYCL_TRACE_KERNEL', '-lpthread', '-lboost_log', '-g', '-rdynamic'] - - opt_flags = ['-DNDEBUG', '-DBOOST_DISABLE_ASSERTS', '-O3'] - - compiler_flags = compiler_flags + ['-DEIGEN_USE_SYCL=1', - '-DEIGEN_HAS_C99_MATH', - '-DEIGEN_MAX_ALIGN_BYTES=16', - '-DTENSORFLOW_USE_SYCL'] + opt_flags - - if(compiling_cpp == 1): - # create a blacklist of folders that will be skipped when compiling - # with triSYCL - skip_extensions = [".cu.cc"] - skip_folders = ["tensorflow/compiler", "tensorflow/docs_src", "tensorflow/tensorboard", "third_party", "external", "hexagon"] - skip_folders = [(folder + '/') for folder in skip_folders] - # if compiling external project skip triSYCL - if any(compiled_file_name.endswith(_ext) for _ext in skip_extensions) or any(_folder in output_file_name for _folder in skip_folders): - return call([CPU_CXX_COMPILER] + compiler_flags) - - host_compiler_flags = ['-xc++', '-Wno-unused-variable', - '-I', TRISYCL_INCLUDE_DIR] + compiler_flags - x = call([CPU_CXX_COMPILER] + host_compiler_flags) - return x - else: - # compile for C - return call([CPU_C_COMPILER] + compiler_flags) - -if __name__ == '__main__': - sys.exit(main()) diff --git a/third_party/sycl/sycl/BUILD.tpl b/third_party/sycl/sycl/BUILD.tpl index b6ceaadda7..6cad190630 100755 --- a/third_party/sycl/sycl/BUILD.tpl +++ b/third_party/sycl/sycl/BUILD.tpl @@ -10,27 +10,16 @@ package(default_visibility = ["//visibility:public"]) exports_files(["LICENSE.text"]) config_setting( - name = "using_sycl_ccpp", - define_values = { - "using_sycl": "true", - "using_trisycl": "false", + name = "using_sycl", + values = { + "define": "using_sycl=true", }, ) -config_setting( - name = "using_sycl_trisycl", - define_values = { - "using_sycl": "true", - "using_trisycl": "false", - }, -) - - cc_library( name = "sycl_headers", hdrs = glob([ "**/*.h", - "**/*.hpp", ]), includes = [".", "include"], ) diff --git a/third_party/sycl/sycl/build_defs.bzl.tpl b/third_party/sycl/sycl/build_defs.bzl.tpl index 33386f8957..09bef0a661 100755 --- a/third_party/sycl/sycl/build_defs.bzl.tpl +++ b/third_party/sycl/sycl/build_defs.bzl.tpl @@ -5,24 +5,9 @@ def if_sycl(if_true, if_false = []): Returns a select statement which evaluates to if_true if we're building with SYCL enabled. Otherwise, the select statement evaluates to if_false. - If we are building with triSYCL instead of ComputeCPP, a list with - the first element of if_true is returned. - """ - return select({ - "@local_config_sycl//sycl:using_sycl_ccpp": if_true, - "@local_config_sycl//sycl:using_sycl_trisycl": if_true[0:1], - "//conditions:default": if_false - }) - -def if_ccpp(if_true, if_false = []): - """Shorthand for select()'ing if we are building with ComputeCPP. - Returns a select statement which evaluates to if_true if we're building - with ComputeCPP enabled. Otherwise, the select statement evaluates - to if_false. """ return select({ - "@local_config_sycl//sycl:using_sycl_ccpp": if_true, - "@local_config_sycl//sycl:using_sycl_trisycl": if_false, + "@local_config_sycl//sycl:using_sycl": if_true, "//conditions:default": if_false }) diff --git a/third_party/sycl/sycl_configure.bzl b/third_party/sycl/sycl_configure.bzl index a0c9e4e43a..7af063178e 100644 --- a/third_party/sycl/sycl_configure.bzl +++ b/third_party/sycl/sycl_configure.bzl @@ -5,26 +5,20 @@ * HOST_CXX_COMPILER: The host C++ compiler * HOST_C_COMPILER: The host C compiler * COMPUTECPP_TOOLKIT_PATH: The path to the ComputeCpp toolkit. - * TRISYCL_INCLUDE_DIR: The path to the include directory of triSYCL. - (if using triSYCL instead of ComputeCPP) * PYTHON_LIB_PATH: The path to the python lib """ _HOST_CXX_COMPILER = "HOST_CXX_COMPILER" _HOST_C_COMPILER= "HOST_C_COMPILER" _COMPUTECPP_TOOLKIT_PATH = "COMPUTECPP_TOOLKIT_PATH" -_TRISYCL_INCLUDE_DIR = "TRISYCL_INCLUDE_DIR" _PYTHON_LIB_PATH = "PYTHON_LIB_PATH" def _enable_sycl(repository_ctx): - if "TF_NEED_OPENCL_SYCL" in repository_ctx.os.environ: - enable_sycl = repository_ctx.os.environ["TF_NEED_OPENCL_SYCL"].strip() + if "TF_NEED_OPENCL" in repository_ctx.os.environ: + enable_sycl = repository_ctx.os.environ["TF_NEED_OPENCL"].strip() return enable_sycl == "1" return False -def _enable_compute_cpp(repository_ctx): - return _COMPUTECPP_TOOLKIT_PATH in repository_ctx.os.environ - def auto_configure_fail(msg): """Output failure message when auto configuration fails.""" red = "\033[0;31m" @@ -65,15 +59,6 @@ def find_computecpp_root(repository_ctx): return sycl_name fail("Cannot find SYCL compiler, please correct your path") -def find_trisycl_include_dir(repository_ctx): - """Find triSYCL include directory. """ - sycl_name = "" - if _TRISYCL_INCLUDE_DIR in repository_ctx.os.environ: - sycl_name = repository_ctx.os.environ[_TRISYCL_INCLUDE_DIR].strip() - if sycl_name.startswith("/"): - return sycl_name - fail( "Cannot find triSYCL include directory, please correct your path") - def find_python_lib(repository_ctx): """Returns python path.""" if _PYTHON_LIB_PATH in repository_ctx.os.environ: @@ -186,53 +171,26 @@ def _sycl_autoconf_imp(repository_ctx): _tpl(repository_ctx, "sycl:platform.bzl") _tpl(repository_ctx, "crosstool:BUILD") _file(repository_ctx, "sycl:LICENSE.text") - - if _enable_compute_cpp(repository_ctx): - _tpl(repository_ctx, "crosstool:computecpp", - { - "%{host_cxx_compiler}" : find_cc(repository_ctx), - "%{host_c_compiler}" : find_c(repository_ctx) - }) - - computecpp_root = find_computecpp_root(repository_ctx); - _check_dir(repository_ctx, computecpp_root) - - _tpl(repository_ctx, "crosstool:CROSSTOOL", - { - "%{sycl_include_dir}" : computecpp_root, - "%{sycl_impl}" : "computecpp", - "%{c++_std}" : "-std=c++11", - "%{python_lib_path}" : find_python_lib(repository_ctx), - }) - - # symlink libraries - _check_lib(repository_ctx, computecpp_root+"/lib", "libComputeCpp.so" ) - _symlink_dir(repository_ctx, computecpp_root + "/lib", "sycl/lib") - _symlink_dir(repository_ctx, computecpp_root + "/include", "sycl/include") - _symlink_dir(repository_ctx, computecpp_root + "/bin", "sycl/bin") - else: - - trisycl_include_dir = find_trisycl_include_dir(repository_ctx); - _check_dir(repository_ctx, trisycl_include_dir) - - _tpl(repository_ctx, "crosstool:trisycl", - { - "%{host_cxx_compiler}" : find_cc(repository_ctx), - "%{host_c_compiler}" : find_c(repository_ctx), - "%{trisycl_include_dir}" : trisycl_include_dir - }) - - - _tpl(repository_ctx, "crosstool:CROSSTOOL", - { - "%{sycl_include_dir}" : trisycl_include_dir, - "%{sycl_impl}" : "trisycl", - "%{c++_std}" : "-std=c++1y", - "%{python_lib_path}" : find_python_lib(repository_ctx), - }) - - _symlink_dir(repository_ctx, trisycl_include_dir, "sycl/include") - + _tpl(repository_ctx, "crosstool:computecpp", + { + "%{host_cxx_compiler}" : find_cc(repository_ctx), + "%{host_c_compiler}" : find_c(repository_ctx), + }) + + computecpp_root = find_computecpp_root(repository_ctx) + _check_dir(repository_ctx, computecpp_root) + + _tpl(repository_ctx, "crosstool:CROSSTOOL", + { + "%{computecpp_toolkit_path}" : computecpp_root, + "%{python_lib_path}" : find_python_lib(repository_ctx), + }) + + # symlink libraries + _check_lib(repository_ctx, computecpp_root+"/lib", "libComputeCpp.so" ) + _symlink_dir(repository_ctx, computecpp_root + "/lib", "sycl/lib") + _symlink_dir(repository_ctx, computecpp_root + "/include", "sycl/include") + _symlink_dir(repository_ctx, computecpp_root + "/bin", "sycl/bin") sycl_configure = repository_rule( implementation = _sycl_autoconf_imp, -- cgit v1.2.3