aboutsummaryrefslogtreecommitdiff
path: root/include/armnn/backends
diff options
context:
space:
mode:
authorFrancis Murtagh <francis.murtagh@arm.com>2021-09-28 15:30:31 +0100
committerFrancis Murtagh <francis.murtagh@arm.com>2021-10-06 15:37:37 +0000
commitca49a24a2b19e4d8e45efc53e336223c5895f25a (patch)
tree37e14b5bec459e8a9ceb96557959176ba26fd56e /include/armnn/backends
parenteb5f810ad985a8cca831b46d94ee73db5a305c9f (diff)
downloadarmnn-ca49a24a2b19e4d8e45efc53e336223c5895f25a.tar.gz
IVGCVSW-6338 IMemoryOptimizerStrategy Create a wrapper validator strategy
* Add validator wrapper * Add validation logic: Condition #1: All Memblocks have been assigned to a MemBin Condition #2: No Memblock is assigned to multiple MemBins Condition #3: No two Memblocks overlap in both the X and Y axis Memblocks can overlap on the X axis for SingleAxisPacking Memblocks can overlap on the Y axis or the X for MultiAxisPacking but not both * Add test strategies and tests for overlap, duplicates and unassigned blocks Signed-off-by: Francis Murtagh <francis.murtagh@arm.com> Change-Id: I7a779b35538ecf18a33b62b84512eba69eda1f86
Diffstat (limited to 'include/armnn/backends')
-rw-r--r--include/armnn/backends/IMemoryOptimizerStrategy.hpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/include/armnn/backends/IMemoryOptimizerStrategy.hpp b/include/armnn/backends/IMemoryOptimizerStrategy.hpp
index ec6d838aae..ad5513f8a3 100644
--- a/include/armnn/backends/IMemoryOptimizerStrategy.hpp
+++ b/include/armnn/backends/IMemoryOptimizerStrategy.hpp
@@ -22,8 +22,8 @@ struct MemBlock
const unsigned int m_StartOfLife; // Y start
const unsigned int m_EndOfLife; // Y end
- const size_t m_MemSize; // X start
- size_t m_Offset; // X end
+ const size_t m_MemSize; // Offset + Memsize = X end
+ size_t m_Offset; // X start
const unsigned int m_Index; // Index to keep order
};
@@ -40,7 +40,7 @@ struct MemBin
// A IMemoryOptimizerStrategy must ensure that
// 1: All MemBlocks have been assigned to a MemBin
// 2: No MemBlock is assigned to multiple MemBins
-// 3: No two MemBlocks in a MemBin overlap in the X dimension
+// 3: No two Memblocks in a MemBin overlap in both the X and Y axis
// (a strategy cannot change the y axis or length of a MemBlock)
class IMemoryOptimizerStrategy
{