1 // 2 // Copyright © 2017 Arm Ltd. All rights reserved. 3 // SPDX-License-Identifier: MIT 4 // 5 6 #pragma once 7 8 #include "../ConversionUtils.hpp" 9 #include "NamespaceAdaptor.hpp" 10 11 #include <HalInterfaces.h> 12 13 namespace armnn_driver 14 { 15 namespace hal_1_0 16 { 17 18 class HalPolicy 19 { 20 public: 21 using Model = V1_0::Model; 22 using Operand = V1_0::Operand; 23 using OperandLifeTime = V1_0::OperandLifeTime; 24 using OperandType = V1_0::OperandType; 25 using Operation = V1_0::Operation; 26 using OperationType = V1_0::OperationType; 27 using getSupportedOperations_cb = V1_0::IDevice::getSupportedOperations_cb; 28 using ErrorStatus = V1_0::ErrorStatus; 29 30 static bool ConvertOperation(const Operation& operation, const Model& model, ConversionData& data); 31 32 private: 33 static bool ConvertAdd(const Operation& operation, const Model& model, ConversionData& data); 34 35 static bool ConvertAveragePool2d(const Operation& operation, const Model& model, ConversionData& data); 36 37 static bool ConvertConcatenation(const Operation& operation, const Model& model, ConversionData& data); 38 39 static bool ConvertConv2d(const Operation& operation, const Model& model, ConversionData& data); 40 41 static bool ConvertDepthToSpace(const Operation& operation, const Model& model, ConversionData& data); 42 43 static bool ConvertDepthwiseConv2d(const Operation& operation, const Model& model, ConversionData& data); 44 45 static bool ConvertDequantize(const Operation& operation, const Model& model, ConversionData& data); 46 47 static bool ConvertFloor(const Operation& operation, const Model& model, ConversionData& data); 48 49 static bool ConvertFullyConnected(const Operation& operation, const Model& model, ConversionData& data); 50 51 static bool ConvertLocalResponseNormalization(const Operation& operation, 52 const Model& model, 53 ConversionData& data); 54 55 static bool ConvertLogistic(const Operation& operation, const Model& model, ConversionData& data); 56 57 static bool ConvertLstm(const Operation& operation, const Model& model, ConversionData& data); 58 59 static bool ConvertL2Normalization(const Operation& operation, const Model& model, ConversionData& data); 60 61 static bool ConvertL2Pool2d(const Operation& operation, const Model& model, ConversionData& data); 62 63 static bool ConvertMaxPool2d(const Operation& operation, const Model& model, ConversionData& data); 64 65 static bool ConvertMul(const Operation& operation, const Model& model, ConversionData& data); 66 67 static bool ConvertReLu(const Operation& operation, const Model& model, ConversionData& data); 68 69 static bool ConvertReLu1(const Operation& operation, const Model& model, ConversionData& data); 70 71 static bool ConvertReLu6(const Operation& operation, const Model& model, ConversionData& data); 72 73 static bool ConvertSoftmax(const Operation& operation, const Model& model, ConversionData& data); 74 75 static bool ConvertReshape(const Operation& operation, const Model& model, ConversionData& data); 76 77 static bool ConvertResizeBilinear(const Operation& operation, const Model& model, ConversionData& data); 78 79 static bool ConvertSpaceToDepth(const Operation& operation, const Model& model, ConversionData& data); 80 81 static bool ConvertTanH(const Operation& operation, const Model& model, ConversionData& data); 82 83 static bool ValidateConv2dParameters(const Operation& operation); 84 85 static bool ValidateDepthwiseConv2dParameters(const Operation& operation); 86 }; 87 88 } // namespace hal_1_0 89 } // namespace armnn_driver 90