From 147cf780794148428fb4fed3db922d4126dbbf57 Mon Sep 17 00:00:00 2001 From: Zhang Yi Date: Mon, 22 Apr 2024 17:09:27 +0800 Subject: [PATCH] [CPU]Fix profile graph (#23699) ### Details: - *Fix profile graph construction* ### Tickets: - *CVS-136859* - https://github.com/openvinotoolkit/openvino.genai/issues/327 --- src/plugins/intel_cpu/src/nodes/broadcast.cpp | 3 +-- .../intel_cpu/src/nodes/common/tile_broadcast_utils.cpp | 4 ++-- src/plugins/intel_cpu/src/nodes/common/tile_broadcast_utils.h | 2 +- src/plugins/intel_cpu/src/nodes/tile.cpp | 2 +- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/plugins/intel_cpu/src/nodes/broadcast.cpp b/src/plugins/intel_cpu/src/nodes/broadcast.cpp index 4662e362475..ac8dd814ae9 100644 --- a/src/plugins/intel_cpu/src/nodes/broadcast.cpp +++ b/src/plugins/intel_cpu/src/nodes/broadcast.cpp @@ -103,8 +103,7 @@ void Broadcast::getSupportedDescriptors() { void Broadcast::initSupportedPrimitiveDescriptors() { if (!supportedPrimitiveDescriptors.empty()) return; - - supportedPrimitiveDescriptors = getSupportedConfigs(this); + supportedPrimitiveDescriptors = getSupportedConfigs(this, outputShapes.size()); } bool Broadcast::needPrepareParams() const { diff --git a/src/plugins/intel_cpu/src/nodes/common/tile_broadcast_utils.cpp b/src/plugins/intel_cpu/src/nodes/common/tile_broadcast_utils.cpp index 8ddc5aa39c6..6c62304ab22 100644 --- a/src/plugins/intel_cpu/src/nodes/common/tile_broadcast_utils.cpp +++ b/src/plugins/intel_cpu/src/nodes/common/tile_broadcast_utils.cpp @@ -90,7 +90,7 @@ bool TileBroadcastCommon::canBeExecutedInNSPCLayout(VectorDims srcBlockedDims, V return optimizedDims.size() <= maxNDims; } -std::vector TileBroadcastCommon::getSupportedConfigs(const Node *node) { +std::vector TileBroadcastCommon::getSupportedConfigs(const Node *node, size_t outSize) { std::vector supportedPrimitiveDescriptors; auto precision = node->getOriginalInputPrecisionAtPort(0); auto dataType = DnnlExtensionUtils::ElementTypeToDataType(precision); @@ -122,7 +122,7 @@ std::vector TileBroadcastCommon::getSupportedConfigs(const Node *node) config.inConfs[2].setMemDesc(std::make_shared(ov::element::i32, node->getInputShapeAtPort(2))); } - config.outConfs.resize(node->getChildEdges().size()); + config.outConfs.resize(outSize); auto pushDesc = [&](dnnl::memory::format_tag inFormat, dnnl::memory::format_tag outFormat) { config.inConfs[0].setMemDesc(std::make_shared(node->getInputShapeAtPort(0), dataType, inFormat)); diff --git a/src/plugins/intel_cpu/src/nodes/common/tile_broadcast_utils.h b/src/plugins/intel_cpu/src/nodes/common/tile_broadcast_utils.h index a865e6cb239..7ae0eacbccd 100644 --- a/src/plugins/intel_cpu/src/nodes/common/tile_broadcast_utils.h +++ b/src/plugins/intel_cpu/src/nodes/common/tile_broadcast_utils.h @@ -16,7 +16,7 @@ namespace intel_cpu { class TileBroadcastCommon { protected: static VectorDims calculateDenseStrides(const VectorDims &dims); - std::vector getSupportedConfigs(const Node *node); + std::vector getSupportedConfigs(const Node *node, size_t outSize); bool prepareOptimizedParams(const Node *node, VectorDims& srcBlockedDims, VectorDims& dstBlockedDims); void optimizedExecute(const MemoryPtr& srcMemory, const MemoryPtr& dstMemory); diff --git a/src/plugins/intel_cpu/src/nodes/tile.cpp b/src/plugins/intel_cpu/src/nodes/tile.cpp index 75e0c01cf4a..447898e6390 100644 --- a/src/plugins/intel_cpu/src/nodes/tile.cpp +++ b/src/plugins/intel_cpu/src/nodes/tile.cpp @@ -110,7 +110,7 @@ void Tile::initSupportedPrimitiveDescriptors() { if (!supportedPrimitiveDescriptors.empty()) return; - supportedPrimitiveDescriptors = getSupportedConfigs(this); + supportedPrimitiveDescriptors = getSupportedConfigs(this, outputShapes.size()); } bool Tile::needPrepareParams() const {