# 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", ], 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_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", ], ) tf_proto_library( name = "tensor_tracer_proto", srcs = ["tensor_tracer.proto"], cc_api_version = 2, protodeps = [ "//tensorflow/core:protos_all", ], visibility = ["//visibility:public"], )