1 //
2 // Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 #pragma once
6 
7 #include <armnn/Types.hpp>
8 #include <armnn/backends/IMemoryOptimizerStrategy.hpp>
9 
10 namespace armnn
11 {
12 // ConstLayerMemoryOptimizer: Create a unique MemBin for each MemBlock and assign it an offset of 0
13 class ConstantMemoryStrategy : public IMemoryOptimizerStrategy
14 {
15 public:
ConstantMemoryStrategy()16     ConstantMemoryStrategy()
17     : m_Name(std::string("ConstantMemoryStrategy"))
18     , m_MemBlockStrategyType(MemBlockStrategyType::SingleAxisPacking) {}
19 
20     std::string GetName() const override;
21 
22     MemBlockStrategyType GetMemBlockStrategyType() const override;
23 
24     std::vector<MemBin> Optimize(std::vector<MemBlock>& memBlocks) override;
25 
26 private:
27     std::string m_Name;
28     MemBlockStrategyType m_MemBlockStrategyType;
29 };
30 
31 } // namespace armnn