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