blob: 9cd75d1bed7fa25aa3e51b40b4df134dc572e95c [file] [log] [blame]
# Description: Operations defined for Cloud TPUs
load("//tensorflow:tensorflow.bzl", "tf_py_test")
load("//tensorflow/core/platform:build_config.bzl", "tf_proto_library")
load("//tensorflow/python/tpu:tpu.bzl", "tpu_py_test")
# Do not add anymore paths here. You do not need to be in the visibility list
# to use TPU symbols. They are accessible from tf.contrib.tpu in TF 1.x and
# tf.tpu and tf.compat.v1.tpu in TF 2.x.
package(
default_visibility = [
"//learning/brain:__subpackages__",
"//learning/deepmind:__subpackages__",
"//research/graph:__subpackages__",
"//tensorflow:__subpackages__",
],
licenses = ["notice"], # Apache 2.0
)
exports_files(["tpu_test_wrapper.py"])
py_test(
name = "tpu_test_wrapper_test",
srcs = [
"tpu_test_wrapper.py",
"tpu_test_wrapper_test.py",
],
main = "tpu_test_wrapper_test.py",
python_version = "PY3",
srcs_version = "PY3",
tags = [
"no_oss_py2",
"no_oss_py35",
"no_pip",
"no_rocm",
],
deps = [
"//tensorflow/python:client_testlib",
"//tensorflow/python:platform",
"@absl_py//absl/testing:flagsaver",
],
)
py_library(
name = "tpu_py",
srcs = ["ops/tpu_ops.py"],
srcs_version = "PY2AND3",
deps = [
"//tensorflow/python:framework_for_generated_wrappers",
"//tensorflow/python:tpu_ops_gen",
],
)
py_library(
name = "async_checkpoint",
srcs = ["async_checkpoint.py"],
srcs_version = "PY2AND3",
deps = [
"//tensorflow/python:array_ops",
"//tensorflow/python:control_flow_ops",
"//tensorflow/python:framework_for_generated_wrappers",
"//tensorflow/python:init_ops",
"//tensorflow/python:math_ops",
"//tensorflow/python:platform",
"//tensorflow/python:state_ops",
"//tensorflow/python:summary",
"//tensorflow/python:summary_ops_v2",
"//tensorflow/python:training",
"//tensorflow/python:variable_scope",
"//tensorflow/python:variables",
"//tensorflow/python/estimator:estimator_py",
],
)
tpu_py_test(
name = "async_checkpoint_test",
size = "medium",
srcs = ["async_checkpoint_test.py"],
disable_experimental = True,
deps = [
":async_checkpoint",
":tpu_estimator",
":tpu_lib",
"//tensorflow/python:lib",
"//tensorflow/python:platform",
"//tensorflow/python/distribute/cluster_resolver:cluster_resolver_lib",
"//third_party/py/numpy",
],
)
py_library(
name = "preempted_hook_py",
srcs = ["preempted_hook.py"],
srcs_version = "PY2AND3",
deps = [
"//tensorflow/python:errors",
"//tensorflow/python:platform",
"//tensorflow/python:session_run_hook",
"//tensorflow/python/distribute/cluster_resolver:tpu_cluster_resolver_py",
],
)
py_library(
name = "tpu_estimator",
srcs = [
"_tpu_estimator_embedding.py",
"error_handling.py",
"tpu_config.py",
"tpu_context.py",
"tpu_estimator.py",
"util.py",
],
srcs_version = "PY2AND3",
deps = [
":async_checkpoint",
":feature_column",
":feature_column_v2",
":functional",
":preempted_hook_py",
":tpu_embedding",
":tpu_lib",
"//tensorflow/core:protos_all_py",
"//tensorflow/python:array_ops",
"//tensorflow/python:control_flow_ops",
"//tensorflow/python:framework_for_generated_wrappers",
"//tensorflow/python:function",
"//tensorflow/python:init_ops",
"//tensorflow/python:math_ops",
"//tensorflow/python:platform",
"//tensorflow/python:session",
"//tensorflow/python:state_ops",
"//tensorflow/python:summary",
"//tensorflow/python:summary_ops_v2",
"//tensorflow/python:training",
"//tensorflow/python:variable_scope",
"//tensorflow/python:variables",
"//tensorflow/python/estimator:estimator_py",
"//tensorflow/python/estimator:util",
"@six_archive//:six",
],
)
py_library(
name = "functional",
srcs = ["functional.py"],
srcs_version = "PY2AND3",
visibility = [
"//visibility:public",
],
deps = [
"//tensorflow/python:tpu_ops_gen",
],
)
py_library(
name = "tpu",
srcs = [
"__init__.py",
],
srcs_version = "PY2AND3",
deps = [
":feature_column",
":feature_column_v2",
":tpu_embedding",
":tpu_estimator",
":tpu_lib",
],
)
py_library(
name = "tpu_noestimator",
srcs = [
"__init__.py",
"api.py",
],
srcs_version = "PY2AND3",
deps = [
":feature_column",
":feature_column_v2",
":preempted_hook_py",
":tpu_embedding",
":tpu_embedding_v2",
":tpu_embedding_v2_utils",
":tpu_lib",
],
)
py_library(
name = "tpu_lib",
srcs = [
"__init__.py",
"bfloat16.py",
"device_assignment.py",
"session_support.py",
"tensor_tracer.py",
"tensor_tracer_flags.py",
"tensor_tracer_report.py",
"topology.py",
"tpu.py",
"tpu_feed.py",
"tpu_function.py",
"tpu_optimizer.py",
"tpu_sharding.py",
"tpu_strategy_util.py",
"tpu_system_metadata.py",
"training_loop.py",
],
srcs_version = "PY2AND3",
deps = [
":datasets",
":functional",
":tpu_py",
"//tensorflow/compiler/xla/experimental/xla_sharding",
"//tensorflow/compiler/xla/python_api:xla_shape",
"//tensorflow/core:protos_all_py",
"//tensorflow/core/protobuf/tpu:compilation_result_proto_py",
"//tensorflow/core/protobuf/tpu:dynamic_padding_proto_py",
"//tensorflow/core/protobuf/tpu:optimization_parameters_proto_py",
"//tensorflow/core/protobuf/tpu:topology_proto_py",
"//tensorflow/core/protobuf/tpu:tpu_embedding_configuration_proto_py",
"//tensorflow/core/protobuf/tpu:tpu_embedding_output_layout_proto_py",
"//tensorflow/python:array_ops",
"//tensorflow/python:batch_ops",
"//tensorflow/python:control_flow_ops",
"//tensorflow/python:control_flow_util",
"//tensorflow/python:dtypes",
"//tensorflow/python:framework",
"//tensorflow/python:framework_ops",
"//tensorflow/python:platform_analytics",
"//tensorflow/python:tensor_shape",
"//tensorflow/python:tpu_ops_gen",
"//tensorflow/python:training",
"//tensorflow/python:util",
"//tensorflow/python:variable_scope",
"//tensorflow/python/compiler/xla",
"//tensorflow/python/ops/losses",
"//tensorflow/python/tpu:tensor_tracer_proto_py",
"//tensorflow/python/tpu/profiler",
"@six_archive//:six",
],
)
py_library(
name = "datasets",
srcs = [
"datasets.py",
],
srcs_version = "PY2AND3",
deps = [
"//tensorflow/python:dtypes",
"//tensorflow/python:function",
"//tensorflow/python:functional_ops",
"//tensorflow/python/data/ops:dataset_ops",
"//tensorflow/python/data/ops:iterator_ops",
"//tensorflow/python/data/ops:readers",
],
)
tf_py_test(
name = "datasets_test",
size = "medium",
srcs = ["datasets_test.py"],
grpc_enabled = True,
shard_count = 4,
tags = ["no_oss"],
deps = [
":datasets",
"//tensorflow/python:client_testlib",
],
)
tf_py_test(
name = "tpu_test",
size = "small",
srcs = ["tpu_test.py"],
tags = [
"no_oss", # TODO(b/131157871): Reenable in OSS when fixed
"no_windows", # TODO: needs investigation on Windows
],
deps = [
":tpu",
"//tensorflow/python:client_testlib",
"//tensorflow/python:dtypes",
"//tensorflow/python:framework",
"//tensorflow/python:layers",
],
)
tf_py_test(
name = "tpu_sharding_test",
size = "small",
srcs = ["tpu_sharding_test.py"],
deps = [
":tpu",
"//tensorflow/python:client_testlib",
"//tensorflow/python:framework",
],
)
tf_py_test(
name = "bfloat16_test",
size = "small",
srcs = ["bfloat16_test.py"],
deps = [
":tpu",
"//tensorflow/python:client_testlib",
"//tensorflow/python:framework",
],
)
tf_py_test(
name = "tpu_infeed_test",
size = "small",
srcs = ["tpu_infeed_test.py"],
deps = [
":tpu",
"//tensorflow/python:framework",
"//tensorflow/python:framework_test_lib",
],
)
tf_py_test(
name = "topology_test",
size = "medium",
srcs = ["topology_test.py"],
deps = [
":tpu",
"//tensorflow/python:framework_test_lib",
],
)
py_library(
name = "tpu_embedding",
srcs = [
"tpu_embedding.py",
"tpu_embedding_gradient.py",
],
srcs_version = "PY2AND3",
deps = [
":tpu_lib",
"//tensorflow/core/protobuf/tpu:tpu_embedding_configuration_proto_py",
"//tensorflow/python:array_ops",
"//tensorflow/python:framework_for_generated_wrappers",
"//tensorflow/python:init_ops",
"//tensorflow/python:math_ops",
"//tensorflow/python:partitioned_variables",
"//tensorflow/python:tpu_ops_gen",
"//tensorflow/python:variable_scope",
"//tensorflow/python:variables",
"@six_archive//:six",
],
)
py_library(
name = "tpu_strategy_util",
srcs = ["tpu_strategy_util.py"],
deps = [
":tpu_lib",
"//tensorflow/python:dtypes",
"//tensorflow/python:framework_ops",
"//tensorflow/python:util",
"//tensorflow/python/distribute:device_util",
"//tensorflow/python/distribute/cluster_resolver:tpu_cluster_resolver_py",
"//tensorflow/python/eager:context",
"//tensorflow/python/eager:tape",
],
)
py_library(
name = "feature_column",
srcs = ["feature_column.py"],
deps = [
":tpu_lib",
"//tensorflow/python:framework_ops",
"//tensorflow/python:init_ops",
"//tensorflow/python:variable_scope",
"//tensorflow/python/feature_column",
"//tensorflow/python/feature_column:feature_column_py",
],
)
py_library(
name = "feature_column_v2",
srcs = ["feature_column_v2.py"],
deps = [
":feature_column",
":tpu_lib",
"//tensorflow/python:framework_ops",
"//tensorflow/python:init_ops",
"//tensorflow/python:variable_scope",
"//tensorflow/python/feature_column",
"//tensorflow/python/feature_column:feature_column_py",
],
)
tf_py_test(
name = "feature_column_test",
srcs = [
"feature_column_test.py",
],
main = "feature_column_test.py",
deps = [
":feature_column",
"//tensorflow/python:client_testlib",
"//tensorflow/python:dtypes",
"//tensorflow/python:framework_ops",
"//tensorflow/python:lookup_ops",
"//tensorflow/python:parsing_ops",
"//tensorflow/python:session",
"//tensorflow/python:sparse_tensor",
"//tensorflow/python:variables",
"//tensorflow/python/feature_column",
"//tensorflow/python/feature_column:feature_column_py",
"//third_party/py/numpy",
],
)
tf_py_test(
name = "feature_column_v2_test",
srcs = [
"feature_column_v2_test.py",
],
main = "feature_column_v2_test.py",
deps = [
":feature_column_v2",
"//tensorflow/python:client_testlib",
"//tensorflow/python:dtypes",
"//tensorflow/python:framework_ops",
"//tensorflow/python:lookup_ops",
"//tensorflow/python:parsing_ops",
"//tensorflow/python:session",
"//tensorflow/python:sparse_tensor",
"//tensorflow/python:variables",
"//tensorflow/python/feature_column",
"//tensorflow/python/feature_column:feature_column_py",
"//third_party/py/numpy",
],
)
py_library(
name = "tpu_embedding_v2_utils",
srcs = ["tpu_embedding_v2_utils.py"],
srcs_version = "PY2AND3",
deps = [
"//tensorflow/python:variable_scope",
"//tensorflow/python/distribute:device_util",
"//tensorflow/python/distribute:sharded_variable",
"//tensorflow/python/tpu:tpu_lib",
"//tensorflow/python/tpu:tpu_py",
"//tensorflow/python/training/saving:saveable_hook",
"@six_archive//:six",
],
)
py_library(
name = "tpu_embedding_v2",
srcs = ["tpu_embedding_v2.py"],
srcs_version = "PY2AND3",
deps = [
":tpu_embedding_v2_utils",
"//tensorflow/python:variable_scope",
"//tensorflow/python/distribute:device_util",
"//tensorflow/python/distribute:sharded_variable",
"//tensorflow/python/tpu:tpu_lib",
"//tensorflow/python/tpu:tpu_py",
"//tensorflow/python/training/saving:saveable_hook",
"@six_archive//:six",
],
)
tpu_py_test(
name = "tpu_embedding_v2_test",
srcs = [
"tpu_embedding_v2_test.py",
],
disable_experimental = True,
disable_mlir_bridge = False,
python_version = "PY3",
shard_count = 4,
srcs_version = "PY2AND3",
deps = [
":tpu_embedding",
":tpu_embedding_v2",
":tpu_strategy_util",
"//tensorflow/python:init_ops_v2",
"//tensorflow/python:tensor_spec",
"//tensorflow/python:variables",
"//tensorflow/python/compat:v2_compat",
"//tensorflow/python/data/ops:dataset_ops",
"//tensorflow/python/distribute:distribute_lib",
"//tensorflow/python/distribute:tpu_strategy",
"//tensorflow/python/distribute/cluster_resolver:tpu_cluster_resolver_py",
"//tensorflow/python/eager:backprop",
"//tensorflow/python/eager:def_function",
"//tensorflow/python/eager:remote",
"//tensorflow/python/ops/ragged:ragged_tensor",
"//tensorflow/python/saved_model",
"//tensorflow/python/training/tracking:util",
"//third_party/py/numpy",
],
)
tpu_py_test(
name = "tpu_embedding_v2_correctness_test",
srcs = [
"tpu_embedding_v2_correctness_test.py",
],
disable_experimental = True,
disable_mlir_bridge = False,
python_version = "PY3",
shard_count = 4,
srcs_version = "PY2AND3",
deps = [
":tpu_embedding",
":tpu_embedding_v2",
":tpu_strategy_util",
"//tensorflow/python:init_ops_v2",
"//tensorflow/python:variables",
"//tensorflow/python/compat:v2_compat",
"//tensorflow/python/data/ops:dataset_ops",
"//tensorflow/python/distribute:distribute_lib",
"//tensorflow/python/distribute:tpu_strategy",
"//tensorflow/python/distribute/cluster_resolver:tpu_cluster_resolver_py",
"//tensorflow/python/eager:backprop",
"//tensorflow/python/eager:def_function",
"//tensorflow/python/eager:remote",
"//tensorflow/python/training/tracking:util",
"//third_party/py/numpy",
],
)
tf_py_test(
name = "tpu_embedding_v2_cpu_test",
srcs = [
"tpu_embedding_v2_cpu_test.py",
],
python_version = "PY3",
srcs_version = "PY2AND3",
deps = [
":tpu_embedding_v2",
"//tensorflow/python:init_ops_v2",
"//tensorflow/python/compat:v2_compat",
"//tensorflow/python/ops/ragged:ragged_tensor",
"//third_party/py/numpy",
],
)
tpu_py_test(
name = "tpu_outside_compilation_test",
srcs = [
"tpu_outside_compilation_test.py",
],
disable_experimental = True,
python_version = "PY3",
tags = ["no_oss"],
deps = [
":tpu_lib",
"//tensorflow/python:variables",
"//tensorflow/python/distribute/cluster_resolver:cluster_resolver_lib",
"//tensorflow/python/eager:remote",
"//tensorflow/python/eager:test",
],
)
# NOTE this target should only be depended on by the tpu_test_wrapper macro.
py_library(
name = "tpu_test_deps",
visibility = ["//visibility:public"],
deps = ["//tensorflow/python:client_testlib"],
)
tf_proto_library(
name = "tensor_tracer_proto",
srcs = ["tensor_tracer.proto"],
cc_api_version = 2,
protodeps = [
"//tensorflow/core:protos_all",
],
visibility = ["//visibility:public"],
)