aboutsummaryrefslogtreecommitdiffhomepage
path: root/third_party/sycl
diff options
context:
space:
mode:
authorGravatar Yifei Feng <yifeif@google.com>2017-11-22 00:39:22 -0800
committerGravatar TensorFlower Gardener <gardener@tensorflow.org>2017-11-22 00:42:30 -0800
commite70c00950d295c519fd9c7f8b12e13a3c5aaf710 (patch)
treeee1210f8810e0b0fec9346f762e854b371899919 /third_party/sycl
parentad7eeec1cc06d7fdba6ee404f03a35fab9cd3e6a (diff)
Automated g4 rollback of changelist 176615107
PiperOrigin-RevId: 176622438
Diffstat (limited to 'third_party/sycl')
-rwxr-xr-xthird_party/sycl/crosstool/CROSSTOOL.tpl8
-rw-r--r--third_party/sycl/crosstool/trisycl.tpl73
-rwxr-xr-xthird_party/sycl/sycl/BUILD.tpl17
-rwxr-xr-xthird_party/sycl/sycl/build_defs.bzl.tpl17
-rw-r--r--third_party/sycl/sycl_configure.bzl86
5 files changed, 30 insertions, 171 deletions
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,