| 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(), |
| ) |