From 31120e18b78e73b9b2946e99262fad7edd5b9170 Mon Sep 17 00:00:00 2001 From: Egor Duplensky Date: Tue, 28 Jan 2025 17:26:16 +0100 Subject: [PATCH] Apply review comments --- src/plugins/intel_cpu/src/compiled_model.cpp | 3 +-- src/plugins/intel_cpu/src/compiled_model.h | 5 ----- src/plugins/intel_cpu/src/graph.cpp | 22 ++++++++++++------- src/plugins/intel_cpu/src/graph.h | 6 ++--- src/plugins/intel_cpu/src/nodes/conv.cpp | 3 ++- src/plugins/intel_cpu/src/nodes/if.cpp | 3 ++- src/plugins/intel_cpu/src/nodes/input.cpp | 3 ++- src/plugins/intel_cpu/src/nodes/memory.cpp | 9 ++++---- .../intel_cpu/src/nodes/tensoriterator.cpp | 3 ++- 9 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/plugins/intel_cpu/src/compiled_model.cpp b/src/plugins/intel_cpu/src/compiled_model.cpp index 175bf4a5d94cc2..ddfb26d8d42421 100644 --- a/src/plugins/intel_cpu/src/compiled_model.cpp +++ b/src/plugins/intel_cpu/src/compiled_model.cpp @@ -56,8 +56,7 @@ CompiledModel::CompiledModel(const std::shared_ptr& model, m_cfg{std::move(cfg)}, m_name{model->get_name()}, m_loaded_from_cache(loaded_from_cache), - m_sub_memory_manager(std::move(sub_memory_manager)), - m_networkMemoryControl(std::make_shared()) { + m_sub_memory_manager(std::move(sub_memory_manager)) { m_mutex = std::make_shared(); const auto& core = m_plugin->get_core(); if (!core) { diff --git a/src/plugins/intel_cpu/src/compiled_model.h b/src/plugins/intel_cpu/src/compiled_model.h index fb08a1590afcde..ed23b1d0398fb4 100644 --- a/src/plugins/intel_cpu/src/compiled_model.h +++ b/src/plugins/intel_cpu/src/compiled_model.h @@ -68,10 +68,6 @@ class CompiledModel : public ov::ICompiledModel { return m_name; } - std::shared_ptr get_network_memory_control() const { - return m_networkMemoryControl; - } - private: std::shared_ptr create_sync_infer_request() const override; friend class CompiledModelHolder; @@ -105,7 +101,6 @@ class CompiledModel : public ov::ICompiledModel { std::vector> m_sub_compiled_models; std::shared_ptr m_sub_memory_manager = nullptr; - std::shared_ptr m_networkMemoryControl = nullptr; bool m_has_sub_compiled_models = false; }; diff --git a/src/plugins/intel_cpu/src/graph.cpp b/src/plugins/intel_cpu/src/graph.cpp index 7f3fbf847af998..2cf4e7283339dc 100644 --- a/src/plugins/intel_cpu/src/graph.cpp +++ b/src/plugins/intel_cpu/src/graph.cpp @@ -44,7 +44,6 @@ #include "openvino/core/node.hpp" #include "openvino/core/parallel.hpp" #include "openvino/core/type/element_type.hpp" -#include "openvino/op/tensor_iterator.hpp" #include "openvino/runtime/exception.hpp" #include "openvino/runtime/threading/cpu_streams_executor.hpp" #include "utils/debug_capabilities.h" @@ -767,8 +766,9 @@ static size_t AllocateStringsAndConstants(EdgeClusters& clusters, const GraphCon clusters.begin(), clusters.end(), [&allocateStringMemory, &allocateConstantEdge, &context](const EdgeCluster& cluster) { - if (cluster.empty()) + if (cluster.empty()) { return false; + } auto baseEdgeIt = std::find_if(cluster.begin(), cluster.end(), [](const EdgePtr& edge) { return one_of(edge->getStatus(), Edge::Status::Allocated, Edge::Status::NeedAllocation); @@ -821,8 +821,9 @@ static void AllocateBaseEdges(const EdgeClusters& edgeClusters, const MemoryCont // TODO: WA for some test (like strided_slice_test) which use tensors with // shapes {0}. And it is implicitly converted into {1} tensor. // Zeroing of input data allow pass tests. - if (edge->getParent()->getType() == Type::Input && edge->getMemory().getDesc().hasDefinedMaxSize()) + if (edge->getParent()->getType() == Type::Input && edge->getMemory().getDesc().hasDefinedMaxSize()) { edge->getMemoryPtr()->nullify(); + } count++; } @@ -933,13 +934,15 @@ int Graph::RegisterToAllocationContext(int offset, AllocationContext& context) { } static void InitEdgeStatus(const std::vector& edges) { - for (auto& edge : edges) + for (auto& edge : edges) { edge->init(); + } } static void ValidateEdgeStatus(const std::vector& edges) { - for (auto& edge : edges) + for (auto& edge : edges) { edge->validate(); + } } /** @@ -955,8 +958,9 @@ static EdgeClusters FormEdgeClusters(const std::vector& graphEdges) { EdgeClusterIdxMap edgeClusterIndices; for (auto& edge : graphEdges) { - if (edgeClusterIndices.count(edge)) + if (edgeClusterIndices.count(edge)) { continue; // edge is visited + } size_t clusterIdx = edgeClusters.size(); EdgePtr lastSharedEdge = nullptr; @@ -972,15 +976,17 @@ static EdgeClusters FormEdgeClusters(const std::vector& graphEdges) { } } - if (clusterIdx == edgeClusters.size()) + if (clusterIdx == edgeClusters.size()) { edgeClusters.emplace_back(EdgeCluster{edge}); + } // use recursive approach to ensure that the base edge is placed as a first entry of a cluster std::function addToCluster; addToCluster = [&addToCluster, &edgeClusterIndices, &clusterIdx, &edgeClusters, &lastSharedEdge](const EdgePtr& edge) { - if (edge == lastSharedEdge) + if (edge == lastSharedEdge) { return; + } addToCluster(edge->getSharedEdge(std::nothrow)); diff --git a/src/plugins/intel_cpu/src/graph.h b/src/plugins/intel_cpu/src/graph.h index 0a5d6e7995d54b..94051b57f39a64 100644 --- a/src/plugins/intel_cpu/src/graph.h +++ b/src/plugins/intel_cpu/src/graph.h @@ -70,7 +70,7 @@ class Graph { * To enable layout propagation and global memory reuse * two-stage creation should be used instead: * - Init() - * - Allocate() + * - Activate() */ template void CreateGraph(NET& model, const GraphContext::CPtr& context); @@ -80,7 +80,7 @@ class Graph { * To enable layout propagation and global memory reuse * two-stage creation should be used instead: * - Init() - * - Allocate() + * - Activate() */ void CreateGraph(const std::vector& graphNodes, const std::vector& graphEdges, @@ -240,8 +240,6 @@ class Graph { return graphHasDynamicInput; } - const std::unordered_map& getInternalStateNodes() const; - void Init(const std::vector& graphNodes, const std::vector& graphEdges, const GraphContext::CPtr& context, diff --git a/src/plugins/intel_cpu/src/nodes/conv.cpp b/src/plugins/intel_cpu/src/nodes/conv.cpp index 438d2f54ce5e6a..2e6d006b0c5e00 100644 --- a/src/plugins/intel_cpu/src/nodes/conv.cpp +++ b/src/plugins/intel_cpu/src/nodes/conv.cpp @@ -925,8 +925,9 @@ void Convolution::selectOptimalPrimitiveDescriptor() { } int Convolution::registerToAllocationContext(int offset, AllocationContext& context) { - if (subgraph) + if (subgraph) { return subgraph->RegisterToAllocationContext(offset, context); + } return Node::registerToAllocationContext(offset, context); } diff --git a/src/plugins/intel_cpu/src/nodes/if.cpp b/src/plugins/intel_cpu/src/nodes/if.cpp index 7f979ba08a8b0e..30f41dcf5e7d27 100644 --- a/src/plugins/intel_cpu/src/nodes/if.cpp +++ b/src/plugins/intel_cpu/src/nodes/if.cpp @@ -80,8 +80,9 @@ If::If(const std::shared_ptr& op, const GraphContext::CPtr& context) } void If::initSupportedPrimitiveDescriptors() { - if (!supportedPrimitiveDescriptors.empty()) + if (!supportedPrimitiveDescriptors.empty()) { return; + } auto ifOp = ov::as_type_ptr(m_op); diff --git a/src/plugins/intel_cpu/src/nodes/input.cpp b/src/plugins/intel_cpu/src/nodes/input.cpp index c650199df842cf..936dacd53ce702 100644 --- a/src/plugins/intel_cpu/src/nodes/input.cpp +++ b/src/plugins/intel_cpu/src/nodes/input.cpp @@ -578,8 +578,9 @@ void Input::initSupportedPdFromMemDesc() { } void Input::resolveInPlaceEdges(Edge::LOOK look) { - if (!m_isInPlace) + if (!m_isInPlace) { return Node::resolveInPlaceEdges(look); + } if (look & Edge::LOOK_UP) { auto edges = getChildEdgesAtPort(0); diff --git a/src/plugins/intel_cpu/src/nodes/memory.cpp b/src/plugins/intel_cpu/src/nodes/memory.cpp index 6a256c8cba0c39..7eaea6d0e7034a 100644 --- a/src/plugins/intel_cpu/src/nodes/memory.cpp +++ b/src/plugins/intel_cpu/src/nodes/memory.cpp @@ -703,11 +703,10 @@ void MemoryInput::createPrimitive() { CPU_NODE_ASSERT(getParentEdges().size() == subGraph->inputsNumber(), "Number of node inputs must be equal the number of inner graph's inputs"); - for (size_t i = 0; i < getParentEdges().size(); i++) { - auto srcEdgeMem = getSrcMemoryAtPort(i); - // create a separate input memory objects instead of share them. avoid data corruption. - auto mem = std::make_shared(getEngine(), srcEdgeMem->getDescPtr(), srcEdgeMem->getMemoryBlock()); - subgraphMemoryPtrs.push_back(mem); + for (size_t i = 0; i < subGraph->inputsNumber(); i++) { + auto subgraphInputNode = subGraph->getInputNodeByIndex(i); + auto subgraphInputMemory = subgraphInputNode->getDstMemoryAtPort(0); + subgraphMemoryPtrs.push_back(subgraphInputMemory); } subGraph->Activate(); diff --git a/src/plugins/intel_cpu/src/nodes/tensoriterator.cpp b/src/plugins/intel_cpu/src/nodes/tensoriterator.cpp index 75ed2e083f822e..15769c0b8005c8 100644 --- a/src/plugins/intel_cpu/src/nodes/tensoriterator.cpp +++ b/src/plugins/intel_cpu/src/nodes/tensoriterator.cpp @@ -442,8 +442,9 @@ void TensorIterator::initSupportedPrimitiveDescriptors() { sub_graph.Init(subgraphOp->get_function(), context); - if (!supportedPrimitiveDescriptors.empty()) + if (!supportedPrimitiveDescriptors.empty()) { return; + } supportedPrimitiveDescriptors.emplace_back(make_plain_config(ngraphOp), impl_desc_type::unknown); }