ArmNN
 25.11
Loading...
Searching...
No Matches
MemoryOptimizerStrategyLibrary.hpp
Go to the documentation of this file.
1//
2// Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5#pragma once
6
9
13
14#include <map>
15
16namespace armnn
17{
18namespace
19{
20
21static std::map<std::string, std::unique_ptr<IMemoryOptimizerStrategyFactory>>& GetStrategyFactories()
22{
23 static std::map<std::string, std::unique_ptr<IMemoryOptimizerStrategyFactory>> strategies;
24
25 if (strategies.size() == 0)
26 {
27 strategies["ConstantMemoryStrategy"] = std::make_unique<StrategyFactory<ConstantMemoryStrategy>>();
28 strategies["SingleAxisPriorityList"] = std::make_unique<StrategyFactory<SingleAxisPriorityList>>();
29 strategies["StrategyValidator"] = std::make_unique<StrategyFactory<StrategyValidator>>();
30 }
31 return strategies;
32}
33
34} // anonymous namespace
35
36inline std::unique_ptr<IMemoryOptimizerStrategy> GetMemoryOptimizerStrategy(const std::string& strategyName)
37{
38 const auto& strategyFactoryMap = GetStrategyFactories();
39 auto strategyFactory = strategyFactoryMap.find(strategyName);
40 if (strategyFactory != GetStrategyFactories().end())
41 {
42 return strategyFactory->second->CreateMemoryOptimizerStrategy();
43 }
44 return nullptr;
45}
46
47inline const std::vector<std::string> GetMemoryOptimizerStrategyNames()
48{
49 const auto& strategyFactoryMap = GetStrategyFactories();
50 std::vector<std::string> strategyNames;
51 for (const auto& strategyFactory : strategyFactoryMap)
52 {
53 strategyNames.emplace_back(strategyFactory.first);
54 }
55 return strategyNames;
56}
57} // namespace armnn
Copyright (c) 2021 ARM Limited and Contributors.
std::unique_ptr< IMemoryOptimizerStrategy > GetMemoryOptimizerStrategy(const std::string &strategyName)
const std::vector< std::string > GetMemoryOptimizerStrategyNames()