diff --git a/tsl/profiler/lib/BUILD b/tsl/profiler/lib/BUILD index 87120c0af..332b83498 100644 --- a/tsl/profiler/lib/BUILD +++ b/tsl/profiler/lib/BUILD @@ -138,7 +138,7 @@ cc_library( ]), deps = [ "//tsl/profiler/protobuf:xplane_proto_cc", - "@xla//xla/tsl/platform:status", + "@com_google_absl//absl/status", ], ) diff --git a/tsl/profiler/lib/profiler_collection.cc b/tsl/profiler/lib/profiler_collection.cc index f3ffec62b..4950b623a 100644 --- a/tsl/profiler/lib/profiler_collection.cc +++ b/tsl/profiler/lib/profiler_collection.cc @@ -15,6 +15,7 @@ limitations under the License. #include "tsl/profiler/lib/profiler_collection.h" #include +#include #include #include @@ -55,5 +56,22 @@ absl::Status ProfilerCollection::CollectData( return status; } +absl::Status ProfilerCollection::Consume(std::string* output) { + absl::Status status; + for (auto& profiler : profilers_) { + status.Update(profiler->Consume(output)); + } + return status; +} + +absl::Status ProfilerCollection::Serialize(const std::string& input, + std::string* output) { + absl::Status status; + for (auto& profiler : profilers_) { + status.Update(profiler->Serialize(input, output)); + } + return status; +} + } // namespace profiler } // namespace tsl diff --git a/tsl/profiler/lib/profiler_collection.h b/tsl/profiler/lib/profiler_collection.h index e2b9fd3ef..bb73fff3a 100644 --- a/tsl/profiler/lib/profiler_collection.h +++ b/tsl/profiler/lib/profiler_collection.h @@ -16,6 +16,7 @@ limitations under the License. #define TENSORFLOW_TSL_PROFILER_LIB_PROFILER_COLLECTION_H_ #include +#include #include #include "absl/status/status.h" @@ -39,6 +40,11 @@ class ProfilerCollection : public ProfilerInterface { absl::Status CollectData(tensorflow::profiler::XSpace* space) override; + absl::Status Consume(std::string* output) override; + + absl::Status Serialize(const std::string& input, + std::string* output) override; + private: std::vector> profilers_; }; diff --git a/tsl/profiler/lib/profiler_interface.h b/tsl/profiler/lib/profiler_interface.h index 2b0b71242..9b86227d9 100644 --- a/tsl/profiler/lib/profiler_interface.h +++ b/tsl/profiler/lib/profiler_interface.h @@ -15,7 +15,9 @@ limitations under the License. #ifndef TENSORFLOW_TSL_PROFILER_LIB_PROFILER_INTERFACE_H_ #define TENSORFLOW_TSL_PROFILER_LIB_PROFILER_INTERFACE_H_ -#include "xla/tsl/platform/status.h" +#include + +#include "absl/status/status.h" #include "tsl/profiler/protobuf/xplane.pb.h" namespace tsl { @@ -41,6 +43,17 @@ class ProfilerInterface { // Saves collected profile data into XSpace. virtual absl::Status CollectData(tensorflow::profiler::XSpace* space) = 0; + + // Consumes data from the profiler incrementally. + virtual absl::Status Consume(std::string* output) { + return absl::UnimplementedError("Consume is not implemented."); + } + + // Serializes consumed data into the provided output buffer. + virtual absl::Status Serialize(const std::string& input, + std::string* output) { + return absl::UnimplementedError("Serialize is not implemented."); + } }; } // namespace profiler