blob: d11ae3ca6395cfd91ec707f909228e1f59fcf94c [file] [log] [blame]
Mike Kellyb5fdf382019-06-11 16:35:25 +01001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
8#include "../ConversionUtils.hpp"
9
10#include <HalInterfaces.h>
11
Aron Virginas-Tarfb2fa292019-07-04 11:59:48 +010012#include <armnn/Types.hpp>
13
Mike Kellyb5fdf382019-06-11 16:35:25 +010014namespace armnn_driver
15{
16namespace hal_1_2
17{
18
19class HalPolicy
20{
21public:
22 using Model = V1_2::Model;
23 using Operand = V1_2::Operand;
Aron Virginas-Tarcd700e42019-06-14 14:54:52 +010024 using OperandLifeTime = V1_0::OperandLifeTime;
25 using OperandType = V1_2::OperandType;
Mike Kellyb5fdf382019-06-11 16:35:25 +010026 using Operation = V1_2::Operation;
27 using OperationType = V1_2::OperationType;
28 using ExecutionCallback = V1_2::IExecutionCallback;
29 using getSupportedOperations_cb = V1_2::IDevice::getSupportedOperations_1_2_cb;
30
31 static bool ConvertOperation(const Operation& operation, const Model& model, ConversionData& data);
Aron Virginas-Tar24e699d2019-06-17 14:47:46 +010032
33private:
34 static bool ConvertConv2d(const Operation& operation, const Model& model, ConversionData& data);
Aron Virginas-Tarfb2fa292019-07-04 11:59:48 +010035
Aron Virginas-Tar24e699d2019-06-17 14:47:46 +010036 static bool ConvertDepthwiseConv2d(const Operation& operation, const Model& model, ConversionData& data);
Aron Virginas-Tarfb2fa292019-07-04 11:59:48 +010037
Narumol Prangnawarat95b1ef62019-07-15 12:02:20 +010038 static bool ConvertMaximum(const Operation& operation, const Model& model, ConversionData& data);
39
Ellen Norris-Thompson1cb29aa2019-07-11 17:27:37 +010040 static bool ConvertMinimum(const Operation& operation, const Model& model, ConversionData& data);
41
Aron Virginas-Tarc921f6b2019-07-25 10:14:33 +010042 static bool ConvertPad(const Operation& operation, const Model& model, ConversionData& data);
43
Aron Virginas-Tarcb8ac842019-07-05 15:47:07 +010044 static bool ConvertPadV2(const Operation& operation, const Model& model, ConversionData& data);
45
Matteo Martincigh17ffff32019-06-27 14:12:55 +010046 static bool ConvertPrelu(const Operation& operation, const Model& model, ConversionData& data);
Aron Virginas-Tarfb2fa292019-07-04 11:59:48 +010047
Sadik Armagan61113162019-07-25 09:09:40 +010048 static bool ConvertReLu(const Operation& operation, const Model& model, ConversionData& data);
49
50 static bool ConvertReLu1(const Operation& operation, const Model& model, ConversionData& data);
51
52 static bool ConvertReLu6(const Operation& operation, const Model& model, ConversionData& data);
53
Aron Virginas-Tarfb2fa292019-07-04 11:59:48 +010054 static bool ConvertResize(const Operation& operation,
55 const Model& model,
56 ConversionData& data,
57 armnn::ResizeMethod resizeMethod);
Keith Davisa6bc52f2019-06-26 09:39:49 +010058
Francis Murtagh074c25a2019-07-22 16:40:57 +010059 static bool ConvertSoftmax(const Operation& operation, const Model& model, ConversionData& data);
60
Keith Davisa6bc52f2019-06-26 09:39:49 +010061 static bool ConvertSpaceToDepth(const Operation& operation, const Model& model, ConversionData& data);
Sadik Armagan61113162019-07-25 09:09:40 +010062
63 static bool ConvertTanH(const Operation& operation, const Model& model, ConversionData& data);
Mike Kellyb5fdf382019-06-11 16:35:25 +010064};
65
66} // namespace hal_1_2
Matteo Martincigh17ffff32019-06-27 14:12:55 +010067} // namespace armnn_driver