aboutsummaryrefslogtreecommitdiffhomepage
path: root/third_party/gpus
diff options
context:
space:
mode:
authorGravatar A. Unique TensorFlower <gardener@tensorflow.org>2017-07-04 08:04:25 -0700
committerGravatar TensorFlower Gardener <gardener@tensorflow.org>2017-07-04 08:10:41 -0700
commit9ec810573bd3666e36f960923a8aff7cb72df1dc (patch)
treeb385c0665a81621dbe7eae69e4e9ec45e47f6418 /third_party/gpus
parenta7032f21d72dd051f09b94733ed890dcd7ceaac8 (diff)
Symlink files for cuda configuration one level below the BUILD file (i.e., one level under local_config_cuda/cuda).
END_PUBLIC BEGIN_PUBLIC Automated g4 rollback of changelist 159643278 PiperOrigin-RevId: 160894669
Diffstat (limited to 'third_party/gpus')
-rw-r--r--third_party/gpus/cuda/BUILD.tpl82
-rw-r--r--third_party/gpus/cuda_configure.bzl50
2 files changed, 84 insertions, 48 deletions
diff --git a/third_party/gpus/cuda/BUILD.tpl b/third_party/gpus/cuda/BUILD.tpl
index 87c8678714..51d9e4e994 100644
--- a/third_party/gpus/cuda/BUILD.tpl
+++ b/third_party/gpus/cuda/BUILD.tpl
@@ -40,20 +40,23 @@ config_setting(
cc_library(
name = "cuda_headers",
hdrs = [
- "cuda_config.h",
+ "cuda/cuda_config.h",
%{cuda_headers}
],
includes = [
".",
- "include",
+ "cuda/include",
],
visibility = ["//visibility:public"],
)
cc_library(
name = "cudart_static",
- srcs = ["lib/%{cudart_static_lib}"],
- includes = ["include"],
+ srcs = ["cuda/lib/%{cudart_static_lib}"],
+ includes = [
+ ".",
+ "cuda/include",
+ ],
linkopts = select({
":freebsd": [],
"//conditions:default": ["-ldl"],
@@ -66,34 +69,46 @@ cc_library(
cc_library(
name = "cuda_driver",
- srcs = ["lib/%{cuda_driver_lib}"],
- includes = ["include"],
+ srcs = ["cuda/lib/%{cuda_driver_lib}"],
+ includes = [
+ ".",
+ "cuda/include",
+ ],
visibility = ["//visibility:public"],
)
cc_library(
name = "cudart",
- srcs = ["lib/%{cudart_lib}"],
- data = ["lib/%{cudart_lib}"],
- includes = ["include"],
+ srcs = ["cuda/lib/%{cudart_lib}"],
+ data = ["cuda/lib/%{cudart_lib}"],
+ includes = [
+ ".",
+ "cuda/include",
+ ],
linkstatic = 1,
visibility = ["//visibility:public"],
)
cc_library(
name = "cublas",
- srcs = ["lib/%{cublas_lib}"],
- data = ["lib/%{cublas_lib}"],
- includes = ["include"],
+ srcs = ["cuda/lib/%{cublas_lib}"],
+ data = ["cuda/lib/%{cublas_lib}"],
+ includes = [
+ ".",
+ "cuda/include",
+ ],
linkstatic = 1,
visibility = ["//visibility:public"],
)
cc_library(
name = "cusolver",
- srcs = ["lib/%{cusolver_lib}"],
- data = ["lib/%{cusolver_lib}"],
- includes = ["include"],
+ srcs = ["cuda/lib/%{cusolver_lib}"],
+ data = ["cuda/lib/%{cusolver_lib}"],
+ includes = [
+ ".",
+ "cuda/include",
+ ],
linkopts = ["-lgomp"],
linkstatic = 1,
visibility = ["//visibility:public"],
@@ -101,27 +116,36 @@ cc_library(
cc_library(
name = "cudnn",
- srcs = ["lib/%{cudnn_lib}"],
- data = ["lib/%{cudnn_lib}"],
- includes = ["include"],
+ srcs = ["cuda/lib/%{cudnn_lib}"],
+ data = ["cuda/lib/%{cudnn_lib}"],
+ includes = [
+ ".",
+ "cuda/include",
+ ],
linkstatic = 1,
visibility = ["//visibility:public"],
)
cc_library(
name = "cufft",
- srcs = ["lib/%{cufft_lib}"],
- data = ["lib/%{cufft_lib}"],
- includes = ["include"],
+ srcs = ["cuda/lib/%{cufft_lib}"],
+ data = ["cuda/lib/%{cufft_lib}"],
+ includes = [
+ ".",
+ "cuda/include",
+ ],
linkstatic = 1,
visibility = ["//visibility:public"],
)
cc_library(
name = "curand",
- srcs = ["lib/%{curand_lib}"],
- data = ["lib/%{curand_lib}"],
- includes = ["include"],
+ srcs = ["cuda/lib/%{curand_lib}"],
+ data = ["cuda/lib/%{curand_lib}"],
+ includes = [
+ ".",
+ "cuda/include",
+ ],
linkstatic = 1,
visibility = ["//visibility:public"],
)
@@ -142,19 +166,23 @@ cc_library(
cc_library(
name = "cupti_headers",
hdrs = [
- "cuda_config.h",
+ "cuda/cuda_config.h",
":cuda-extras",
],
includes = [
".",
- "extras/CUPTI/include/",
+ "cuda/extras/CUPTI/include/",
],
visibility = ["//visibility:public"],
)
cc_library(
name = "cupti_dsos",
- data = ["lib/%{cupti_lib}"],
+ data = ["cuda/lib/%{cupti_lib}"],
+ includes = [
+ ".",
+ "cuda/include",
+ ],
visibility = ["//visibility:public"],
)
diff --git a/third_party/gpus/cuda_configure.bzl b/third_party/gpus/cuda_configure.bzl
index cc445eb0ae..4dd3169d41 100644
--- a/third_party/gpus/cuda_configure.bzl
+++ b/third_party/gpus/cuda_configure.bzl
@@ -740,19 +740,19 @@ def _create_dummy_repository(repository_ctx):
# Create dummy files for the CUDA toolkit since they are still required by
# tensorflow/core/platform/default/build_config:cuda.
- repository_ctx.file("cuda/include/cuda.h", "")
- repository_ctx.file("cuda/include/cublas.h", "")
- repository_ctx.file("cuda/include/cudnn.h", "")
- repository_ctx.file("cuda/extras/CUPTI/include/cupti.h", "")
- repository_ctx.file("cuda/lib/%s" % _lib_name("cuda", cpu_value))
- repository_ctx.file("cuda/lib/%s" % _lib_name("cudart", cpu_value))
- repository_ctx.file("cuda/lib/%s" % _lib_name("cudart_static", cpu_value))
- repository_ctx.file("cuda/lib/%s" % _lib_name("cublas", cpu_value))
- repository_ctx.file("cuda/lib/%s" % _lib_name("cusolver", cpu_value))
- repository_ctx.file("cuda/lib/%s" % _lib_name("cudnn", cpu_value))
- repository_ctx.file("cuda/lib/%s" % _lib_name("curand", cpu_value))
- repository_ctx.file("cuda/lib/%s" % _lib_name("cufft", cpu_value))
- repository_ctx.file("cuda/lib/%s" % _lib_name("cupti", cpu_value))
+ repository_ctx.file("cuda/cuda/include/cuda.h", "")
+ repository_ctx.file("cuda/cuda/include/cublas.h", "")
+ repository_ctx.file("cuda/cuda/include/cudnn.h", "")
+ repository_ctx.file("cuda/cuda/extras/CUPTI/include/cupti.h", "")
+ repository_ctx.file("cuda/cuda/lib/%s" % _lib_name("cuda", cpu_value))
+ repository_ctx.file("cuda/cuda/lib/%s" % _lib_name("cudart", cpu_value))
+ repository_ctx.file("cuda/cuda/lib/%s" % _lib_name("cudart_static", cpu_value))
+ repository_ctx.file("cuda/cuda/lib/%s" % _lib_name("cublas", cpu_value))
+ repository_ctx.file("cuda/cuda/lib/%s" % _lib_name("cusolver", cpu_value))
+ repository_ctx.file("cuda/cuda/lib/%s" % _lib_name("cudnn", cpu_value))
+ repository_ctx.file("cuda/cuda/lib/%s" % _lib_name("curand", cpu_value))
+ repository_ctx.file("cuda/cuda/lib/%s" % _lib_name("cufft", cpu_value))
+ repository_ctx.file("cuda/cuda/lib/%s" % _lib_name("cupti", cpu_value))
# Set up cuda_config.h, which is used by
# tensorflow/stream_executor/dso_loader.cc.
@@ -764,7 +764,7 @@ def _create_dummy_repository(repository_ctx):
"CudaVersion(\"%s\")" % c
for c in _DEFAULT_CUDA_COMPUTE_CAPABILITIES]),
"%{cuda_toolkit_path}": _DEFAULT_CUDA_TOOLKIT_PATH,
- })
+ }, "cuda/cuda/cuda_config.h")
# If cuda_configure is not configured to build with GPU support, and the user
# attempts to build with --config=cuda, add a dummy build rule to intercept
@@ -821,6 +821,13 @@ def _symlink_genrule_for_dir(repository_ctx, src_dir, dest_dir, genrule_name,
dest_files = files.replace(src_dir, '').splitlines()
src_files = files.splitlines()
command = []
+ if not _is_windows(repository_ctx):
+ # We clear folders that might have been generated previously to avoid
+ # undesired inclusions
+ command.append('if [ -d "$(@D)/extras" ]; then rm $(@D)/extras -drf; fi')
+ command.append('if [ -d "$(@D)/include" ]; then rm $(@D)/include -drf; fi')
+ command.append('if [ -d "$(@D)/lib" ]; then rm $(@D)/lib -drf; fi')
+ command.append('if [ -d "$(@D)/nvvm" ]; then rm $(@D)/nvvm -drf; fi')
outs = []
for i in range(len(dest_files)):
if dest_files[i] != "":
@@ -906,19 +913,19 @@ def _create_local_cuda_repository(repository_ctx):
cuda_toolkit_path = cuda_config.cuda_toolkit_path
cuda_include_path = cuda_toolkit_path + "/include"
genrules = [_symlink_genrule_for_dir(repository_ctx,
- cuda_include_path, "include", "cuda-include")]
+ cuda_include_path, "cuda/include", "cuda-include")]
genrules.append(_symlink_genrule_for_dir(repository_ctx,
- cuda_toolkit_path + "/nvvm", "nvvm", "cuda-nvvm"))
+ cuda_toolkit_path + "/nvvm", "cuda/nvvm", "cuda-nvvm"))
genrules.append(_symlink_genrule_for_dir(repository_ctx,
cuda_toolkit_path + "/extras/CUPTI/include",
- "extras/CUPTI/include", "cuda-extras"))
+ "cuda/extras/CUPTI/include", "cuda-extras"))
cuda_libs = _find_libs(repository_ctx, cuda_config)
cuda_lib_src = []
cuda_lib_dest = []
for lib in cuda_libs.values():
cuda_lib_src.append(lib.path)
- cuda_lib_dest.append("lib/" + lib.file_name)
+ cuda_lib_dest.append("cuda/lib/" + lib.file_name)
genrules.append(_symlink_genrule_for_dir(repository_ctx, None, "", "cuda-lib",
cuda_lib_src, cuda_lib_dest))
@@ -927,8 +934,9 @@ def _create_local_cuda_repository(repository_ctx):
included_files = _read_dir(repository_ctx, cuda_include_path).replace(
cuda_include_path, '').splitlines()
if '/cudnn.h' not in included_files:
- genrules.append(_symlink_genrule_for_dir(repository_ctx, None, "include/",
- "cudnn-include", [cudnn_header_dir + "/cudnn.h"], ["cudnn.h"]))
+ genrules.append(_symlink_genrule_for_dir(repository_ctx, None,
+ "cuda/include/", "cudnn-include", [cudnn_header_dir + "/cudnn.h"],
+ ["cudnn.h"]))
else:
genrules.append(
'filegroup(\n' +
@@ -1000,7 +1008,7 @@ def _create_local_cuda_repository(repository_ctx):
["CudaVersion(\"%s\")" % c
for c in cuda_config.compute_capabilities]),
"%{cuda_toolkit_path}": cuda_config.cuda_toolkit_path,
- })
+ }, "cuda/cuda/cuda_config.h")
def _create_remote_cuda_repository(repository_ctx, remote_config_repo):
"""Creates pointers to a remotely configured repo set up to build with CUDA."""