summaryrefslogtreecommitdiff
path: root/runtimes/neurun/frontend/nnapi/wrapper/NNAPIConvert.h
diff options
context:
space:
mode:
Diffstat (limited to 'runtimes/neurun/frontend/nnapi/wrapper/NNAPIConvert.h')
-rw-r--r--runtimes/neurun/frontend/nnapi/wrapper/NNAPIConvert.h81
1 files changed, 81 insertions, 0 deletions
diff --git a/runtimes/neurun/frontend/nnapi/wrapper/NNAPIConvert.h b/runtimes/neurun/frontend/nnapi/wrapper/NNAPIConvert.h
new file mode 100644
index 000000000..bd7fc6cdd
--- /dev/null
+++ b/runtimes/neurun/frontend/nnapi/wrapper/NNAPIConvert.h
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * @file NNAPIConvert.h
+ * @brief This file contains convereter(s)\n
+ * from NNAPI frontend's struct to neurun's internal struct
+ */
+#ifndef __NEURUN_NNAPI_CONVERT_H__
+#define __NEURUN_NNAPI_CONVERT_H__
+
+#include <NeuralNetworks.h>
+
+#include <model/TypeInfo.h>
+#include <model/Shape.h>
+#include <model/InternalType.h>
+
+class NNAPIConvert
+{
+
+public:
+ /**
+ * @brief Convert data type from NNAPI to internal data type
+ * @param[in] type NNAPI's data type
+ * @return neurun's internal data type
+ * @note Now neurun::model::DataType shares the same enum value\n
+ with OperandCode in NeuralNetworks.h.\n
+ If we don't share same value, we must fix this mapping function.
+ */
+ static ::neurun::model::DataType getDataType(OperandCode type);
+
+ /**
+ * @brief Convert operand type info from NNAPI to interanl operand type info
+ * @param[in] type NNAPI's operand type
+ * @return neurun's internal operand type info
+ */
+ static ::neurun::model::TypeInfo getTypeInfo(const ANeuralNetworksOperandType *type);
+
+ /**
+ * @brief Convert operand shape info from NNAPI to internal operand shape
+ * @param[in] type NNAPI's operand type
+ * @return neurun's internal operand shape
+ */
+ static ::neurun::model::Shape getShape(const ANeuralNetworksOperandType *type);
+
+ /**
+ * @brief Calcaulate operand size from NNAPI type
+ * @param[in] type NNAPI's operand type
+ * @return Operand size
+ */
+ static size_t calculateSizeFromType(const ANeuralNetworksOperandType *type);
+
+ /**
+ * @brief Convert NNAPI FuseCode to internal activation type
+ * @param[in] act NNAPI's FuseCode type
+ * @return neurun's internal activation type
+ */
+ static ::neurun::model::Activation getFusedActivation(FuseCode act);
+
+ /**
+ * @brief Convert NNAPI PaddingCode to internal padding type
+ * @param[in] act NNAPI's PaddingCode type
+ * @return neurun's internal padding type
+ */
+ static ::neurun::model::PaddingType getPaddingType(PaddingCode type);
+};
+
+#endif // __NEURUN_NNAPI_CONVERT_H__