aboutsummaryrefslogtreecommitdiff
path: root/shim/sl/canonical/Converter.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'shim/sl/canonical/Converter.hpp')
-rw-r--r--shim/sl/canonical/Converter.hpp164
1 files changed, 164 insertions, 0 deletions
diff --git a/shim/sl/canonical/Converter.hpp b/shim/sl/canonical/Converter.hpp
new file mode 100644
index 0000000000..8549289d69
--- /dev/null
+++ b/shim/sl/canonical/Converter.hpp
@@ -0,0 +1,164 @@
+//
+// Copyright © 2022 Arm Ltd and Contributors. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#pragma once
+
+#include "ConversionUtils.hpp"
+
+#include <nnapi/OperandTypes.h>
+#include <nnapi/Result.h>
+#include <nnapi/Types.h>
+
+#include <armnn/Types.hpp>
+using namespace armnn;
+
+namespace armnn_driver
+{
+
+class Converter
+{
+
+public:
+ using Model = ::android::nn::Model;
+ using Operand = ::android::nn::Operand;
+ using OperandLifeTime = ::android::nn::Operand::LifeTime;
+ using OperandType = ::android::nn::OperandType;
+ using Operation = ::android::nn::Operation;
+ using OperationType = ::android::nn::OperationType;
+ using ErrorStatus = ::android::nn::ErrorStatus;
+ static bool ConvertOperation(const Operation& operation, const Model& model, ConversionData& data);
+
+private:
+ static bool ConvertAdd(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertArgMinMax(const Operation& operation,
+ const Model& model,
+ ConversionData& data,
+ armnn::ArgMinMaxFunction argMinMaxFunction);
+
+ static bool ConvertAveragePool2d(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertBatchToSpaceNd(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertCast(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertComparison(const Operation& operation,
+ const Model& model,
+ ConversionData& data,
+ armnn::ComparisonOperation comparisonOperation);
+
+ static bool ConvertConcatenation(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertConv2d(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertDepthToSpace(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertDepthwiseConv2d(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertDequantize(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertDiv(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertElementwiseUnary(const Operation& operation,
+ const Model& model,
+ ConversionData& data,
+ armnn::UnaryOperation unaryOperation);
+
+ static bool ConvertElu(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertExpandDims(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertFill(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertFloor(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertFullyConnected(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertGather(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertGroupedConv2d(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertHardSwish(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertInstanceNormalization(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertL2Normalization(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertL2Pool2d(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertLocalResponseNormalization(const Operation& operation,
+ const Model& model,
+ ConversionData& data);
+
+ static bool ConvertLogicalBinary(const Operation& operation,
+ const Model& model,
+ ConversionData& data,
+ armnn::LogicalBinaryOperation logicalOperation);
+
+ static bool ConvertLogistic(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertLogSoftmax(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertLstm(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertMaxPool2d(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertMaximum(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertMean(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertMinimum(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertMul(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertPad(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertPadV2(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertPrelu(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertQuantize(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertQuantizedLstm(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertQuantized16BitLstm(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertRank(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertReLu(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertReLu1(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertReLu6(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertReshape(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertResize(const Operation& operation,
+ const Model& model,
+ ConversionData& data,
+ armnn::ResizeMethod resizeMethod);
+
+ static bool ConvertSoftmax(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertSpaceToBatchNd(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertSpaceToDepth(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertSqrt(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertSqueeze(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertStridedSlice(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertSub(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertTanH(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertTranspose(const Operation& operation, const Model& model, ConversionData& data);
+
+ static bool ConvertTransposeConv2d(const Operation& operation, const Model& model, ConversionData& data);
+};
+
+} // namespace armnn_driver