From 35b943d21ab258c9da73a24368d7c24d6f6c1ab5 Mon Sep 17 00:00:00 2001 From: Nadezhda Ageeva Date: Wed, 5 Oct 2022 21:29:46 +0400 Subject: [PATCH] [GNA] Fix std::bad_alloc for split eltwise (#13336) --- src/plugins/intel_gna/layers/gna_split_layer.hpp | 2 +- .../unit/gna/ngraph/transformations/gna_split_eltwise.cpp | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/plugins/intel_gna/layers/gna_split_layer.hpp b/src/plugins/intel_gna/layers/gna_split_layer.hpp index db3b01619a2..44edbe75f1a 100644 --- a/src/plugins/intel_gna/layers/gna_split_layer.hpp +++ b/src/plugins/intel_gna/layers/gna_split_layer.hpp @@ -50,7 +50,7 @@ public: // @brief Returns sizes of split outputs to split the input tensor to aligned parts not greater than the specified size static std::vector GetAlignedSplitSizes(uint32_t totalSize, uint32_t maxSplitSize, uint32_t alignment = GNALimitations::inputByteAlignment) { std::vector splitSizes; - uint32_t maxAlignedSplitSize = maxSplitSize - maxSplitSize % alignment; + uint32_t maxAlignedSplitSize = std::max(maxSplitSize - maxSplitSize % alignment, alignment); uint32_t usedSize = 0; while (usedSize < totalSize) { uint32_t partSize = std::min(totalSize - usedSize, maxAlignedSplitSize); diff --git a/src/tests/unit/gna/ngraph/transformations/gna_split_eltwise.cpp b/src/tests/unit/gna/ngraph/transformations/gna_split_eltwise.cpp index 9d63976e9bf..ae6a5c95742 100644 --- a/src/tests/unit/gna/ngraph/transformations/gna_split_eltwise.cpp +++ b/src/tests/unit/gna/ngraph/transformations/gna_split_eltwise.cpp @@ -149,7 +149,8 @@ const std::vector inputShape = { {1, 67000}, {1, 500000}, {1, 936, 513}, - {1, 64, 64, 64} + {1, 64, 64, 64}, + {1, 256, 64, 64} }; INSTANTIATE_TEST_SUITE_P(SplitEltwiseTestSuite, SplitEltwiseTestSuiteFixture,