185 lines
5.5 KiB
Python
185 lines
5.5 KiB
Python
load(
|
|
"//tensorflow:tensorflow.bzl",
|
|
"tf_cc_test",
|
|
)
|
|
load("//tensorflow:tensorflow.default.bzl", "filegroup")
|
|
load("//tensorflow/core/platform:rules_cc.bzl", "cc_library")
|
|
|
|
package(
|
|
# copybara:uncomment default_applicable_licenses = ["//tensorflow:license"],
|
|
licenses = ["notice"],
|
|
)
|
|
|
|
# Currently pybind extension shared objects must use only C API headers since
|
|
# the C API has static initializers duplicated in the Python bindings. So we
|
|
# need a second rule that omits .cc files, in
|
|
# tensorflow/python:_pywrap_parallel_device.
|
|
filegroup(
|
|
name = "lib_headers",
|
|
srcs = ["parallel_device_lib.h"],
|
|
)
|
|
|
|
filegroup(
|
|
name = "lib_sources",
|
|
srcs = ["parallel_device_lib.cc"],
|
|
)
|
|
|
|
filegroup(
|
|
name = "device_headers",
|
|
srcs = ["parallel_device.h"],
|
|
)
|
|
|
|
filegroup(
|
|
name = "device_sources",
|
|
srcs = ["parallel_device.cc"],
|
|
)
|
|
|
|
filegroup(
|
|
name = "headers",
|
|
srcs = [
|
|
":device_headers",
|
|
":lib_headers",
|
|
],
|
|
visibility = ["//tensorflow/python:__pkg__"],
|
|
)
|
|
|
|
filegroup(
|
|
name = "sources",
|
|
srcs = [
|
|
":device_sources",
|
|
":lib_sources",
|
|
],
|
|
visibility = ["//tensorflow/python:__pkg__"],
|
|
)
|
|
|
|
cc_library(
|
|
name = "parallel_device",
|
|
srcs = [":device_sources"],
|
|
hdrs = [":device_headers"],
|
|
visibility = ["//visibility:private"],
|
|
deps = [
|
|
":parallel_device_lib",
|
|
"//tensorflow/c:c_api",
|
|
"//tensorflow/c:tf_status_helper",
|
|
"//tensorflow/c/eager:c_api",
|
|
"//tensorflow/c/eager:c_api_experimental",
|
|
"//tensorflow/c/eager:tfe_tensorhandle_internal",
|
|
"//tensorflow/core/platform:status",
|
|
"@com_google_absl//absl/status",
|
|
"@com_google_absl//absl/strings",
|
|
"@com_google_absl//absl/types:optional",
|
|
"@com_google_absl//absl/types:variant",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "parallel_device_lib",
|
|
srcs = [":lib_sources"],
|
|
hdrs = [":lib_headers"],
|
|
visibility = ["//tensorflow:internal"],
|
|
deps = [
|
|
"//tensorflow/c:c_api",
|
|
"//tensorflow/c:safe_ptr",
|
|
"//tensorflow/c:tf_status_internal",
|
|
"//tensorflow/c/eager:c_api",
|
|
"//tensorflow/c/eager:c_api_experimental",
|
|
"//tensorflow/c/eager:immediate_execution_tensor_handle",
|
|
"//tensorflow/c/eager:tfe_cancellation_manager_internal",
|
|
"//tensorflow/c/eager:tfe_op_internal",
|
|
"//tensorflow/c/eager:tfe_tensorhandle_internal",
|
|
"//tensorflow/core:framework",
|
|
"//tensorflow/core:lib",
|
|
"@com_google_absl//absl/base:core_headers",
|
|
"@com_google_absl//absl/memory",
|
|
"@com_google_absl//absl/status",
|
|
"@com_google_absl//absl/strings",
|
|
"@com_google_absl//absl/synchronization",
|
|
"@com_google_absl//absl/types:optional",
|
|
"@com_google_absl//absl/types:span",
|
|
"@com_google_absl//absl/types:variant",
|
|
],
|
|
)
|
|
|
|
tf_cc_test(
|
|
name = "parallel_device_lib_test",
|
|
srcs = ["parallel_device_lib_test.cc"],
|
|
deps = [
|
|
":parallel_device_lib",
|
|
":parallel_device_testlib",
|
|
"//tensorflow/c:c_api",
|
|
"//tensorflow/c:c_api_experimental",
|
|
"//tensorflow/c/eager:c_api",
|
|
"//tensorflow/c/eager:c_api_experimental",
|
|
"//tensorflow/c/eager:tfe_context_internal",
|
|
"//tensorflow/core:framework",
|
|
"//tensorflow/core:protos_all_cc",
|
|
"//tensorflow/core:test",
|
|
"//tensorflow/core:test_main",
|
|
"//tensorflow/core/common_runtime/eager:context",
|
|
"//tensorflow/core/platform:status",
|
|
"@com_google_absl//absl/status",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "parallel_device_testlib",
|
|
testonly = 1,
|
|
srcs = ["parallel_device_testlib.cc"],
|
|
hdrs = ["parallel_device_testlib.h"],
|
|
deps = [
|
|
":parallel_device",
|
|
":parallel_device_lib",
|
|
"//tensorflow/c:c_api",
|
|
"//tensorflow/c:c_api_experimental",
|
|
"//tensorflow/c/eager:c_api",
|
|
"//tensorflow/c/eager:c_api_experimental",
|
|
"//tensorflow/core:framework_types_hdr",
|
|
"//tensorflow/core:test",
|
|
"//tensorflow/core:test_main",
|
|
],
|
|
)
|
|
|
|
tf_cc_test(
|
|
name = "parallel_device_test",
|
|
srcs = ["parallel_device_test.cc"],
|
|
deps = [
|
|
":parallel_device_lib",
|
|
":parallel_device_testlib",
|
|
"//tensorflow/c:c_api",
|
|
"//tensorflow/c:c_api_experimental",
|
|
"//tensorflow/c:tf_status_internal",
|
|
"//tensorflow/c/eager:c_api",
|
|
"//tensorflow/c/eager:c_api_experimental",
|
|
"//tensorflow/c/eager:immediate_execution_tensor_handle",
|
|
"//tensorflow/c/eager:tfe_tensorhandle_internal",
|
|
"//tensorflow/core:test",
|
|
"//tensorflow/core:test_main",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
tf_cc_test(
|
|
name = "parallel_device_remote_test",
|
|
srcs = ["parallel_device_remote_test.cc"],
|
|
# TODO(b/136478427): Enable global heap checking when servers shut down
|
|
# cleanly.
|
|
args = ["--heap_check="],
|
|
deps = [
|
|
":parallel_device_lib",
|
|
":parallel_device_testlib",
|
|
"//tensorflow/c:c_api",
|
|
"//tensorflow/c:c_api_experimental",
|
|
"//tensorflow/c/eager:c_api",
|
|
"//tensorflow/c/eager:c_api_experimental",
|
|
"//tensorflow/core:protos_all_cc",
|
|
"//tensorflow/core:test",
|
|
"//tensorflow/core:test_main",
|
|
"//tensorflow/core/distributed_runtime:master_env",
|
|
"//tensorflow/core/distributed_runtime/rpc:grpc_server_lib",
|
|
"//tensorflow/core/platform:strcat",
|
|
"@com_google_absl//absl/log",
|
|
"@com_google_absl//absl/strings",
|
|
],
|
|
)
|