xref: /aosp_15_r20/external/armnn/tests/MemoryStrategyBenchmark/TestStrategy.cpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1 //
2 // Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #include "TestStrategy.hpp"
7 
8 namespace armnn
9 {
10 
GetName() const11     std::string TestStrategy::GetName() const
12     {
13         return m_Name;
14     }
15 
GetMemBlockStrategyType() const16     MemBlockStrategyType TestStrategy::GetMemBlockStrategyType() const
17     {
18         return m_MemBlockStrategyType;
19     }
20 
21     // A IMemoryOptimizerStrategy must ensure that
22     // 1: All MemBlocks have been assigned to a MemBin
23     // 2: No MemBlock is assigned to multiple MemBins
24     // 3: No two Memblocks in a MemBin overlap in both the X and Y axis
Optimize(std::vector<MemBlock> & memBlocks)25     std::vector<MemBin> TestStrategy::Optimize(std::vector<MemBlock>& memBlocks)
26     {
27         std::vector<MemBin> memBins;
28         memBins.reserve(memBlocks.size());
29 
30         for (auto& memBlock : memBlocks)
31         {
32             MemBin memBin;
33             memBin.m_MemSize = memBlock.m_MemSize;
34             memBin.m_MemBlocks.reserve(1);
35             memBlock.m_Offset = 0;
36             memBin.m_MemBlocks.push_back(memBlock);
37             memBins.push_back(memBin);
38         }
39 
40         return memBins;
41     }
42 
43 } // namespace armnn