mirror of
https://github.com/zebrajr/tensorflow.git
synced 2025-12-06 00:19:58 +01:00
Enable CUDA forward-compatibility mode in all RBE jobs by default. Forward compatibility mode in hermetic CUDA allows the linker to use the user-mode driver from Bazel cache, so there is no need to install UMD in the RBE Docker image. UMD on RBE machines is rarely updated, thus RBE jobs need forward compatibility mode to enable the most recent CUDA features usage in the tests. The non-RBE job runners are updated more often, hence we can update the drivers on those machines and not rely on forward compatibility mode. PiperOrigin-RevId: 810595379
159 lines
6.0 KiB
Python
159 lines
6.0 KiB
Python
"""TensorFlow workspace initialization. Consult the WORKSPACE on how to use it."""
|
|
|
|
load("@bazel_toolchains//repositories:repositories.bzl", bazel_toolchains_repositories = "repositories")
|
|
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
|
load("@build_bazel_apple_support//lib:repositories.bzl", "apple_support_dependencies")
|
|
load("@build_bazel_rules_apple//apple:repositories.bzl", "apple_rules_dependencies")
|
|
load("@build_bazel_rules_swift//swift:repositories.bzl", "swift_rules_dependencies")
|
|
load("@com_github_grpc_grpc//bazel:grpc_extra_deps.bzl", "grpc_extra_deps")
|
|
load("@com_google_benchmark//:bazel/benchmark_deps.bzl", "benchmark_deps")
|
|
|
|
def _tf_bind():
|
|
"""Bind targets for some external repositories"""
|
|
##############################################################################
|
|
# BIND DEFINITIONS
|
|
#
|
|
# Please do not add bind() definitions unless we have no other choice.
|
|
# If that ends up being the case, please leave a comment explaining
|
|
# why we can't depend on the canonical build target.
|
|
|
|
# Needed by Protobuf
|
|
native.bind(
|
|
name = "grpc_cpp_plugin",
|
|
actual = "@com_github_grpc_grpc//src/compiler:grpc_cpp_plugin",
|
|
)
|
|
native.bind(
|
|
name = "grpc_python_plugin",
|
|
actual = "@com_github_grpc_grpc//src/compiler:grpc_python_plugin",
|
|
)
|
|
|
|
native.bind(
|
|
name = "grpc_lib",
|
|
actual = "@com_github_grpc_grpc//:grpc++",
|
|
)
|
|
|
|
native.bind(
|
|
name = "grpc_lib_unsecure",
|
|
actual = "@com_github_grpc_grpc//:grpc++_unsecure",
|
|
)
|
|
|
|
# Needed by Protobuf
|
|
native.bind(
|
|
name = "python_headers",
|
|
actual = str(Label("//third_party/python_runtime:headers")),
|
|
)
|
|
|
|
# Needed by Protobuf
|
|
native.bind(
|
|
name = "six",
|
|
actual = "@six_archive//:six",
|
|
)
|
|
|
|
def workspace():
|
|
http_archive(
|
|
name = "inception_v1",
|
|
build_file = "//:models.BUILD",
|
|
sha256 = "7efe12a8363f09bc24d7b7a450304a15655a57a7751929b2c1593a71183bb105",
|
|
urls = [
|
|
"https://storage.googleapis.com/download.tensorflow.org/models/inception_v1.zip",
|
|
],
|
|
)
|
|
|
|
http_archive(
|
|
name = "mobile_ssd",
|
|
build_file = "//:models.BUILD",
|
|
sha256 = "bddd81ea5c80a97adfac1c9f770e6f55cbafd7cce4d3bbe15fbeb041e6b8f3e8",
|
|
urls = [
|
|
"https://storage.googleapis.com/download.tensorflow.org/models/object_detection/ssd_mobilenet_v1_android_export.zip",
|
|
],
|
|
)
|
|
|
|
http_archive(
|
|
name = "mobile_multibox",
|
|
build_file = "//:models.BUILD",
|
|
sha256 = "859edcddf84dddb974c36c36cfc1f74555148e9c9213dedacf1d6b613ad52b96",
|
|
urls = [
|
|
"https://storage.googleapis.com/download.tensorflow.org/models/mobile_multibox_v1a.zip",
|
|
],
|
|
)
|
|
|
|
http_archive(
|
|
name = "stylize",
|
|
build_file = "//:models.BUILD",
|
|
sha256 = "3d374a730aef330424a356a8d4f04d8a54277c425e274ecb7d9c83aa912c6bfa",
|
|
urls = [
|
|
"https://storage.googleapis.com/download.tensorflow.org/models/stylize_v1.zip",
|
|
],
|
|
)
|
|
|
|
http_archive(
|
|
name = "speech_commands",
|
|
build_file = "//:models.BUILD",
|
|
sha256 = "c3ec4fea3158eb111f1d932336351edfe8bd515bb6e87aad4f25dbad0a600d0c",
|
|
urls = [
|
|
"https://storage.googleapis.com/download.tensorflow.org/models/speech_commands_v0.01.zip",
|
|
],
|
|
)
|
|
|
|
http_archive(
|
|
name = "person_detect_data",
|
|
sha256 = "170542270da256994ce24d1e357f6e84a54fdaf7d28ff2b74725a40b70b082cf",
|
|
urls = [
|
|
"https://storage.googleapis.com/download.tensorflow.org/data/tf_lite_micro_person_data_grayscale_2020_05_24.zip",
|
|
],
|
|
)
|
|
|
|
bazel_toolchains_repositories()
|
|
|
|
# Apple rules for Bazel. https://github.com/bazelbuild/rules_apple.
|
|
# Note: We add this to fix Kokoro builds.
|
|
# The rules below call into `rules_proto` but the hash has changed and
|
|
# Bazel refuses to continue. So, we add our own mirror.
|
|
http_archive(
|
|
name = "rules_proto",
|
|
sha256 = "20b240eba17a36be4b0b22635aca63053913d5c1ee36e16be36499d167a2f533",
|
|
strip_prefix = "rules_proto-11bf7c25e666dd7ddacbcd4d4c4a9de7a25175f8",
|
|
urls = [
|
|
"https://storage.googleapis.com/mirror.tensorflow.org/github.com/bazelbuild/rules_proto/archive/11bf7c25e666dd7ddacbcd4d4c4a9de7a25175f8.tar.gz",
|
|
"https://github.com/bazelbuild/rules_proto/archive/11bf7c25e666dd7ddacbcd4d4c4a9de7a25175f8.tar.gz",
|
|
],
|
|
)
|
|
|
|
http_archive(
|
|
name = "rules_shell",
|
|
sha256 = "bc61ef94facc78e20a645726f64756e5e285a045037c7a61f65af2941f4c25e1",
|
|
strip_prefix = "rules_shell-0.4.1",
|
|
url = "https://github.com/bazelbuild/rules_shell/releases/download/v0.4.1/rules_shell-v0.4.1.tar.gz",
|
|
)
|
|
|
|
# Now, finally use the rules
|
|
apple_rules_dependencies()
|
|
swift_rules_dependencies()
|
|
apple_support_dependencies()
|
|
|
|
# We only need `benchmark_deps` to be able to have bazel query to work and not complain about missing `@libpfm`.
|
|
benchmark_deps()
|
|
|
|
# TODO(yuriit): Remove this once the rules_ml_toolchain is added to WORKSPACE files of all ML projects.
|
|
# Toolchains for ML projects hermetic builds.
|
|
# Details: https://github.com/google-ml-infra/rules_ml_toolchain
|
|
if "rules_ml_toolchain" not in native.existing_rules():
|
|
http_archive(
|
|
name = "rules_ml_toolchain",
|
|
sha256 = "77ad040f826af31ce3142e3b8bcf6c61972b4f95c84185676fa1af325fbf52c6",
|
|
strip_prefix = "rules_ml_toolchain-a912c87727405e2145b168e5b62a5d5ae7232cb2",
|
|
urls = [
|
|
"https://github.com/google-ml-infra/rules_ml_toolchain/archive/a912c87727405e2145b168e5b62a5d5ae7232cb2.tar.gz",
|
|
],
|
|
)
|
|
|
|
# If a target is bound twice, the later one wins, so we have to do tf bindings
|
|
# at the end of the WORKSPACE file.
|
|
_tf_bind()
|
|
|
|
grpc_extra_deps()
|
|
|
|
# Alias so it can be loaded without assigning to a different symbol to prevent
|
|
# shadowing previous loads and trigger a buildifier warning.
|
|
xla_workspace0 = workspace
|