blob: e1feb830348c5512cf7b287e466461ff614c5e25 [file] [log] [blame]
arovir01b0717b52018-09-05 17:03:25 +01001//
Teresa Charlinee5872d2021-12-03 16:07:42 +00002// Copyright © 2017-2021,2023 Arm Ltd and Contributors. All rights reserved.
arovir01b0717b52018-09-05 17:03:25 +01003// 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
Kevin Mayec1e5b82020-02-26 17:00:39 +000012namespace V1_1 = ::android::hardware::neuralnetworks::V1_1;
13
arovir01b0717b52018-09-05 17:03:25 +010014namespace armnn_driver
15{
16namespace hal_1_1
17{
18
19class HalPolicy
20{
21public:
22 using Model = V1_1::Model;
Matthew Bentham9e80cd22019-05-03 22:54:36 +010023 using Operand = V1_0::Operand;
Aron Virginas-Tarcd700e42019-06-14 14:54:52 +010024 using OperandLifeTime = V1_0::OperandLifeTime;
Matthew Bentham9e80cd22019-05-03 22:54:36 +010025 using OperandType = V1_0::OperandType;
arovir01b0717b52018-09-05 17:03:25 +010026 using Operation = V1_1::Operation;
Nikhil Raj77605822018-09-03 11:25:56 +010027 using OperationType = V1_1::OperationType;
arovir01b0717b52018-09-05 17:03:25 +010028 using getSupportedOperations_cb = V1_1::IDevice::getSupportedOperations_1_1_cb;
Kevin May42477c12020-03-26 13:34:14 +000029 using ErrorStatus = V1_0::ErrorStatus;
arovir01b0717b52018-09-05 17:03:25 +010030
31 static bool ConvertOperation(const Operation& operation, const Model& model, ConversionData& data);
32
33private:
Teresa Charlinee5872d2021-12-03 16:07:42 +000034 static bool ConvertElementwiseBinary(const Operation& operation,
35 const Model& model,
36 ConversionData& data,
37 armnn::BinaryOperation binaryOperation);
38
narpra013c052562018-09-17 14:25:04 +010039 static bool ConvertMean(const Operation& operation, const Model& model, ConversionData& data);
Aron Virginas-Tarc921f6b2019-07-25 10:14:33 +010040 static bool ConvertPad(const Operation& operation, const Model& model, ConversionData& data);
Nattapat Chaimanowong81a68342018-11-05 14:04:47 +000041 static bool ConvertSpaceToBatchNd(const Operation& operation, const Model& model, ConversionData& data);
saoste01b8471482018-10-10 09:44:51 +010042 static bool ConvertSqueeze(const Operation& operation, const Model& model, ConversionData& data);
Sadik Armagan758eee82018-11-15 15:34:49 +000043 static bool ConvertStridedSlice(const Operation& operation, const Model& model, ConversionData& data);
saoste01fe463152018-10-18 17:49:56 +010044 static bool ConvertTranspose(const Operation& operation, const Model& model, ConversionData& data);
Éanna Ó Catháin2cd99b92018-11-14 14:33:52 +000045 static bool ConvertBatchToSpaceNd(const Operation& operation, const Model& model, ConversionData& data);
arovir01b0717b52018-09-05 17:03:25 +010046};
47
48} // namespace hal_1_1
49} // namespace armnn_driver