From c3e1d2570d5ae9156d729ee84958d36b289aa4df Mon Sep 17 00:00:00 2001 From: liutiexing <74819124+liutiexing@users.noreply.github.com> Date: Tue, 12 Apr 2022 10:02:31 +0800 Subject: [PATCH] Update Profiler (#41638) --- paddle/fluid/platform/profiler/CMakeLists.txt | 0 .../profiler/dump/test_serialization_logger.cc | 4 ++-- paddle/fluid/platform/profiler/event_node.h | 11 +++++++---- paddle/fluid/platform/profiler/event_python.cc | 2 +- paddle/fluid/platform/profiler/event_python.h | 4 ++-- paddle/fluid/platform/profiler/profiler_test.cc | 4 ++-- 6 files changed, 14 insertions(+), 11 deletions(-) mode change 100755 => 100644 paddle/fluid/platform/profiler/CMakeLists.txt diff --git a/paddle/fluid/platform/profiler/CMakeLists.txt b/paddle/fluid/platform/profiler/CMakeLists.txt old mode 100755 new mode 100644 diff --git a/paddle/fluid/platform/profiler/dump/test_serialization_logger.cc b/paddle/fluid/platform/profiler/dump/test_serialization_logger.cc index dee1019da2..d294bfee58 100644 --- a/paddle/fluid/platform/profiler/dump/test_serialization_logger.cc +++ b/paddle/fluid/platform/profiler/dump/test_serialization_logger.cc @@ -152,7 +152,7 @@ TEST(SerializationLoggerTest, dump_case1) { TEST(DeserializationReaderTest, restore_case0) { DeserializationReader reader("test_serialization_logger_case0.pb"); auto profiler_result = reader.Parse(); - auto& tree = profiler_result->GetNodeTrees(); + auto tree = profiler_result->GetNodeTrees(); std::map> nodes = tree->Traverse(true); EXPECT_EQ(nodes[10].size(), 4u); @@ -179,7 +179,7 @@ TEST(DeserializationReaderTest, restore_case0) { TEST(DeserializationReaderTest, restore_case1) { DeserializationReader reader("test_serialization_logger_case1.pb"); auto profiler_result = reader.Parse(); - auto& tree = profiler_result->GetNodeTrees(); + auto tree = profiler_result->GetNodeTrees(); std::map> nodes = tree->Traverse(true); EXPECT_EQ(nodes[10].size(), 1u); diff --git a/paddle/fluid/platform/profiler/event_node.h b/paddle/fluid/platform/profiler/event_node.h index dd8dfd32df..3e589b0be2 100644 --- a/paddle/fluid/platform/profiler/event_node.h +++ b/paddle/fluid/platform/profiler/event_node.h @@ -103,7 +103,7 @@ class CudaRuntimeTraceEventNode { device_node_ptrs_.push_back(node); } void LogMe(BaseLogger* logger) { logger->LogRuntimeTraceEventNode(*this); } - std::vector& GetDeviceTraceEventNodes() { + const std::vector& GetDeviceTraceEventNodes() const { return device_node_ptrs_; } @@ -139,8 +139,11 @@ class HostTraceEventNode { void AddCudaRuntimeNode(CudaRuntimeTraceEventNode* node) { runtime_node_ptrs_.push_back(node); } - std::vector& GetChildren() { return children_; } - std::vector& GetRuntimeTraceEventNodes() { + const std::vector& GetChildren() const { + return children_; + } + const std::vector& GetRuntimeTraceEventNodes() + const { return runtime_node_ptrs_; } void LogMe(BaseLogger* logger) { logger->LogHostTraceEventNode(*this); } @@ -188,7 +191,7 @@ class NodeTrees { void HandleTrees(std::function, std::function, std::function); - std::map GetNodeTrees() { + const std::map& GetNodeTrees() const { return thread_event_trees_map_; } std::map> Traverse(bool bfs) const; diff --git a/paddle/fluid/platform/profiler/event_python.cc b/paddle/fluid/platform/profiler/event_python.cc index 1a6f19d2f9..5c42c8e8bf 100644 --- a/paddle/fluid/platform/profiler/event_python.cc +++ b/paddle/fluid/platform/profiler/event_python.cc @@ -81,7 +81,7 @@ HostPythonNode* ProfilerResult::CopyTree(HostTraceEventNode* root) { ProfilerResult::ProfilerResult(std::unique_ptr tree, const ExtraInfo& extra_info) - : tree_(std::move(tree)), extra_info_(extra_info) { + : tree_(tree.release()), extra_info_(extra_info) { if (tree_ != nullptr) { std::map nodetrees = tree_->GetNodeTrees(); for (auto it = nodetrees.begin(); it != nodetrees.end(); ++it) { diff --git a/paddle/fluid/platform/profiler/event_python.h b/paddle/fluid/platform/profiler/event_python.h index 12ecb9fde3..172116dbb0 100644 --- a/paddle/fluid/platform/profiler/event_python.h +++ b/paddle/fluid/platform/profiler/event_python.h @@ -82,11 +82,11 @@ class ProfilerResult { void Save(const std::string& file_name, const std::string format = std::string("json")); - std::unique_ptr& GetNodeTrees() { return tree_; } + std::shared_ptr GetNodeTrees() { return tree_; } private: std::map thread_event_trees_map_; - std::unique_ptr tree_; + std::shared_ptr tree_; ExtraInfo extra_info_; HostPythonNode* CopyTree(HostTraceEventNode* root); }; diff --git a/paddle/fluid/platform/profiler/profiler_test.cc b/paddle/fluid/platform/profiler/profiler_test.cc index 32310b9e86..f2c867ffff 100644 --- a/paddle/fluid/platform/profiler/profiler_test.cc +++ b/paddle/fluid/platform/profiler/profiler_test.cc @@ -46,7 +46,7 @@ TEST(ProfilerTest, TestHostTracer) { 3); } auto profiler_result = profiler->Stop(); - auto& nodetree = profiler_result->GetNodeTrees(); + auto nodetree = profiler_result->GetNodeTrees(); std::set host_events; for (const auto pair : nodetree->Traverse(true)) { for (const auto evt : pair.second) { @@ -79,7 +79,7 @@ TEST(ProfilerTest, TestCudaTracer) { hipStreamSynchronize(stream); #endif auto profiler_result = profiler->Stop(); - auto& nodetree = profiler_result->GetNodeTrees(); + auto nodetree = profiler_result->GetNodeTrees(); std::vector runtime_events; for (const auto pair : nodetree->Traverse(true)) { for (const auto host_node : pair.second) { -- GitLab