blob: f5d621730a654eb39b8c625dac82ea7a63e1bfb0 [file] [log] [blame]
load("//tensorflow/core/platform:rules_cc.bzl", "cc_library")
load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
load(
"//tensorflow/core/platform:build_config.bzl",
"tf_additional_all_protos",
"tf_proto_library",
"tf_protos_profiler_service",
)
# buildifier: disable=same-origin-load
load("//tensorflow:tensorflow.bzl", "cc_header_only_library")
# buildifier: disable=same-origin-load
load("//tensorflow:tensorflow.bzl", "get_compatible_with_cloud")
# buildifier: disable=same-origin-load
load("//tensorflow:tensorflow.bzl", "tf_grpc_cc_dependency")
load(
"//tensorflow:tensorflow.bzl",
"tf_cc_test",
)
package_group(name = "data_transfer_visibility")
package(
default_visibility = [
"//tensorflow:internal",
],
licenses = ["notice"],
)
tf_proto_library(
name = "common_proto",
srcs = ["common.proto"],
cc_api_version = 2,
protodeps = tf_additional_all_protos(),
)
tf_proto_library(
name = "dispatcher_proto",
srcs = ["dispatcher.proto"],
has_services = 1,
cc_api_version = 2,
protodeps = tf_additional_all_protos() + [
":common_proto",
],
)
tf_proto_library(
name = "worker_proto",
srcs = ["worker.proto"],
has_services = 1,
cc_api_version = 2,
protodeps = tf_additional_all_protos() + [
":common_proto",
"//tensorflow/core/data:dataset_proto",
],
visibility = [
":data_transfer_visibility",
"//tensorflow:internal",
],
)
cc_library(
name = "credentials_factory",
srcs = ["credentials_factory.cc"],
hdrs = ["credentials_factory.h"],
deps = [
"//tensorflow/core:lib",
"@com_google_absl//absl/strings",
tf_grpc_cc_dependency(),
],
)
tf_cc_test(
name = "credentials_factory_test",
srcs = ["credentials_factory_test.cc"],
deps = [
":credentials_factory",
"//tensorflow/core:lib",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
cc_library(
name = "data_service",
srcs = ["data_service.cc"],
hdrs = [
"data_service.h",
],
deps = [
":credentials_factory",
":data_transfer",
":dispatcher_cc_grpc_proto",
":grpc_util",
":worker_cc_grpc_proto",
":worker_proto_cc",
"//tensorflow/core:framework",
"//tensorflow/core/platform:errors",
"@com_google_absl//absl/container:flat_hash_set",
"@com_google_absl//absl/types:optional",
tf_grpc_cc_dependency(),
],
)
tf_cc_test(
name = "data_service_test",
srcs = ["data_service_test.cc"],
tags = ["no_windows"],
deps = [
":data_service",
":dispatcher_cc_grpc_proto",
":dispatcher_proto_cc",
":grpc_dispatcher_impl",
":grpc_util",
":grpc_worker_impl",
":local_credentials_factory",
":server_lib",
":test_cluster",
":test_util",
":worker_cc_grpc_proto",
":worker_proto_cc",
"@com_google_absl//absl/strings",
"//tensorflow/core:lib",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core/data:compression_utils",
"//tensorflow/core/data:dataset_test_base",
tf_grpc_cc_dependency(),
] + tf_protos_profiler_service(),
)
cc_library(
name = "data_transfer",
srcs = ["data_transfer.cc"],
hdrs = ["data_transfer.h"],
visibility = [
":data_transfer_visibility",
],
deps = [
":worker_proto_cc",
"//tensorflow/core:framework",
"//tensorflow/core/data:dataset_proto_cc",
"//tensorflow/core/platform:errors",
"//tensorflow/core/platform:macros",
"//tensorflow/core/platform:mutex",
"//tensorflow/core/platform:status",
"@com_google_absl//absl/strings",
"@com_google_absl//absl/types:optional",
],
)
tf_cc_test(
name = "data_transfer_test",
srcs = ["data_transfer_test.cc"],
deps = [
":data_transfer",
"//tensorflow/core:lib",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
cc_library(
name = "dataset_store",
srcs = ["dataset_store.cc"],
hdrs = ["dataset_store.h"],
deps = [
":common_proto_cc",
":dispatcher_state",
":utils",
"//tensorflow/core:lib",
"@com_google_absl//absl/container:flat_hash_map",
"@com_google_absl//absl/memory",
"@com_google_absl//absl/strings",
],
)
tf_cc_test(
name = "dataset_store_test",
srcs = ["dataset_store_test.cc"],
deps = [
":common_proto_cc",
":dataset_store",
"//tensorflow/core:lib",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
"@com_google_absl//absl/memory",
],
)
cc_grpc_library(
name = "dispatcher_cc_grpc_proto",
srcs = [":dispatcher_proto"],
compatible_with = get_compatible_with_cloud(),
generate_mocks = True,
grpc_only = True,
deps = [":dispatcher_proto_cc"],
)
cc_library(
name = "dispatcher_impl",
srcs = ["dispatcher_impl.cc"],
hdrs = [
"dispatcher_impl.h",
],
deps = [
":common_proto_cc",
":credentials_factory",
":data_service",
":dataset_store",
":dispatcher_proto_cc",
":dispatcher_state",
":grpc_util",
":journal",
":task_remover",
":worker_cc_grpc_proto",
"//tensorflow/core:core_cpu",
"//tensorflow/core:core_cpu_internal",
"//tensorflow/core:framework_internal",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core/data:dataset_utils",
"//tensorflow/core/data:hash_utils",
"//tensorflow/core/data:standalone",
"@com_google_absl//absl/container:flat_hash_map",
"@com_google_absl//absl/memory",
tf_grpc_cc_dependency(),
],
)
cc_library(
name = "dispatcher_state",
srcs = ["dispatcher_state.cc"],
hdrs = [
"dispatcher_state.h",
],
deps = [
":common_proto_cc",
":data_service",
":journal",
":journal_proto_cc",
"//tensorflow/core:lib",
"@com_google_absl//absl/container:flat_hash_map",
"@com_google_absl//absl/memory",
],
)
tf_cc_test(
name = "dispatcher_state_test",
srcs = ["dispatcher_state_test.cc"],
deps = [
":common_proto_cc",
":dispatcher_state",
":journal",
":journal_proto_cc",
"//tensorflow/core:lib",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
"//tensorflow/core/platform:errors",
],
)
cc_library(
name = "grpc_dispatcher_impl",
srcs = ["grpc_dispatcher_impl.cc"],
hdrs = ["grpc_dispatcher_impl.h"],
deps = [
":dispatcher_cc_grpc_proto",
":dispatcher_impl",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core/distributed_runtime/rpc:grpc_util",
tf_grpc_cc_dependency(),
],
)
tf_cc_test(
name = "grpc_dispatcher_impl_test",
srcs = ["grpc_dispatcher_impl_test.cc"],
deps = [
":common_proto_cc",
":credentials_factory",
":dispatcher_proto_cc",
":grpc_dispatcher_impl",
":server_lib",
":test_util",
"@com_google_absl//absl/strings",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core/distributed_runtime/rpc:grpc_util",
"//tensorflow/core/framework:graph_proto_cc",
"//tensorflow/core/platform:errors",
"//tensorflow/core/platform:status",
"//tensorflow/core/platform:statusor",
"//tensorflow/core/platform:types",
"//tensorflow/core/protobuf:for_core_protos_cc",
tf_grpc_cc_dependency(),
] + tf_protos_profiler_service(),
)
cc_library(
name = "grpc_util",
srcs = ["grpc_util.cc"],
hdrs = [
"grpc_util.h",
],
deps = [
"//tensorflow/core:lib",
"//tensorflow/core/distributed_runtime/rpc:grpc_util",
tf_grpc_cc_dependency(),
],
)
tf_cc_test(
name = "grpc_util_test",
srcs = ["grpc_util_test.cc"],
deps = [
":grpc_util",
"//tensorflow/core:lib",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
cc_library(
name = "grpc_worker_impl",
srcs = ["grpc_worker_impl.cc"],
hdrs = ["grpc_worker_impl.h"],
deps = [
":worker_cc_grpc_proto",
":worker_impl",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core/distributed_runtime/rpc:grpc_util",
tf_grpc_cc_dependency(),
],
)
tf_cc_test(
name = "grpc_worker_impl_test",
srcs = ["grpc_worker_impl_test.cc"],
deps = [
":common_proto_cc",
":credentials_factory",
":dispatcher_proto_cc",
":grpc_worker_impl",
":server_lib",
":test_util",
":worker_proto_cc",
"@com_google_absl//absl/strings",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core/distributed_runtime/rpc:grpc_util",
"//tensorflow/core/framework:graph_proto_cc",
"//tensorflow/core/framework:types_proto_cc",
"//tensorflow/core/platform:errors",
"//tensorflow/core/platform:status",
"//tensorflow/core/platform:statusor",
"//tensorflow/core/platform:types",
"//tensorflow/core/protobuf:for_core_protos_cc",
tf_grpc_cc_dependency(),
] + tf_protos_profiler_service(),
)
cc_library(
name = "journal",
srcs = ["journal.cc"],
hdrs = ["journal.h"],
deps = [
":journal_proto_cc",
"//tensorflow/core:lib",
"//tensorflow/core/platform:regexp",
"@com_google_absl//absl/memory",
"@com_google_absl//absl/strings",
],
)
tf_proto_library(
name = "journal_proto",
srcs = ["journal.proto"],
cc_api_version = 2,
protodeps = [
":common_proto",
],
)
tf_cc_test(
name = "journal_test",
srcs = ["journal_test.cc"],
deps = [
":common_proto_cc",
":journal",
":journal_proto_cc",
"//tensorflow/core:lib",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
"@com_google_absl//absl/memory",
],
)
# Link this target to enable LOCAL credentials for the dataset service.
cc_library(
name = "local_credentials_factory",
srcs = ["local_credentials_factory.cc"],
deps = [
":credentials_factory",
tf_grpc_cc_dependency(),
],
alwayslink = 1,
)
cc_library(
name = "py_utils",
srcs = ["py_utils.cc"],
hdrs = ["py_utils.h"],
deps = [
":credentials_factory",
],
)
cc_library(
name = "server_lib",
srcs = ["server_lib.cc"],
hdrs = ["server_lib.h"],
linkstatic = True,
visibility = [
"//visibility:public",
],
deps = [
":credentials_factory",
":data_transfer",
":grpc_dispatcher_impl",
":grpc_util",
":grpc_worker_impl",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:tensorflow",
"//tensorflow/core/profiler/rpc:profiler_service_impl",
tf_grpc_cc_dependency(),
],
alwayslink = 1,
)
# This needs to be cc_header_only_library - tf_pybind_cc_library_wrapper
# does not pull in the server_lib.h header.
cc_header_only_library(
name = "server_lib_headers_lib",
features = ["-parse_headers"],
deps = [
":server_lib",
],
)
cc_library(
name = "split_provider",
srcs = ["split_provider.cc"],
hdrs = [
"split_provider.h",
],
deps = [
":data_service",
":grpc_util",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
],
)
cc_library(
name = "task_remover",
srcs = ["task_remover.cc"],
hdrs = ["task_remover.h"],
deps = [
"//tensorflow/core:framework_internal",
"//tensorflow/core:lib",
"@com_google_absl//absl/container:flat_hash_set",
],
)
cc_library(
name = "task_runner",
srcs = ["task_runner.cc"],
hdrs = ["task_runner.h"],
deps = [
":common_proto_cc",
":data_transfer",
":thread_safe_buffer",
":worker_proto_cc",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core/data:standalone",
"//tensorflow/core/protobuf:for_core_protos_cc",
],
)
tf_cc_test(
name = "task_runner_test",
srcs = ["task_runner_test.cc"],
deps = [
":data_transfer",
":task_runner",
":worker_proto_cc",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
"//tensorflow/core/data:dataset_proto_cc",
"@com_google_absl//absl/memory",
],
)
cc_library(
name = "test_cluster",
testonly = True,
srcs = ["test_cluster.cc"],
hdrs = ["test_cluster.h"],
deps = [
":server_lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core/platform:errors",
"@com_google_absl//absl/strings",
],
)
cc_library(
name = "test_util",
testonly = True,
srcs = ["test_util.cc"],
hdrs = [
"test_util.h",
],
data = ["//tensorflow/core/data/service/testdata"],
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core/data:dataset_test_base",
"//tensorflow/core/framework:protos_all_cc",
],
)
tf_cc_test(
name = "test_util_test",
srcs = ["test_util_test.cc"],
deps = [
":test_util",
"//tensorflow/core:lib",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
"//tensorflow/core/data:dataset_test_base",
"//tensorflow/core/data:standalone",
],
)
cc_library(
name = "thread_safe_buffer",
hdrs = ["thread_safe_buffer.h"],
deps = [
"//tensorflow/core:framework_lite",
"//tensorflow/core/platform:macros",
"//tensorflow/core/platform:status",
"//tensorflow/core/platform:statusor",
],
)
tf_cc_test(
name = "thread_safe_buffer_test",
size = "small",
srcs = ["thread_safe_buffer_test.cc"],
shard_count = 3,
deps = [
":thread_safe_buffer",
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core/framework:tensor_testutil",
"//tensorflow/core/platform:statusor",
"@com_google_absl//absl/strings",
],
)
cc_library(
name = "utils",
srcs = ["utils.cc"],
hdrs = ["utils.h"],
deps = [
":common_proto_cc",
"//tensorflow/core:lib",
"@com_google_absl//absl/memory",
"@com_google_absl//absl/strings",
],
)
tf_cc_test(
name = "utils_test",
srcs = ["utils_test.cc"],
deps = [
":common_proto_cc",
":utils",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core:testlib",
],
)
cc_grpc_library(
name = "worker_cc_grpc_proto",
srcs = [":worker_proto"],
compatible_with = get_compatible_with_cloud(),
generate_mocks = True,
grpc_only = True,
deps = [":worker_proto_cc"],
)
cc_library(
name = "worker_impl",
srcs = ["worker_impl.cc"],
hdrs = [
"worker_impl.h",
],
deps = [
":common_proto_cc",
":credentials_factory",
":data_service",
":data_transfer",
":dispatcher_cc_grpc_proto",
":dispatcher_proto_cc",
":grpc_util",
":split_provider",
":task_runner",
":utils",
":worker_proto_cc",
"//tensorflow/c:c_api_internal",
"//tensorflow/c:tf_status_helper",
"//tensorflow/core:core_cpu",
"//tensorflow/core:core_cpu_internal",
"//tensorflow/core:framework",
"//tensorflow/core:framework_internal",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core/data:dataset_proto_cc",
"//tensorflow/core/data:standalone",
"@com_google_absl//absl/container:flat_hash_map",
"@com_google_absl//absl/container:flat_hash_set",
"@com_google_absl//absl/memory",
tf_grpc_cc_dependency(),
],
)