blob: c3e9cfab93e6e172ba4a76afdd9d09615570d535 [file] [log] [blame]
load("//tensorflow/core/platform:rules_cc.bzl", "cc_library")
load("//tensorflow:tensorflow.bzl", "tf_grpc_cc_dependency")
load("//tensorflow:tensorflow.bzl", "tf_cc_test")
load(
"//tensorflow/core/profiler/builds:build_config.bzl",
"tf_profiler_copts",
"tf_profiler_pybind_cc_library_wrapper",
)
# For platform specific build config
load(
"//tensorflow/core/platform:build_config.bzl",
"tf_protos_profiler_service",
)
package(
licenses = ["notice"], # Apache 2.0
)
cc_library(
name = "capture_profile",
srcs = ["capture_profile.cc"],
hdrs = ["capture_profile.h"],
copts = tf_profiler_copts(),
visibility = [
"//tensorflow/compiler/xla/python:__pkg__",
"//tensorflow/python/profiler/internal:__pkg__",
],
deps = [
":profiler_client_for_pybind",
":remote_profiler_session_manager",
":save_profile",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core/profiler:profiler_analysis_proto_cc",
"//tensorflow/core/profiler:profiler_options_proto_cc",
"//tensorflow/core/profiler:profiler_service_proto_cc",
"//tensorflow/core/profiler/convert:xplane_to_profile_response",
"//tensorflow/core/profiler/protobuf:xplane_proto_cc",
"@com_google_absl//absl/strings",
"@com_google_absl//absl/time",
],
)
cc_library(
name = "save_profile",
srcs = ["save_profile.cc"],
hdrs = ["save_profile.h"],
copts = tf_profiler_copts(),
visibility = ["//tensorflow/core/profiler:internal"],
deps = [
"//tensorflow/core:framework",
"//tensorflow/core:lib",
"//tensorflow/core:lib_internal",
"//tensorflow/core/profiler:profiler_service_proto_cc",
"//tensorflow/core/profiler/utils:file_system_utils",
"@com_google_absl//absl/strings",
"@com_google_absl//absl/time",
],
)
tf_profiler_pybind_cc_library_wrapper(
name = "profiler_client_for_pybind",
actual = ":profiler_client",
)
cc_library(
name = "profiler_client",
hdrs = ["profiler_client.h"],
visibility = ["//tensorflow/compiler/xla:__subpackages__"],
deps = [
":profiler_client_impl",
"//tensorflow/core:lib",
"//tensorflow/core/profiler:profiler_analysis_proto_cc",
"//tensorflow/core/profiler:profiler_service_proto_cc",
"@com_google_absl//absl/strings",
"@com_google_absl//absl/time",
],
)
# Linked to pywrap_tensorflow to avoid ODR violation due to tf_grpc_cc_dependency().
cc_library(
name = "profiler_client_impl",
srcs = [
"profiler_client.cc",
"profiler_client.h",
],
copts = tf_profiler_copts(),
visibility = ["//tensorflow/python:__pkg__"],
deps = [
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core/profiler:profiler_analysis_proto_cc",
"//tensorflow/core/profiler:profiler_service_proto_cc",
"@com_google_absl//absl/memory",
"@com_google_absl//absl/strings",
"@com_google_absl//absl/time",
tf_grpc_cc_dependency(),
],
alwayslink = True,
)
cc_library(
name = "profiler_client_test_util",
testonly = 1,
hdrs = ["profiler_client_test_util.h"],
deps = [
"@com_google_absl//absl/memory",
"@com_google_absl//absl/strings",
"@com_google_absl//absl/time",
"//tensorflow/core:lib",
"//tensorflow/core:test",
"//tensorflow/core/profiler:profiler_options_proto_cc",
"//tensorflow/core/profiler/lib:profiler_session",
"//tensorflow/core/profiler/rpc:profiler_server_impl",
] + tf_protos_profiler_service(),
)
tf_cc_test(
name = "profiler_client_test",
srcs = ["profiler_client_test.cc"],
tags = ["notap"], # b/173824689
deps = [
":profiler_client",
":profiler_client_impl", # for oss
":profiler_client_test_util",
"@com_google_absl//absl/time",
"//tensorflow/core:lib",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core/profiler/rpc:profiler_server_impl",
] + tf_protos_profiler_service(),
)
cc_library(
name = "remote_profiler_session_manager",
srcs = ["remote_profiler_session_manager.cc"],
hdrs = ["remote_profiler_session_manager.h"],
copts = tf_profiler_copts(),
deps = [
":profiler_client_for_pybind",
"//tensorflow/core:lib",
"//tensorflow/core:protos_all_cc",
"//tensorflow/core/profiler:profiler_options_proto_cc",
"//tensorflow/core/profiler/utils:time_utils",
"@com_google_absl//absl/memory",
"@com_google_absl//absl/strings",
"@com_google_absl//absl/time",
],
)
tf_cc_test(
name = "remote_profiler_session_manager_test",
srcs = ["remote_profiler_session_manager_test.cc"],
deps = [
":profiler_client_impl", # for oss
":profiler_client_test_util",
":remote_profiler_session_manager",
"@com_google_absl//absl/time",
"//tensorflow/core:lib",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//tensorflow/core/profiler:profiler_options_proto_cc",
"//tensorflow/core/profiler/rpc:profiler_server_impl",
] + tf_protos_profiler_service(),
)