blob: 484a99b20fe59dcb9beb064e0485a17fe8284f3d [file] [log] [blame]
arovir01b0717b52018-09-05 17:03:25 +01001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
Matteo Martincigh8b287c22018-09-07 09:25:10 +01008#include "../ConversionUtils.hpp"
arovir01b0717b52018-09-05 17:03:25 +01009
10#include <HalInterfaces.h>
11
12namespace V1_0 = ::android::hardware::neuralnetworks::V1_0;
13
14namespace armnn_driver
15{
16namespace hal_1_0
17{
18
19class HalPolicy
20{
21public:
22 using Model = V1_0::Model;
23 using Operation = V1_0::Operation;
Nikhil Raj77605822018-09-03 11:25:56 +010024 using OperationType = V1_0::OperationType;
arovir01b0717b52018-09-05 17:03:25 +010025 using getSupportedOperations_cb = V1_0::IDevice::getSupportedOperations_cb;
26
27 static bool ConvertOperation(const Operation& operation, const Model& model, ConversionData& data);
28
29private:
30 static bool ConvertAdd(const Operation& operation, const Model& model, ConversionData& data);
31
32 static bool ConvertAveragePool2d(const Operation& operation, const Model& model, ConversionData& data);
33
34 static bool ConvertConcatenation(const Operation& operation, const Model& model, ConversionData& data);
35
36 static bool ConvertConv2d(const Operation& operation, const Model& model, ConversionData& data);
37
38 static bool ConvertDepthwiseConv2d(const Operation& operation, const Model& model, ConversionData& data);
39
40 static bool ConvertFloor(const Operation& operation, const Model& model, ConversionData& data);
41
42 static bool ConvertFullyConnected(const Operation& operation, const Model& model, ConversionData& data);
43
44 static bool ConvertLocalResponseNormalization(const Operation& operation,
45 const Model& model,
46 ConversionData& data);
47
48 static bool ConvertLogistic(const Operation& operation, const Model& model, ConversionData& data);
49
50 static bool ConvertLstm(const Operation& operation, const Model& model, ConversionData& data);
51
52 static bool ConvertL2Normalization(const Operation& operation, const Model& model, ConversionData& data);
53
54 static bool ConvertL2Pool2d(const Operation& operation, const Model& model, ConversionData& data);
55
56 static bool ConvertMaxPool2d(const Operation& operation, const Model& model, ConversionData& data);
57
58 static bool ConvertMul(const Operation& operation, const Model& model, ConversionData& data);
59
60 static bool ConvertReLu(const Operation& operation, const Model& model, ConversionData& data);
61
62 static bool ConvertReLu1(const Operation& operation, const Model& model, ConversionData& data);
63
64 static bool ConvertReLu6(const Operation& operation, const Model& model, ConversionData& data);
65
66 static bool ConvertSoftmax(const Operation& operation, const Model& model, ConversionData& data);
67
68 static bool ConvertTanH(const Operation& operation, const Model& model, ConversionData& data);
69
70 static bool ConvertReshape(const Operation& operation, const Model& model, ConversionData& data);
71
72 static bool ConvertResizeBilinear(const Operation& operation, const Model& model, ConversionData& data);
73};
74
75} // namespace hal_1_0
76} // namespace armnn_driver