# Description: Operations defined for Cloud TPUs load("//tensorflow:tensorflow.bzl", "pytype_library") # buildifier: disable=same-origin-load load("//tensorflow:tensorflow.bzl", "tf_py_test") # buildifier: disable=same-origin-load 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__", "//learning/serving:__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", ], deps = [ "//tensorflow/python:client_testlib", "//tensorflow/python:platform", "@absl_py//absl/testing:flagsaver", ], ) pytype_library( name = "tpu_ops", srcs = ["ops/tpu_ops.py"], srcs_version = "PY3", deps = [ ":tpu_function", "//tensorflow/python:framework_for_generated_wrappers", "//tensorflow/python:tpu_ops_gen", ], ) pytype_library( name = "async_checkpoint", srcs = ["async_checkpoint.py"], srcs_version = "PY3", 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, disable_mlir_bridge = False, 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", ], ) pytype_library( name = "device_assignment", srcs = ["device_assignment.py"], deps = [ ":topology", "//tensorflow/python:platform", "//tensorflow/python/util:tf_export", ], ) pytype_library( name = "preempted_hook_py", srcs = ["preempted_hook.py"], srcs_version = "PY3", 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 = "PY3", 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 = "PY3", visibility = [ "//visibility:public", ], deps = [ "//tensorflow/python:tpu_ops_gen", ], ) pytype_library( name = "topology", srcs = ["topology.py"], srcs_version = "PY3", deps = [ "//tensorflow/core/protobuf/tpu:topology_proto_py", "//tensorflow/python/util:tf_export", "//third_party/py/numpy", ], ) py_library( name = "tpu", srcs = [ "__init__.py", ], srcs_version = "PY3", deps = [ ":feature_column", ":feature_column_v2", ":tpu_embedding", ":tpu_estimator", ":tpu_lib", ], ) py_library( name = "tpu_noestimator", srcs = [ "__init__.py", "api.py", ], srcs_version = "PY3", deps = [ ":feature_column", ":feature_column_v2", ":preempted_hook_py", ":tpu_embedding", ":tpu_embedding_v2", ":tpu_embedding_v2_utils", ":tpu_lib", ], ) pytype_library( name = "tpu_lib", srcs = [ "__init__.py", "bfloat16.py", "session_support.py", "tensor_tracer.py", "tensor_tracer_flags.py", "tensor_tracer_report.py", "tpu_optimizer.py", "tpu_strategy_util.py", "training_loop.py", ], srcs_version = "PY3", deps = [ ":datasets", ":device_assignment", ":functional", ":topology", ":tpu_feed", ":tpu_function", ":tpu_ops", ":tpu_sharding", "//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: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", "//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/distribute/cluster_resolver:tpu_cluster_resolver_py", "//tensorflow/python/ops/losses", "//tensorflow/python/tpu:tensor_tracer_proto_py", "//tensorflow/python/tpu/profiler", "@six_archive//:six", ], ) pytype_library( name = "tpu_py", srcs = ["tpu.py"], deps = [ ":device_assignment", ":tpu_feed", ":tpu_function", ":tpu_name_util", ":tpu_ops", "//tensorflow/core/protobuf/tpu:dynamic_padding_proto_py", "//tensorflow/core/protobuf/tpu:tpu_embedding_configuration_proto_py", "//tensorflow/python:array_ops", "//tensorflow/python:auto_control_deps", "//tensorflow/python:c_api_util", "//tensorflow/python:composite_tensor", "//tensorflow/python:config", "//tensorflow/python:control_flow_ops", "//tensorflow/python:device", "//tensorflow/python:dtypes", "//tensorflow/python:errors", "//tensorflow/python:framework_ops", "//tensorflow/python:func_graph", "//tensorflow/python:function", "//tensorflow/python:math_ops", "//tensorflow/python:tensor_shape", "//tensorflow/python:util", "//tensorflow/python:variable_scope", "//tensorflow/python/compiler/xla", "//tensorflow/python/distribute:device_util", "//tensorflow/python/distribute:distribute_lib", "//tensorflow/python/util:tf_export", "//third_party/py/numpy", "@absl_py//absl/logging", "@enum34_archive//:enum", "@six_archive//:six", ], ) pytype_library( name = "tpu_feed", srcs = ["tpu_feed.py"], deps = [ ":tpu_name_util", ":tpu_ops", ":tpu_sharding", "//tensorflow/compiler/xla/experimental/xla_sharding", "//tensorflow/python:array_ops", "//tensorflow/python:dtypes", "//tensorflow/python:ops", "//tensorflow/python:tensor_shape", ], ) pytype_library( name = "tpu_function", srcs = ["tpu_function.py"], deps = [ ], ) pytype_library( name = "tpu_sharding", srcs = ["tpu_sharding.py"], deps = [ "//tensorflow/python:tensor_shape", ], ) pytype_library( name = "tpu_system_metadata", srcs = ["tpu_system_metadata.py"], deps = [ ":tpu_py", "//tensorflow/core/protobuf/tpu:tpu_embedding_configuration_proto_py", "//tensorflow/python:config", "//tensorflow/python:framework", "//tensorflow/python:framework_ops", "//tensorflow/python:platform", "//tensorflow/python:session", "//tensorflow/python:util", "//tensorflow/python/distribute:device_util", ], ) pytype_library( name = "datasets", srcs = [ "datasets.py", ], srcs_version = "PY3", deps = [ "//tensorflow/python:dtypes", "//tensorflow/python:function", "//tensorflow/python:functional_ops", "//tensorflow/python/data/experimental/ops:interleave_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_sharding", "//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 = [ ":topology", "//tensorflow/python:framework_test_lib", ], ) pytype_library( name = "tpu_embedding", srcs = [ "tpu_embedding.py", "tpu_embedding_gradient.py", ], srcs_version = "PY3", 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", ], ) pytype_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 = "tpu_name_util", srcs = ["tpu_name_util.py"], srcs_version = "PY3", deps = [ "//tensorflow/python/util:tf_export", ], ) pytype_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", ], ) pytype_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", ], ) pytype_library( name = "tpu_embedding_v2_utils", srcs = ["tpu_embedding_v2_utils.py"], srcs_version = "PY3", deps = [ "//tensorflow/python:init_ops_v2", "//tensorflow/python:variable_scope", "//tensorflow/python/distribute:device_util", "//tensorflow/python/distribute:sharded_variable", "//tensorflow/python/tpu:tpu_lib", "//tensorflow/python/tpu:tpu_ops", "//tensorflow/python/training/saving:saveable_hook", "@six_archive//:six", ], ) pytype_library( name = "tpu_embedding_v2", srcs = ["tpu_embedding_v2.py"], srcs_version = "PY3", deps = [ ":tpu_embedding_v2_utils", "//tensorflow/python:variable_scope", "//tensorflow/python/distribute:device_util", "//tensorflow/python/distribute:distribute_utils", "//tensorflow/python/distribute:sharded_variable", "//tensorflow/python/distribute:tpu_strategy", "//tensorflow/python/tpu:tpu_lib", "//tensorflow/python/tpu:tpu_ops", "//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 = "PY3", 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 = "PY3", 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 = "PY3", deps = [ ":tpu_embedding_v2", "//tensorflow/python:init_ops_v2", "//tensorflow/python/compat:v2_compat", "//tensorflow/python/ops/ragged:ragged_tensor", "//third_party/py/numpy", ], ) tf_py_test( name = "tpu_embedding_v2_utils_test", srcs = [ "tpu_embedding_v2_utils_test.py", ], python_version = "PY3", srcs_version = "PY3", deps = [ ":tpu_embedding_v2", "//tensorflow/python/compat:v2_compat", ], ) tpu_py_test( name = "tpu_outside_compilation_test", srcs = [ "tpu_outside_compilation_test.py", ], disable_experimental = True, disable_mlir_bridge = False, 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", srcs_version = "PY3", 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"], ) # copybara:uncomment_begin(google-only) # py_proto_library( # name = "tensor_tracer_py_pb2", # api_version = 2, # visibility = ["//visibility:public"], # deps = [":tensor_tracer_proto"], # ) # copybara:uncomment_end