summaryrefslogtreecommitdiff
path: root/runtime/neurun/core/include
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/neurun/core/include')
-rw-r--r--runtime/neurun/core/include/backend/Backend.h67
-rw-r--r--runtime/neurun/core/include/backend/CustomKernelBuilder.h69
-rw-r--r--runtime/neurun/core/include/backend/ExecTime.h111
-rw-r--r--runtime/neurun/core/include/backend/IConfig.h47
-rw-r--r--runtime/neurun/core/include/backend/IConstantInitializer.h288
-rw-r--r--runtime/neurun/core/include/backend/IKernelGenerator.h63
-rw-r--r--runtime/neurun/core/include/backend/IMemoryManager.h49
-rw-r--r--runtime/neurun/core/include/backend/IShapeFixer.h55
-rw-r--r--runtime/neurun/core/include/backend/ITensorBuilder.h89
-rw-r--r--runtime/neurun/core/include/backend/ITensorManager.h56
-rw-r--r--runtime/neurun/core/include/backend/ITensorRegister.h164
-rw-r--r--runtime/neurun/core/include/backend/JSONExecTime.h96
-rw-r--r--runtime/neurun/core/include/backend/operand/ITensor.h54
-rw-r--r--runtime/neurun/core/include/compiler/Compiler.h91
-rw-r--r--runtime/neurun/core/include/compiler/IExecutionBuilder.h39
-rw-r--r--runtime/neurun/core/include/compiler/SubTensorInfo.h83
-rw-r--r--runtime/neurun/core/include/exec/Execution.h144
-rw-r--r--runtime/neurun/core/include/exec/ExecutionObservers.h83
-rw-r--r--runtime/neurun/core/include/exec/IExecutor.h72
-rw-r--r--runtime/neurun/core/include/exec/IFunction.h37
-rw-r--r--runtime/neurun/core/include/exec/IODescription.h66
-rw-r--r--runtime/neurun/core/include/exec/NopFunction.h54
-rw-r--r--runtime/neurun/core/include/ir/BackendSet.h40
-rw-r--r--runtime/neurun/core/include/ir/Data.h75
-rw-r--r--runtime/neurun/core/include/ir/DataType.h62
-rw-r--r--runtime/neurun/core/include/ir/Graph.h153
-rw-r--r--runtime/neurun/core/include/ir/Index.h42
-rw-r--r--runtime/neurun/core/include/ir/InternalType.h68
-rw-r--r--runtime/neurun/core/include/ir/Layout.h67
-rw-r--r--runtime/neurun/core/include/ir/LowerInfoMap.h42
-rw-r--r--runtime/neurun/core/include/ir/OpCode.h56
-rw-r--r--runtime/neurun/core/include/ir/OpSequence.h106
-rw-r--r--runtime/neurun/core/include/ir/Operand.h130
-rw-r--r--runtime/neurun/core/include/ir/OperandConstraint.h58
-rw-r--r--runtime/neurun/core/include/ir/OperandIndexMap.h34
-rw-r--r--runtime/neurun/core/include/ir/OperandIndexSequence.h60
-rw-r--r--runtime/neurun/core/include/ir/OperandInfo.h90
-rw-r--r--runtime/neurun/core/include/ir/Operands.h39
-rw-r--r--runtime/neurun/core/include/ir/Operation.h71
-rw-r--r--runtime/neurun/core/include/ir/OperationIndexList.h59
-rw-r--r--runtime/neurun/core/include/ir/OperationIndexMap.h34
-rw-r--r--runtime/neurun/core/include/ir/OperationVisitor.h52
-rw-r--r--runtime/neurun/core/include/ir/Operations.Include.h83
-rw-r--r--runtime/neurun/core/include/ir/Operations.h36
-rw-r--r--runtime/neurun/core/include/ir/Operations.lst86
-rw-r--r--runtime/neurun/core/include/ir/Shape.h84
-rw-r--r--runtime/neurun/core/include/ir/Subgraphs.h87
-rw-r--r--runtime/neurun/core/include/ir/TypeInfo.h59
-rw-r--r--runtime/neurun/core/include/ir/operand/LowerInfo.h93
-rw-r--r--runtime/neurun/core/include/ir/operand/ParentInfo.h77
-rw-r--r--runtime/neurun/core/include/ir/operand/PermuteFactor.h130
-rw-r--r--runtime/neurun/core/include/ir/operation/Abs.h49
-rw-r--r--runtime/neurun/core/include/ir/operation/Add.h62
-rw-r--r--runtime/neurun/core/include/ir/operation/ArgMax.h62
-rw-r--r--runtime/neurun/core/include/ir/operation/AvgPool2D.h69
-rw-r--r--runtime/neurun/core/include/ir/operation/BatchToSpaceND.h50
-rw-r--r--runtime/neurun/core/include/ir/operation/Cast.h49
-rw-r--r--runtime/neurun/core/include/ir/operation/Comparison.h72
-rw-r--r--runtime/neurun/core/include/ir/operation/Concat.h59
-rw-r--r--runtime/neurun/core/include/ir/operation/Conv2D.h68
-rw-r--r--runtime/neurun/core/include/ir/operation/Custom.h66
-rw-r--r--runtime/neurun/core/include/ir/operation/DepthToSpace.h63
-rw-r--r--runtime/neurun/core/include/ir/operation/DepthwiseConv2D.h69
-rw-r--r--runtime/neurun/core/include/ir/operation/Dequantize.h49
-rw-r--r--runtime/neurun/core/include/ir/operation/Div.h62
-rw-r--r--runtime/neurun/core/include/ir/operation/EmbeddingLookup.h50
-rw-r--r--runtime/neurun/core/include/ir/operation/Exp.h49
-rw-r--r--runtime/neurun/core/include/ir/operation/Floor.h51
-rw-r--r--runtime/neurun/core/include/ir/operation/FullyConnected.h66
-rw-r--r--runtime/neurun/core/include/ir/operation/Gather.h65
-rw-r--r--runtime/neurun/core/include/ir/operation/HashtableLookup.h57
-rw-r--r--runtime/neurun/core/include/ir/operation/InstanceNorm.h65
-rw-r--r--runtime/neurun/core/include/ir/operation/L2Normalization.h62
-rw-r--r--runtime/neurun/core/include/ir/operation/L2Pool2D.h68
-rw-r--r--runtime/neurun/core/include/ir/operation/LSTM.h89
-rw-r--r--runtime/neurun/core/include/ir/operation/LocalResponseNormalization.h66
-rw-r--r--runtime/neurun/core/include/ir/operation/LogicalAnd.h50
-rw-r--r--runtime/neurun/core/include/ir/operation/LogicalNot.h49
-rw-r--r--runtime/neurun/core/include/ir/operation/LogicalOr.h50
-rw-r--r--runtime/neurun/core/include/ir/operation/Logistic.h49
-rw-r--r--runtime/neurun/core/include/ir/operation/LowerInfo.h54
-rw-r--r--runtime/neurun/core/include/ir/operation/Max.h50
-rw-r--r--runtime/neurun/core/include/ir/operation/MaxPool2D.h68
-rw-r--r--runtime/neurun/core/include/ir/operation/Mean.h62
-rw-r--r--runtime/neurun/core/include/ir/operation/Min.h50
-rw-r--r--runtime/neurun/core/include/ir/operation/Mul.h62
-rw-r--r--runtime/neurun/core/include/ir/operation/Neg.h49
-rw-r--r--runtime/neurun/core/include/ir/operation/OneHot.h60
-rw-r--r--runtime/neurun/core/include/ir/operation/PReLU.h50
-rw-r--r--runtime/neurun/core/include/ir/operation/Pack.h53
-rw-r--r--runtime/neurun/core/include/ir/operation/Pad.h63
-rw-r--r--runtime/neurun/core/include/ir/operation/Permute.h78
-rw-r--r--runtime/neurun/core/include/ir/operation/RNN.h70
-rw-r--r--runtime/neurun/core/include/ir/operation/RSQRT.h49
-rw-r--r--runtime/neurun/core/include/ir/operation/ReLU.h49
-rw-r--r--runtime/neurun/core/include/ir/operation/ReLU1.h49
-rw-r--r--runtime/neurun/core/include/ir/operation/ReLU6.h49
-rw-r--r--runtime/neurun/core/include/ir/operation/ReduceMax.h65
-rw-r--r--runtime/neurun/core/include/ir/operation/ReduceMin.h65
-rw-r--r--runtime/neurun/core/include/ir/operation/ReduceSum.h63
-rw-r--r--runtime/neurun/core/include/ir/operation/Reshape.h51
-rw-r--r--runtime/neurun/core/include/ir/operation/ResizeBilinear.h64
-rw-r--r--runtime/neurun/core/include/ir/operation/SQRT.h49
-rw-r--r--runtime/neurun/core/include/ir/operation/Slice.h64
-rw-r--r--runtime/neurun/core/include/ir/operation/Softmax.h63
-rw-r--r--runtime/neurun/core/include/ir/operation/SpaceToBatchND.h53
-rw-r--r--runtime/neurun/core/include/ir/operation/SpaceToDepth.h63
-rw-r--r--runtime/neurun/core/include/ir/operation/Split.h59
-rw-r--r--runtime/neurun/core/include/ir/operation/SquaredDifference.h50
-rw-r--r--runtime/neurun/core/include/ir/operation/Squeeze.h62
-rw-r--r--runtime/neurun/core/include/ir/operation/StridedSlice.h69
-rw-r--r--runtime/neurun/core/include/ir/operation/Sub.h62
-rw-r--r--runtime/neurun/core/include/ir/operation/Tanh.h49
-rw-r--r--runtime/neurun/core/include/ir/operation/TopKV2.h69
-rw-r--r--runtime/neurun/core/include/ir/operation/Transpose.h64
-rw-r--r--runtime/neurun/core/include/ir/operation/TransposeConv.h67
-rw-r--r--runtime/neurun/core/include/ir/operation/Unpack.h59
-rw-r--r--runtime/neurun/core/include/util/Config.lst43
-rw-r--r--runtime/neurun/core/include/util/ConfigSource.h55
-rw-r--r--runtime/neurun/core/include/util/Coordinates.h103
-rw-r--r--runtime/neurun/core/include/util/EnvConfigSource.h41
-rw-r--r--runtime/neurun/core/include/util/EventCollectorGlobal.h155
-rw-r--r--runtime/neurun/core/include/util/GeneralConfigSource.h44
-rw-r--r--runtime/neurun/core/include/util/IConfigSource.h46
-rw-r--r--runtime/neurun/core/include/util/ITimer.h59
-rw-r--r--runtime/neurun/core/include/util/Index.h154
-rw-r--r--runtime/neurun/core/include/util/ObjectManager.h144
-rw-r--r--runtime/neurun/core/include/util/Padding.h41
-rw-r--r--runtime/neurun/core/include/util/Set.h166
-rw-r--r--runtime/neurun/core/include/util/ShapeInference.h59
-rw-r--r--runtime/neurun/core/include/util/Utils.h51
-rw-r--r--runtime/neurun/core/include/util/feature/Coordinate4D.h111
-rw-r--r--runtime/neurun/core/include/util/feature/nchw/Reader.h120
-rw-r--r--runtime/neurun/core/include/util/feature/nchw/View.h138
-rw-r--r--runtime/neurun/core/include/util/feature/nhwc/Reader.h121
-rw-r--r--runtime/neurun/core/include/util/feature/nhwc/View.h140
-rw-r--r--runtime/neurun/core/include/util/logging.h63
137 files changed, 0 insertions, 9714 deletions
diff --git a/runtime/neurun/core/include/backend/Backend.h b/runtime/neurun/core/include/backend/Backend.h
deleted file mode 100644
index 9c4484fca..000000000
--- a/runtime/neurun/core/include/backend/Backend.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_BACKEND_BACKEND_H__
-#define __NEURUN_BACKEND_BACKEND_H__
-
-#include <memory>
-
-#include "ir/Operands.h"
-
-namespace neurun
-{
-namespace backend
-{
-
-namespace custom
-{
-class IKernelBuilder;
-}
-
-class Backend;
-struct IConfig;
-class IConstantInitializer;
-class IKernelGenerator;
-class IShapeFixer;
-class ITensorRegister;
-struct ITensorBuilder;
-
-class BackendContext
-{
-public:
- const Backend *backend;
- std::shared_ptr<ITensorBuilder> tensor_builder;
- std::shared_ptr<IConstantInitializer> constant_initializer;
- std::shared_ptr<IKernelGenerator> kernel_gen;
- std::shared_ptr<IShapeFixer> shape_fixer;
- std::shared_ptr<ITensorRegister> tensor_register;
-};
-
-class Backend
-{
-public:
- virtual ~Backend() = default;
- virtual std::shared_ptr<neurun::backend::IConfig> config() const = 0;
-
- virtual std::unique_ptr<BackendContext>
- newContext(const ir::Operands &operands,
- const std::shared_ptr<backend::custom::IKernelBuilder> &kb) const = 0;
-};
-
-} // namespace backend
-} // namespace neurun
-
-#endif // __NEURUN_BACKEND_BACKEND_H__
diff --git a/runtime/neurun/core/include/backend/CustomKernelBuilder.h b/runtime/neurun/core/include/backend/CustomKernelBuilder.h
deleted file mode 100644
index 848ebd595..000000000
--- a/runtime/neurun/core/include/backend/CustomKernelBuilder.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_BACKEND_CUSTOM_KERNEL_BUILDER_H__
-#define __NEURUN_BACKEND_CUSTOM_KERNEL_BUILDER_H__
-
-#include "exec/IFunction.h"
-
-#include "misc/tensor/Shape.h"
-#include "ir/DataType.h"
-
-#include <vector>
-#include <memory>
-
-namespace neurun
-{
-namespace backend
-{
-namespace custom
-{
-
-using Shape = nnfw::misc::tensor::Shape;
-
-struct TypeInfo
-{
- Shape shape;
- ir::DataType dtype;
-};
-
-struct CustomKernelConfigParams
-{
- std::vector<void *> input_allocations;
- std::vector<TypeInfo> input_types;
-
- std::vector<void *> output_allocations;
- std::vector<TypeInfo> output_types;
-
- char *userdata;
- size_t userdata_size;
-};
-
-class IKernelBuilder
-{
-public:
- virtual ~IKernelBuilder() = default;
- virtual std::unique_ptr<exec::IFunction> buildKernel(const std::string &id,
- CustomKernelConfigParams &&params) const = 0;
-};
-
-} // namespace custom
-
-} // namespace backend
-
-} // namespace neurun
-
-#endif // __NEURUN_BACKEND_CUSTOM_KERNEL_BUILDER_H__
diff --git a/runtime/neurun/core/include/backend/ExecTime.h b/runtime/neurun/core/include/backend/ExecTime.h
deleted file mode 100644
index 4eaf49fab..000000000
--- a/runtime/neurun/core/include/backend/ExecTime.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_BACKEND_EXEC_TIME_H__
-#define __NEURUN_BACKEND_EXEC_TIME_H__
-
-#include "backend/Backend.h"
-#include "backend/IConfig.h"
-#include "JSONExecTime.h"
-#include <memory>
-#include <limits>
-#include <map>
-#include <unordered_map>
-#include <vector>
-
-namespace neurun
-{
-namespace backend
-{
-class ExecTime
-{
-public:
- explicit ExecTime(const std::vector<const Backend *> &backends) : _json(backends, _measurements)
- {
- }
-
-public:
- /**
- * @brief Get exec time of an operation with input size
- * or linearly interpolated value based on size if there is no record for given size
- *
- * @param[in] backend id of a backend
- * @param[in] operation name of an operation
- * @param[in] quant if input type quantized
- * @param[in] op_size sum of operation's flattened sizes of inputs and outputs
- * @return execution time for given input sizes
- * -1 if there are no records for given parameters (backend, op, quantization).
- */
- int64_t getOperationExecTime(const Backend *backend, const std::string &operation, bool quant,
- uint32_t op_size) const;
- /**
- * @brief Update exec time of the operation on a backend with given input size or
- * add new entity if there is no one.
- *
- * @param[in] backend id of a backend
- * @param[in] operation name of an operation
- * @param[in] quant if input type quantized
- * @param[in] op_size sum of operation's flattened sizes of inputs and outputs
- * @param[in] time real measured value
- */
- void updateOperationExecTime(const Backend *backend, const std::string &operation, bool quant,
- uint32_t op_size, int64_t time);
- /**
- * @brief Get the permute time from one backend to another
- *
- * @param[in] from_backend
- * @param[in] to_backend
- * @param[in] quant if input type quantized
- * @param[in] op_size sum of operation's flattened sizes of inputs and outputs
- * @return permutation time for operation size
- */
- int64_t getPermuteTime(const Backend *from_backend, const Backend *to_backend, bool quant,
- uint32_t op_size) const;
- /**
- * @brief Update permute time from one backend to another
- *
- * @param[in] from_backend
- * @param[in] to_backend
- * @param[in] quant if input type quantized
- * @param[in] time measured permutation time
- * @param[in] op_size sum of operation's flattened sizes of inputs and outputs
- */
- void updatePermuteTime(const Backend *from_backend, const Backend *to_backend, bool quant,
- uint32_t op_size, int64_t time);
- /**
- * @brief Get the max value of int32_t in int64_t
- * @return max value
- */
- static int64_t getMax() { return _MAX; }
- /**
- * @brief Update metrics file with new data.
- */
- void uploadOperationsExecTime() const { _json.uploadOperationsExecTime(); }
- static const int64_t NOT_FOUND = -1;
-
-private:
- /// @brief Measurement data, which is shared with serializer
- MeasurementData _measurements;
- // int64_t::max may cause integer overflow
- static const int64_t _MAX = std::numeric_limits<int32_t>::max();
- /// @brief Serializer
- JSON _json;
-};
-
-} // namespace backend
-} // namespace neurun
-
-#endif // __NEURUN_BACKEND_EXEC_TIME_H__
diff --git a/runtime/neurun/core/include/backend/IConfig.h b/runtime/neurun/core/include/backend/IConfig.h
deleted file mode 100644
index 855f31ef9..000000000
--- a/runtime/neurun/core/include/backend/IConfig.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_BACKEND_ICONFIG_H__
-#define __NEURUN_BACKEND_ICONFIG_H__
-
-#include "util/ITimer.h"
-#include <memory>
-#include <string>
-
-namespace neurun
-{
-namespace backend
-{
-
-struct IConfig
-{
- virtual ~IConfig() = default;
-
- virtual std::string id() = 0;
- virtual bool initialize() = 0;
- // Support permute kernel
- virtual bool SupportPermutation() = 0;
- // Support subtensor allocation
- virtual bool SupportSubTensorAlloc() = 0;
-
- // Timer is used for backend profiling. In case of default (nullptr) timer profiler won't work.
- virtual std::unique_ptr<util::ITimer> timer() { return nullptr; }
-};
-
-} // namespace backend
-} // namespace neurun
-
-#endif // __NEURUN_BACKEND_ICONFIG_H__
diff --git a/runtime/neurun/core/include/backend/IConstantInitializer.h b/runtime/neurun/core/include/backend/IConstantInitializer.h
deleted file mode 100644
index 3cc770b29..000000000
--- a/runtime/neurun/core/include/backend/IConstantInitializer.h
+++ /dev/null
@@ -1,288 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_BACKEND_ICONSTANT_INITIALIZER_H__
-#define __NEURUN_BACKEND_ICONSTANT_INITIALIZER_H__
-
-#include <unordered_map>
-#include <functional>
-
-#include "ITensorBuilder.h"
-#include "ir/Layout.h"
-#include "ir/Operand.h"
-#include "ir/Operands.h"
-#include "ir/OperationVisitor.h"
-#include "ir/OpSequence.h"
-#include "util/logging.h"
-#include "util/Utils.h"
-
-namespace
-{
-template <typename T>
-static void Init(const neurun::ir::Operand &model_obj, neurun::backend::operand::ITensor &obj,
- const bool copy,
- const neurun::ir::Layout frontend_layout = neurun::ir::Layout::UNKNOWN)
-{
- const auto shape = model_obj.shape();
- auto base = reinterpret_cast<const T *>(model_obj.data().base());
-
- obj.access([&](::neurun::backend::operand::ITensor &tensor) {
- switch (shape.rank())
- {
- case 0:
- {
- assert(model_obj.data().size() == sizeof(T));
- const auto value = *reinterpret_cast<const T *>(base);
- T *into = reinterpret_cast<T *>(tensor.buffer());
- *into = value;
- break;
- }
- case 1:
- {
- auto vec_size = shape.dim(0);
- for (int32_t n = 0; n < vec_size; ++n)
- {
- const T *from = reinterpret_cast<const T *>(base) + n;
- const auto value = *from;
-
- T *into = reinterpret_cast<T *>(tensor.buffer()) + n;
-
- *into = value;
- }
- break;
- }
- case 2:
- {
- const int32_t copy_len = shape.dim(1);
-
- for (auto i = 0; i < shape.dim(0); ++i)
- {
- neurun::util::Coordinates coords{i, 0};
- memcpy(tensor.buffer() + tensor.calcOffset(coords), base + i * copy_len,
- copy_len * sizeof(T));
- }
- break;
- }
- case 3:
- {
- const int32_t width = shape.dim(1);
- const int32_t copy_len = shape.dim(2);
-
- for (auto i = 0; i < shape.dim(0); ++i)
- {
- for (auto j = 0; j < shape.dim(1); ++j)
- {
- neurun::util::Coordinates coords{i, j, 0};
- memcpy(tensor.buffer() + tensor.calcOffset(coords),
- base + i * width * copy_len + j * copy_len, copy_len * sizeof(T));
- }
- }
- break;
- }
- case 4:
- {
- const int32_t height = shape.dim(1);
- const int32_t width = shape.dim(2);
- const int32_t copy_len = shape.dim(3);
- for (auto i = 0; i < shape.dim(0); ++i)
- {
- for (auto j = 0; j < shape.dim(1); ++j)
- {
- for (auto k = 0; k < shape.dim(2); ++k)
- {
- if (copy)
- {
- neurun::util::Coordinates coords{i, j, k, 0};
- memcpy(tensor.buffer() + tensor.calcOffset(coords),
- base + i * height * width * copy_len + j * width * copy_len + k * copy_len,
- copy_len * sizeof(T));
- }
- else
- {
- for (auto l = 0; l < shape.dim(3); ++l)
- {
- const auto coords = neurun::util::convertCoordinates(
- {i, j, k, l}, frontend_layout, tensor.layout());
- T *into = reinterpret_cast<T *>(tensor.buffer() + tensor.calcOffset(coords));
- T value = *(base + i * height * width * copy_len + j * width * copy_len +
- k * copy_len + l);
- *into = value;
- }
- }
- }
- }
- }
- break;
- }
- default:
- throw std::runtime_error{"Not yet supported"};
- }
- });
-}
-
-template <typename T>
-void copyInit(const neurun::ir::Operand &model_obj, neurun::backend::operand::ITensor &obj)
-{
- Init<T>(model_obj, obj, true);
-}
-
-template <typename T>
-void permuteInit(const neurun::ir::Operand &model_obj, neurun::backend::operand::ITensor &obj,
- const neurun::ir::Layout frontend_layout)
-{
- const bool copy = frontend_layout == obj.layout();
- Init<T>(model_obj, obj, copy, frontend_layout);
-}
-
-} // namespace
-
-namespace neurun
-{
-namespace backend
-{
-
-class IConstantInitializer : ir::OperationVisitor
-{
-public:
- virtual ~IConstantInitializer() = default;
-
-public:
- void run()
- {
- assert(tensor_builder().get());
- for (const auto &it : _init_map)
- {
- const auto &ind = it.first;
- const auto &fn = it.second;
-
- const auto &model_obj = operands().at(ind);
- auto tensor_obj = tensor_builder()->tensorAt(ind);
- fn(model_obj, *tensor_obj);
- VERBOSE(FillOperandData) << "Fill data for operand " << ind.value() << std::endl;
- }
- _init_map.clear();
- }
-
-public:
- using Initializer = std::function<void(const ir::Operand &, backend::operand::ITensor &)>;
-
- void generate(const ir::OpSequence &subg, const ir::Operands &operands)
- {
- _current_subg_layout = subg.getLayout();
- subg.accept(*this);
- for (const auto &e : subg.operations())
- {
- for (const auto &ind : e.node->getInputs())
- {
- const auto &obj = operands.at(ind);
- if (obj.isConstant() && !exist(ind))
- {
- registerPermuteInitializer(ind, obj);
- }
- }
- }
- }
-
-protected:
- using OperationVisitor::visit;
-
-protected:
- virtual const ir::Operands &operands() const = 0;
- virtual std::shared_ptr<ITensorBuilder> tensor_builder() const = 0;
-
-protected:
- void registerCopyInitializer(const ir::OperandIndex &index, const ir::Operand &obj)
- {
- // For only CONSTANTS
- // TODO Add to check if tensor has been allocated
- if (!obj.isConstant())
- return;
-
- const auto type = obj.typeInfo().type();
- using ir::DataType;
-
- switch (type)
- {
- case DataType::FLOAT32:
- _init_map[index] = copyInit<float>;
- break;
- case DataType::INT32:
- _init_map[index] = copyInit<int32_t>;
- break;
- case DataType::UINT32:
- _init_map[index] = copyInit<uint32_t>;
- break;
- case DataType::BOOL8:
- case DataType::QUANT8_ASYMM:
- _init_map[index] = copyInit<uint8_t>;
- break;
- case DataType::QUANT8_SYMM:
- _init_map[index] = copyInit<int8_t>;
- break;
- default:
- throw std::runtime_error("Not supported, yet");
- break;
- }
- }
-
-protected:
- void registerPermuteInitializer(const ir::OperandIndex &index, const ir::Operand &obj)
- {
- // For only CONSTANTS
- // TODO Add to check if tensor has been allocated
- if (!obj.isConstant())
- return;
-
- const auto type = obj.typeInfo().type();
- using ir::DataType;
- using namespace std::placeholders;
-
- switch (type)
- {
- case DataType::FLOAT32:
- _init_map[index] = std::bind(permuteInit<float>, _1, _2, _current_subg_layout);
- break;
- case DataType::INT32:
- _init_map[index] = std::bind(permuteInit<int32_t>, _1, _2, _current_subg_layout);
- break;
- case DataType::UINT32:
- _init_map[index] = std::bind(permuteInit<uint32_t>, _1, _2, _current_subg_layout);
- break;
- case DataType::BOOL8:
- case DataType::QUANT8_ASYMM:
- _init_map[index] = std::bind(permuteInit<uint8_t>, _1, _2, _current_subg_layout);
- break;
- case DataType::QUANT8_SYMM:
- _init_map[index] = std::bind(permuteInit<int8_t>, _1, _2, _current_subg_layout);
- break;
- default:
- throw std::runtime_error("Not supported, yet");
- break;
- }
- }
-
-private:
- bool exist(const ir::OperandIndex &ind) { return _init_map.find(ind) != _init_map.end(); }
-
-protected:
- std::unordered_map<ir::OperandIndex, Initializer> _init_map;
- ir::Layout _current_subg_layout;
-};
-
-} // namespace backend
-} // namespace neurun
-
-#endif // __NEURUN_BACKEND_ICONSTANT_INITIALIZER_H__
diff --git a/runtime/neurun/core/include/backend/IKernelGenerator.h b/runtime/neurun/core/include/backend/IKernelGenerator.h
deleted file mode 100644
index 4540e81d2..000000000
--- a/runtime/neurun/core/include/backend/IKernelGenerator.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_BACKEND_IKERNEL_GENERATOR_H__
-#define __NEURUN_BACKEND_IKERNEL_GENERATOR_H__
-
-#include <memory>
-#include <functional>
-
-#include "ITensorBuilder.h"
-#include "compiler/IExecutionBuilder.h"
-#include "ir/OperationVisitor.h"
-#include "ir/OpSequence.h"
-#include "cpp14/memory.h"
-
-namespace neurun
-{
-namespace backend
-{
-
-class IKernelGenerator : public ir::OperationVisitor
-{
-public:
- virtual ~IKernelGenerator() = default;
-
- void generate(const ir::OpSequence &subg, neurun::compiler::IExecutionBuilder *executionBuilder)
- {
- _execution_builder = executionBuilder;
- subg.accept(*this);
- }
-
-protected:
- using OperationVisitor::visit;
-
-#define OP(InternalName) \
- void visit(const ir::operation::InternalName &) override \
- { \
- throw std::runtime_error("KernelGenerator: NYI for operation '" #InternalName "'"); \
- }
-#include "ir/Operations.lst"
-#undef OP
-
-protected:
- neurun::compiler::IExecutionBuilder *_execution_builder;
-};
-
-} // namespace backend
-} // namespace neurun
-
-#endif // __NEURUN_BACKEND_IKERNEL_GENERATOR_H__
diff --git a/runtime/neurun/core/include/backend/IMemoryManager.h b/runtime/neurun/core/include/backend/IMemoryManager.h
deleted file mode 100644
index b06bab872..000000000
--- a/runtime/neurun/core/include/backend/IMemoryManager.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_BACKEND_IMEMORY_MANAGER_H__
-#define __NEURUN_BACKEND_IMEMORY_MANAGER_H__
-
-namespace neurun
-{
-namespace backend
-{
-
-struct IMemoryManager
-{
- virtual ~IMemoryManager() = default;
-
- virtual void allocate(void) = 0;
- virtual void deallocate(void) = 0;
-};
-
-} // namespace backend
-} // namespace neurun
-
-#include <unordered_set>
-#include <memory>
-
-namespace neurun
-{
-namespace backend
-{
-
-using MemoryManagerSet = std::unordered_set<std::unique_ptr<backend::IMemoryManager>>;
-
-} // namespace backend
-} // namespace neurun
-
-#endif // __NEURUN_BACKEND_IMEMORY_MANAGER_H__
diff --git a/runtime/neurun/core/include/backend/IShapeFixer.h b/runtime/neurun/core/include/backend/IShapeFixer.h
deleted file mode 100644
index 8168e2a11..000000000
--- a/runtime/neurun/core/include/backend/IShapeFixer.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_BACKEND_ISHAPE_FIXER_H__
-#define __NEURUN_BACKEND_ISHAPE_FIXER_H__
-
-#include <memory>
-#include <functional>
-
-#include "ir/LowerInfoMap.h"
-#include "ITensorBuilder.h"
-#include "ir/OperationVisitor.h"
-#include "ir/OpSequence.h"
-#include "cpp14/memory.h"
-
-namespace neurun
-{
-namespace backend
-{
-
-class IShapeFixer : public ir::OperationVisitor
-{
-public:
- virtual ~IShapeFixer() = default;
-
-protected:
-#define OP(InternalName) \
- void visit(const ir::operation::InternalName &) override \
- { \
- throw std::runtime_error("ShapeFixer: NYI for operation '" #InternalName "'"); \
- }
-#include "ir/Operations.lst"
-#undef OP
-
-public:
- void fix(const ir::OpSequence &op_seq) { op_seq.accept(*this); };
-};
-
-} // namespace backend
-} // namespace neurun
-
-#endif // __NEURUN_BACKEND_ISHAPE_FIXER_H__
diff --git a/runtime/neurun/core/include/backend/ITensorBuilder.h b/runtime/neurun/core/include/backend/ITensorBuilder.h
deleted file mode 100644
index 5eb4ab2d8..000000000
--- a/runtime/neurun/core/include/backend/ITensorBuilder.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_BACKEND_ITENSOR_BUILDER_H__
-#define __NEURUN_BACKEND_ITENSOR_BUILDER_H__
-
-#include <map>
-
-#include "ir/Index.h"
-#include "ir/OperandInfo.h"
-#include "ir/Operation.h"
-#include "ir/Layout.h"
-#include "operand/ITensor.h"
-#include "compiler/SubTensorInfo.h"
-#include "ITensorManager.h"
-
-namespace neurun
-{
-namespace backend
-{
-
-struct ITensorBuilder
-{
- using IterateFunction = std::function<void(const ir::OperandIndex &)>;
-
- virtual ~ITensorBuilder(void) = default;
-
- // TODO Merge registerTensorInfo and registerSubTensorInfo using abstraction by internal class
- /**
- * @brief Register tensor information to allocate on backend
- */
- virtual void registerTensorInfo(const ir::OperandIndex &, const ir::OperandInfo &,
- ir::Layout backend_layout, bool as_const) = 0;
- /**
- * @brief Register subtensor information to allocate on backend
- */
- virtual void registerSubTensorInfo(const ir::OperandIndex &, const compiler::SubTensorInfo &) = 0;
-
- virtual void notifyFirstUse(const ir::OperandIndex &) = 0;
- virtual void notifyLastUse(const ir::OperandIndex &) = 0;
-
- virtual bool isRegistered(const ir::OperandIndex &) const = 0;
-
- virtual void prepare(void) = 0;
- virtual void allocateConsts() = 0;
- virtual void allocateNonconsts() = 0;
- virtual void postFunctionPrepare() = 0;
- virtual void finalize() = 0;
-
- virtual std::shared_ptr<::neurun::backend::operand::ITensor>
- tensorAt(const ir::OperandIndex &ind) = 0;
- virtual void iterate(const IterateFunction &fn) = 0;
-
- virtual void preVisit(const ir::Operation &) = 0;
- virtual void postVisit(const ir::Operation &) = 0;
-
- virtual std::unique_ptr<ITensorManager> releaseTensorManager(void) = 0;
-};
-
-} // namespace backend
-} // namespace neurun
-
-#include <unordered_set>
-#include <memory>
-
-namespace neurun
-{
-namespace backend
-{
-
-using TensorBuilderSet = std::unordered_set<std::shared_ptr<backend::ITensorBuilder>>;
-
-} // namespace backend
-} // namespace neurun
-
-#endif // __NEURUN_BACKEND_ITENSOR_BUILDER_H__
diff --git a/runtime/neurun/core/include/backend/ITensorManager.h b/runtime/neurun/core/include/backend/ITensorManager.h
deleted file mode 100644
index 74506ef59..000000000
--- a/runtime/neurun/core/include/backend/ITensorManager.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_BACKEND_ITENSOR_MANAGER_H__
-#define __NEURUN_BACKEND_ITENSOR_MANAGER_H__
-
-namespace neurun
-{
-namespace backend
-{
-
-// NOTE This name ITensorManager has been discussed whether or not the name is proper.
-// Anyone can argue with any better name.
-/**
- * @brief Interface as an abstract tensor manager which has MemoryManager
- */
-struct ITensorManager
-{
- virtual ~ITensorManager() = default;
-
- virtual void allocateConsts(void) = 0;
- virtual void allocateNonconsts(void) = 0;
- virtual void deallocateConsts(void) = 0;
- virtual void deallocateNonconsts(void) = 0;
-};
-
-} // namespace backend
-} // namespace neurun
-
-#include <unordered_set>
-#include <memory>
-
-namespace neurun
-{
-namespace backend
-{
-
-using TensorManagerSet = std::unordered_set<std::unique_ptr<backend::ITensorManager>>;
-
-} // namespace backend
-} // namespace neurun
-
-#endif // __NEURUN_BACKEND_ITENSOR_MANAGER_H__
diff --git a/runtime/neurun/core/include/backend/ITensorRegister.h b/runtime/neurun/core/include/backend/ITensorRegister.h
deleted file mode 100644
index 9e554ab77..000000000
--- a/runtime/neurun/core/include/backend/ITensorRegister.h
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_BACKEND_ITENSOR_REGISTER_H__
-#define __NEURUN_BACKEND_ITENSOR_REGISTER_H__
-
-#include "compiler/SubTensorInfo.h"
-#include "ir/LowerInfoMap.h"
-#include "ir/operand/ParentInfo.h"
-#include "ITensorBuilder.h"
-#include "ir/Layout.h"
-#include "ir/OperandIndexSequence.h"
-#include "ir/OperandInfo.h"
-#include "ir/Operands.h"
-#include "ir/OperationVisitor.h"
-
-namespace
-{
-
-neurun::ir::Shape permuteTensorShape(const neurun::ir::Shape &shape,
- neurun::ir::Layout frontend_layout,
- neurun::ir::Layout backend_layout)
-{
- assert(shape.rank() <= 4);
- neurun::ir::Shape backend_shape{shape};
- if (shape.rank() == 4 && frontend_layout == neurun::ir::Layout::NHWC &&
- backend_layout == neurun::ir::Layout::NCHW)
- {
- backend_shape.dim(1) = shape.dim(3);
- backend_shape.dim(2) = shape.dim(1);
- backend_shape.dim(3) = shape.dim(2);
- }
- else if (shape.rank() == 4 && frontend_layout == neurun::ir::Layout::NCHW &&
- backend_layout == neurun::ir::Layout::NHWC)
- {
- backend_shape.dim(1) = shape.dim(2);
- backend_shape.dim(2) = shape.dim(3);
- backend_shape.dim(3) = shape.dim(1);
- }
- return backend_shape;
-}
-} // namespace
-
-namespace neurun
-{
-namespace backend
-{
-
-class ITensorRegister : public ir::OperationVisitor
-{
-public:
- virtual ~ITensorRegister() = default;
-
-public:
- void registerTensors(const ir::OpSequence &subg, const ir::LowerInfoMap *lower_info_map)
- {
- _current_subg_layout = subg.getLayout();
- _lower_info_map = lower_info_map;
- assert(_lower_info_map != nullptr);
- assert(tensor_builder().get() != nullptr);
- subg.accept(*this);
- }
-
-protected:
- virtual const ir::Operands &operands() const = 0;
- virtual std::shared_ptr<ITensorBuilder> tensor_builder() const = 0;
- virtual bool supportSubTensor() const = 0;
-
-protected:
-#define OP(InternalName) \
- void visit(const ir::operation::InternalName &node) override \
- { \
- ir::OperandIndexSequence indices{node.getInputs()}; \
- indices.append(node.getOutputs()); \
- for (const auto &index : indices) \
- { \
- defaultRegisterTensorInfo(index); \
- } \
- }
-#include "ir/Operations.lst"
-#undef OP
-
-protected:
- void defaultRegisterTensorInfo(const ir::OperandIndex &index) const
- {
- if (tensor_builder()->isRegistered(index))
- {
- return;
- }
-
- const auto &obj = operands().at(index);
- const auto frontend_layout = frontendLayout();
- const auto backend_layout = backendLayout(index);
- if (supportSubTensor() && obj.parent_info() != nullptr)
- {
- tensor_builder()->registerSubTensorInfo(
- index, generateSubTensorInfo(obj, frontend_layout, backend_layout));
- }
- else
- {
- ir::OperandInfo backend_info{permuteTensorShape(obj.shape(), frontend_layout, backend_layout),
- obj.typeInfo()};
- tensor_builder()->registerTensorInfo(index, backend_info, backend_layout, obj.isConstant());
- }
- }
-
-protected:
- ir::Layout frontendLayout() const { return _current_subg_layout; }
- ir::Layout backendLayout(const ir::OperandIndex &index) const
- {
- assert(_lower_info_map != nullptr);
- const auto lower_info = _lower_info_map->operand.at(index).get();
- return lower_info->def_factors().getOnlyElement().layout();
- }
-
-private:
- compiler::SubTensorInfo generateSubTensorInfo(const ir::Operand &obj, ir::Layout frontend_layout,
- ir::Layout backend_layout) const
- {
- assert(obj.shape().rank() <= 4);
- const auto parent_index = obj.parent_info()->parent();
- auto shape = obj.shape();
- auto offset = obj.parent_info()->offset();
- if (operands().at(parent_index).shape().rank() == 4 && frontend_layout == ir::Layout::NHWC &&
- backend_layout == ir::Layout::NCHW)
- {
- shape.extendRank(4);
- offset = {offset[0], offset[3], offset[1], offset[2]};
- }
- else if (operands().at(parent_index).shape().rank() == 4 &&
- frontend_layout == ir::Layout::NHWC && backend_layout == ir::Layout::NCHW)
- {
- shape.extendRank(4);
- offset = {offset[0], offset[2], offset[3], offset[1]};
- }
- ir::Operand subtensor_obj{permuteTensorShape(shape, frontend_layout, backend_layout),
- obj.typeInfo()};
- subtensor_obj.parent_info(
- nnfw::cpp14::make_unique<ir::operand::ParentInfo>(parent_index, offset));
- return compiler::SubTensorInfo{subtensor_obj};
- }
-
-private:
- ir::Layout _current_subg_layout;
- const ir::LowerInfoMap *_lower_info_map{nullptr};
-};
-
-} // namespace backend
-} // namespace neurun
-
-#endif // __NEURUN_BACKEND_ITENSOR_REGISTER_H__
diff --git a/runtime/neurun/core/include/backend/JSONExecTime.h b/runtime/neurun/core/include/backend/JSONExecTime.h
deleted file mode 100644
index 84505e10f..000000000
--- a/runtime/neurun/core/include/backend/JSONExecTime.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_BACKEND_JSON_EXEC_TIME_H__
-#define __NEURUN_BACKEND_JSON_EXEC_TIME_H__
-
-#include <fstream>
-#include <unordered_map>
-#include <map>
-#include <vector>
-#include "backend/Backend.h"
-#include "backend/IConfig.h"
-
-namespace neurun
-{
-namespace backend
-{
-
-/**
- * @brief table, that contains execution time of an operation on some backend for different input
- * sizes and transfer time from one backend to another for various input sizes (permutation time)
- *
- * backend -> op -> quant-> size --> time
- * _measurements[Backend*]["string"][bool][uint32_t] = int64_t
- */
-using MeasurementData = std::unordered_map<
- const Backend *,
- std::unordered_map<std::string, std::unordered_map<bool, std::map<uint32_t, int64_t>>>>;
-
-class JSON
-{
-public:
- explicit JSON(const std::vector<const Backend *> &backends, MeasurementData &measurements)
- : _measurement_file("exec_time.json"), _backends(), _measurements(measurements)
- {
- for (const auto b : backends)
- {
- _backends.emplace(b->config()->id(), b);
- }
- loadOperationsExecTime();
- };
- /**
- * @brief Update _operations_exec_time_file with new data.
- */
- void uploadOperationsExecTime() const;
-
-private:
- ///@brief file containing measurements
- std::string _measurement_file;
- std::unordered_map<std::string, const Backend *> _backends;
- std::unordered_map<
- const Backend *,
- std::unordered_map<std::string, std::unordered_map<bool, std::map<uint32_t, int64_t>>>>
- &_measurements;
- /**
- * @brief Helper function for inserting data to OperationExecTimes
- *
- * @param backend String name of backend
- * @param operation String name of operation
- * @param quant if input type quantized
- * @param stream File stream
- */
- void readOperation(const std::string &backend, const std::string &operation, bool quant,
- std::ifstream &stream);
-
- /**
- * @brief Helper function for writing OperationExecTimes to stream
- *
- * @param operation_info Map of operations execution information
- * @param stream File stream
- */
- void printOperation(const std::map<uint32_t, int64_t> &operation_info,
- std::ofstream &stream) const;
- /**
- * @brief Parse and load operations_exec_time from _operations_exec_time_file.
- */
- void loadOperationsExecTime();
-};
-
-} // namespace backend
-} // namespace neurun
-
-#endif // __NEURUN_BACKEND_JSON_EXEC_TIME_H__
diff --git a/runtime/neurun/core/include/backend/operand/ITensor.h b/runtime/neurun/core/include/backend/operand/ITensor.h
deleted file mode 100644
index c278b01a0..000000000
--- a/runtime/neurun/core/include/backend/operand/ITensor.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_BACKEND_OPERAND_I_TENSOR_H__
-#define __NEURUN_BACKEND_OPERAND_I_TENSOR_H__
-
-#include <cstring>
-#include <cstdint>
-#include <functional>
-
-#include "ir/Layout.h"
-#include "util/Coordinates.h"
-
-namespace neurun
-{
-namespace backend
-{
-namespace operand
-{
-
-class ITensor
-{
-public:
- virtual ~ITensor() = default;
-
-public:
- virtual uint8_t *buffer() const = 0;
- virtual size_t total_size() const = 0;
- virtual size_t dimension(size_t index) const = 0;
- virtual size_t num_dimensions() const = 0;
- virtual size_t calcOffset(const neurun::util::Coordinates &coords) const = 0;
- virtual ir::Layout layout() const = 0;
- virtual bool has_padding() const = 0;
- virtual void access(const std::function<void(ITensor &tensor)> &fn) = 0;
-};
-
-} // namespace operand
-} // namespace backend
-} // namespace neurun
-
-#endif // __NEURUN_BACKEND_OPERAND_I_TENSOR_H__
diff --git a/runtime/neurun/core/include/compiler/Compiler.h b/runtime/neurun/core/include/compiler/Compiler.h
deleted file mode 100644
index 797fc77ad..000000000
--- a/runtime/neurun/core/include/compiler/Compiler.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (c) 2018 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 Compiler.h
- * @brief This file contains Compiler class to define and run compilation phase
- */
-
-#ifndef __NEURUN_COMPILER_COMPILE_H_
-#define __NEURUN_COMPILER_COMPILE_H_
-
-#include "ir/Graph.h"
-#include "exec/IExecutor.h"
-
-namespace neurun
-{
-
-namespace compiler
-{
-
-enum class State
-{
- CREATED, // Before compilation
- STARTED, // Compile is started
- LOWERED, // Backend is decided
- COMPILED // Success compilation
-};
-
-/**
- * @brief Class to compile graph model
- */
-class Compiler
-{
-public:
- /**
- * @brief Construct a new Compiler object
- * @param[in] model Graph model
- */
- Compiler(const std::shared_ptr<ir::Graph> &graph)
- : _graph{graph}, _executor{nullptr}, _state{State::CREATED}
- {
- // DO NOTHING
- }
-
-public:
- /**
- * @brief Run compilation. Compilation result will be saved in _plan
- */
- void compile(void);
- /**
- * @brief Pass plan reference
- * @param[out] plan Plan reference to return\n
- * Set nullptr if compile is not run yet
- */
- void release(std::shared_ptr<exec::IExecutor> &executor) { executor = _executor; }
-
- void state(State state) { _state = state; }
- State state(void) const { return _state; }
-
- /**
- * @brief Check if model can compile
- * @return @c true if model can compile, otherwise @c false
- * @note This method don't check model correctness,\n
- * so model verification should be done before calling this method
- */
- bool checkCompilable();
-
-private:
- std::shared_ptr<ir::Graph> _graph;
- std::shared_ptr<exec::IExecutor> _executor;
- State _state;
-};
-
-} // namespace compiler
-
-} // namespace neurun
-
-#endif // __NEURUN_COMPILER_COMPILE_H_
diff --git a/runtime/neurun/core/include/compiler/IExecutionBuilder.h b/runtime/neurun/core/include/compiler/IExecutionBuilder.h
deleted file mode 100644
index c5a06fec0..000000000
--- a/runtime/neurun/core/include/compiler/IExecutionBuilder.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_COMPILER_I_EXECUTION_BUILDER_H__
-#define __NEURUN_COMPILER_I_EXECUTION_BUILDER_H__
-
-#include <memory>
-
-#include "exec/IFunction.h"
-
-namespace neurun
-{
-namespace compiler
-{
-
-struct IExecutionBuilder
-{
- virtual ~IExecutionBuilder() = default;
-
- virtual void append(std::unique_ptr<::neurun::exec::IFunction> &&f) = 0;
-};
-
-} // namespace compiler
-} // namespace neurun
-
-#endif // __NEURUN_COMPILER_I_EXECUTION_BUILDER_H__
diff --git a/runtime/neurun/core/include/compiler/SubTensorInfo.h b/runtime/neurun/core/include/compiler/SubTensorInfo.h
deleted file mode 100644
index 18cab466b..000000000
--- a/runtime/neurun/core/include/compiler/SubTensorInfo.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (c) 2018 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 SubTensorInfo.h
- * @brief This file contains SubTensorInfo to represent subsumption between tensors
- * for backend tensor allocation
- */
-#ifndef __NEURUN_COMPILER_SUBTENSOR_INFO_H__
-#define __NEURUN_COMPILER_SUBTENSOR_INFO_H__
-
-#include "ir/Operand.h"
-
-namespace neurun
-{
-namespace compiler
-{
-
-/**
- * @brief Class to represent information of subtensor
- */
-class SubTensorInfo
-{
-public:
- SubTensorInfo() = delete;
-
- /**
- * @brief Construct a new SubTensorInfo object
- * @param[in] obj SubTensor object
- */
- SubTensorInfo(const ir::Operand &obj)
- : _parent{obj.parent_info()->parent()}, _shape{obj.shape()}, _type{obj.typeInfo()},
- _offset{obj.parent_info()->offset()}
- {
- // DO NOTHING
- }
-
-public:
- /**
- * @brief Return parent tensor index
- * @return Parent tensor index
- */
- const ir::OperandIndex parent(void) const { return _parent; }
- /**
- * @brief Return tensor shape
- * @return Tensor shape
- */
- const ir::Shape &shape(void) const { return _shape; }
- /**
- * @brief Return tensor type
- * @return Tensor type
- */
- const ir::TypeInfo &type(void) const { return _type; }
- /**
- * @brief Return tensor's offset in parent tensor
- * @return Tensor offset
- */
- const neurun::util::Coordinates offset(void) const { return _offset; }
-
-private:
- const ir::OperandIndex _parent;
- const ir::Shape _shape;
- const ir::TypeInfo _type;
- const neurun::util::Coordinates _offset;
-};
-
-} // compiler
-} // neurun
-
-#endif // __NEURUN_COMPILER_SUBTENSOR_INFO_H__
diff --git a/runtime/neurun/core/include/exec/Execution.h b/runtime/neurun/core/include/exec/Execution.h
deleted file mode 100644
index 7304f8aab..000000000
--- a/runtime/neurun/core/include/exec/Execution.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * 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 Execution.h
- * @brief This file defines execution
- */
-#ifndef __NEURUN_EXEC_EXECUTION_H__
-#define __NEURUN_EXEC_EXECUTION_H__
-
-#include "ir/Layout.h"
-#include "exec/IExecutor.h"
-#include "IODescription.h"
-
-#include <thread>
-
-namespace neurun
-{
-namespace exec
-{
-
-/**
- * @brief Class to define execution instance to collect input/output information for inference
- * and prepare executor run (TODO)
- */
-class Execution
-{
-
-public:
- /**
- * @brief Construct a new Execution object
- * @param[in] executor Model executor
- */
- Execution(const std::shared_ptr<IExecutor> &executor);
-
-public:
- /**
- * @brief Returns graph object
- * @return Graph object
- */
- const ir::Graph &graph() const { return _executor->graph(); }
- /**
- * @brief Set input data's information
- * @param[in] index Input index
- * @param[in] buffer Input data's buffer pointer
- * @param[in] length Input data's length
- * @param[in] layout Input data's data format
- */
- void setInput(const ir::IOIndex &index, const void *buffer, size_t length,
- ir::Layout layout = ir::Layout::NHWC);
- /**
- * @brief Set input data's information, especially to specify unknown dimensions on model
- * build time.
- * @param[in] index Input index
- * @param[in] type Input data's type info
- * @param[in] shape Input data's shape
- * @param[in] buffer Input data's buffer pointer
- * @param[in] length Input data's length
- * @param[in] layout Input data's data format
- */
- void setInput(const ir::IOIndex &index, const ir::TypeInfo &type, const ir::Shape &shape,
- const void *buffer, size_t length, ir::Layout layout = ir::Layout::NHWC);
- /**
- * @brief Set output data's information
- * @param[in] index Output index
- * @param[in] buffer Output data's buffer pointer
- * @param[in] length Output data's length
- * @param[in] layout Output data's data format
- */
- void setOutput(const ir::IOIndex &index, void *buffer, size_t length,
- ir::Layout layout = ir::Layout::NHWC);
- /**
- * @brief Set output data's information, especially to specify unknown dimensions on model
- * build time.
- * @param[in] index Output index
- * @param[in] type Output data's type info
- * @param[in] shape Output data's shape
- * @param[in] buffer Output data's buffer pointer
- * @param[in] length Output data's length
- * @param[in] layout Output data's data format
- */
- void setOutput(const ir::IOIndex &index, const ir::TypeInfo &type, const ir::Shape &shape,
- void *buffer, size_t length, ir::Layout layout = ir::Layout::NHWC);
- /**
- * @brief Set input data's data format
- * @param[in] index Input index
- * @param[in] layout Input data's data format
- */
- void setInputLayout(const ir::IOIndex &index, ir::Layout layout);
- /**
- * @brief Set output data's data format
- * @param[in] index Output index
- * @param[in] layout Output data's data format
- */
- void setOutputLayout(const ir::IOIndex &index, ir::Layout layout);
- /**
- * @brief Execution
- * @note It should be called after setting input and output buffer
- */
- void execute();
-
- /**
- * @brief Start asynchronous execution
- * @note It returns after execution thread is started
- * It should be called after setting input and output buffer
- */
- void startExecute(void);
-
- /**
- * @brief Return when execution is finished
- * @note It waits until execution is finished
- */
- void waitFinish(void);
-
- /**
- * @brief Check execution is finished
- * @return @c true if execution is finished, otherwise @c false
- */
- bool isFinished(void) const;
-
-private:
- const std::shared_ptr<IExecutor> _executor;
- IODescription _io_desc;
- std::unique_ptr<std::thread> _exec_thread;
- bool finished{false};
-};
-
-} // namespace exec
-} // namespace neurun
-
-#endif // __NEURUN_EXEC_EXECUTION_H__
diff --git a/runtime/neurun/core/include/exec/ExecutionObservers.h b/runtime/neurun/core/include/exec/ExecutionObservers.h
deleted file mode 100644
index ca658c706..000000000
--- a/runtime/neurun/core/include/exec/ExecutionObservers.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_EXEC_OBSREVERS_H__
-#define __NEURUN_EXEC_OBSREVERS_H__
-
-#include "exec/IFunction.h"
-#include "ir/OpSequence.h"
-#include "backend/ExecTime.h"
-#include "util/ITimer.h"
-#include "IExecutor.h"
-#include "misc/EventCollector.h"
-#include "misc/EventRecorder.h"
-
-namespace neurun
-{
-namespace exec
-{
-class IExecutionObserver
-{
-public:
- /// @brief Invoked just before model (not individual operation) execution begins
- virtual void handleBegin(IExecutor *) { return; }
-
- virtual void handleBegin(IExecutor *, const ir::OpSequence *, const backend::Backend *) = 0;
- virtual void handleEnd(IExecutor *, const ir::OpSequence *, const backend::Backend *) = 0;
-
- /// @brief Invoked just after model (not individual operation) execution ends
- virtual void handleEnd(IExecutor *) { return; }
-
- virtual ~IExecutionObserver() = default;
-};
-
-class ProfileObserver : public IExecutionObserver
-{
-public:
- explicit ProfileObserver(std::shared_ptr<backend::ExecTime> et) : _et(std::move(et)) {}
- void handleBegin(IExecutor *, const ir::OpSequence *, const backend::Backend *) override;
- void handleEnd(IExecutor *, const ir::OpSequence *, const backend::Backend *) override;
-
- void handleEnd(IExecutor *) override { _et->uploadOperationsExecTime(); }
-
-private:
- std::unique_ptr<util::ITimer> _timer;
- std::shared_ptr<backend::ExecTime> _et;
-};
-
-class ChromeTracingObserver : public IExecutionObserver
-{
-public:
- ChromeTracingObserver(const std::string &filepath);
- ~ChromeTracingObserver();
- void handleBegin(IExecutor *) override;
- void handleBegin(IExecutor *, const ir::OpSequence *, const backend::Backend *) override;
- void handleEnd(IExecutor *, const ir::OpSequence *, const backend::Backend *) override;
- void handleEnd(IExecutor *) override;
-
-private:
- static std::string subgraphTag(const ir::OpSequence *op_seq);
-
-private:
- std::ofstream _ofs;
- EventRecorder _recorder;
- EventCollector _collector;
-};
-
-} // namespace exec
-} // namespace neurun
-
-#endif // __NEURUN_EXEC_OBSREVERS_H__
diff --git a/runtime/neurun/core/include/exec/IExecutor.h b/runtime/neurun/core/include/exec/IExecutor.h
deleted file mode 100644
index de3291388..000000000
--- a/runtime/neurun/core/include/exec/IExecutor.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * 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 IExecutor.h
- * @brief This file defines interface of Executor
- */
-#ifndef __NEURUN_EXEC_I_EXECUTOR_H_
-#define __NEURUN_EXEC_I_EXECUTOR_H_
-
-#include "ir/Graph.h"
-#include "IFunction.h"
-#include "IODescription.h"
-#include "ir/OperationIndexMap.h"
-
-namespace neurun
-{
-namespace exec
-{
-class IExecutionObserver;
-/**
- * @brief Struct to define interface of Executor
- */
-struct IExecutor
-{
- /**
- * @brief Construct a new IExecutor object
- */
- IExecutor() = default;
- /**
- * @brief Destroy the IExecutor object
- */
- virtual ~IExecutor() = default;
-
- /**
- * @brief Returns graph object
- *
- * @return Graph object
- */
- virtual const ir::Graph &graph() = 0;
-
- /**
- * @brief Set an ordering on operations
- * @param[in] ranks The table encoding the ordering
- */
- virtual void setIndexedRanks(std::shared_ptr<ir::OperationIndexMap<int64_t>>) = 0;
-
- /**
- * @brief Start execution
- * @param[in] desc Input and output description
- * @note This method should be thread-safe
- */
- virtual void execute(const IODescription &desc) = 0;
-};
-
-} // namespace exec
-} // namespace neurun
-
-#endif // __NEURUN_EXEC_I_EXECUTOR_H_
diff --git a/runtime/neurun/core/include/exec/IFunction.h b/runtime/neurun/core/include/exec/IFunction.h
deleted file mode 100644
index 5cc29ea75..000000000
--- a/runtime/neurun/core/include/exec/IFunction.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_EXEC_I_FUNCTION_H__
-#define __NEURUN_EXEC_I_FUNCTION_H__
-
-namespace neurun
-{
-namespace exec
-{
-
-class IFunction
-{
-public:
- virtual ~IFunction() = default;
- virtual void run() = 0;
- virtual void runSync() = 0;
- virtual void prepare() {}
-};
-
-} // namespace exec
-} // namespace neurun
-
-#endif // __NEURUN_EXEC_I_FUNCTION_H__
diff --git a/runtime/neurun/core/include/exec/IODescription.h b/runtime/neurun/core/include/exec/IODescription.h
deleted file mode 100644
index bdcc78176..000000000
--- a/runtime/neurun/core/include/exec/IODescription.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_EXEC_IO_DESCRIPTION_H__
-#define __NEURUN_EXEC_IO_DESCRIPTION_H__
-
-#include <vector>
-
-#include "ir/OperandInfo.h"
-
-namespace neurun
-{
-namespace exec
-{
-
-struct InputDesc
-{
- const ir::OperandInfo info;
- const void *buffer;
- const size_t size;
- const ir::Layout layout;
-
- InputDesc(void) = delete;
- InputDesc(const ir::OperandInfo &info, const void *buffer, const size_t size, ir::Layout layout)
- : info(info), buffer(buffer), size(size), layout(layout)
- {
- }
-};
-
-struct OutputDesc
-{
- const ir::OperandInfo info;
- void *buffer;
- const size_t size;
- const ir::Layout layout;
-
- OutputDesc(void) = delete;
- OutputDesc(const ir::OperandInfo &info, void *buffer, const size_t size, ir::Layout layout)
- : info(info), buffer(buffer), size(size), layout(layout)
- {
- }
-};
-
-struct IODescription
-{
- std::vector<std::unique_ptr<InputDesc>> inputs;
- std::vector<std::unique_ptr<OutputDesc>> outputs;
-};
-
-} // namespace exec
-} // namespace neurun
-
-#endif // __NEURUN_EXEC_IO_DESCRIPTION_H__
diff --git a/runtime/neurun/core/include/exec/NopFunction.h b/runtime/neurun/core/include/exec/NopFunction.h
deleted file mode 100644
index 5cbd7e5ce..000000000
--- a/runtime/neurun/core/include/exec/NopFunction.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * 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 NopFunction.h
- * @brief This file defines NopFunction
- */
-#ifndef __NEURUN_EXEC_NOP_FUNCTION_H_
-#define __NEURUN_EXEC_NOP_FUNCTION_H_
-
-#include "IFunction.h"
-
-namespace neurun
-{
-namespace exec
-{
-
-/**
- * @brief A derivative of IFunction tha does nothing
- *
- */
-class NopFunction : public IFunction
-{
-public:
- NopFunction() = default;
- void run() override
- {
- // DO NOTHING
- }
- void runSync() override
- {
- // this abstract method is used just for profiling and called for
- // backend::acl_common::AclFunction
- run();
- }
-};
-
-} // namespace exec
-} // namespace neurun
-
-#endif // __NEURUN_EXEC_NOP_FUNCTION_H_
diff --git a/runtime/neurun/core/include/ir/BackendSet.h b/runtime/neurun/core/include/ir/BackendSet.h
deleted file mode 100644
index 4979286df..000000000
--- a/runtime/neurun/core/include/ir/BackendSet.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_IR_BACKEND_SET_H__
-#define __NEURUN_IR_BACKEND_SET_H__
-
-#include "util/Set.h"
-
-namespace neurun
-{
-namespace backend
-{
-class Backend;
-} // namespace backend
-} // namespace neurun
-
-namespace neurun
-{
-namespace ir
-{
-
-using BackendSet = util::Set<const backend::Backend *>;
-
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_BACKEND_SET_H__
diff --git a/runtime/neurun/core/include/ir/Data.h b/runtime/neurun/core/include/ir/Data.h
deleted file mode 100644
index a0a489553..000000000
--- a/runtime/neurun/core/include/ir/Data.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_IR_DATA_H__
-#define __NEURUN_IR_DATA_H__
-
-#include <algorithm>
-
-namespace neurun
-{
-namespace ir
-{
-
-struct Data
-{
- virtual ~Data() = default;
-
- virtual size_t size(void) const = 0;
- virtual const uint8_t *base(void) const = 0;
-};
-
-class CachedData final : public Data
-{
-public:
- CachedData(const uint8_t *base, size_t size) : _base{new uint8_t[size]}, _size{size}
- {
- std::copy(base, base + size, _base);
- }
-
-public:
- ~CachedData() { delete[] _base; }
-
-public:
- size_t size(void) const override { return _size; }
- const uint8_t *base(void) const override { return _base; }
-
-private:
- uint8_t *_base;
- size_t _size;
-};
-
-class ExternalData final : public Data
-{
-public:
- ExternalData(const uint8_t *base, size_t size) : _base{base}, _size{size}
- {
- // DO NOTHING
- }
-
-public:
- size_t size(void) const override { return _size; }
- const uint8_t *base(void) const override { return _base; }
-
-private:
- const uint8_t *_base;
- const size_t _size;
-};
-
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_DATA_H__
diff --git a/runtime/neurun/core/include/ir/DataType.h b/runtime/neurun/core/include/ir/DataType.h
deleted file mode 100644
index 6eca6eb27..000000000
--- a/runtime/neurun/core/include/ir/DataType.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_IR_DATATYPE_H__
-#define __NEURUN_IR_DATATYPE_H__
-
-#include <stdexcept>
-
-namespace neurun
-{
-namespace ir
-{
-
-enum class DataType
-{
- FLOAT32 = 0,
- INT32 = 1,
- UINT32 = 2,
- QUANT8_ASYMM = 3,
- BOOL8 = 4,
- UINT8 = 5,
- QUANT8_SYMM = 6,
-};
-
-inline size_t sizeOfDataType(DataType data_type)
-{
- switch (data_type)
- {
- case DataType::FLOAT32:
- return sizeof(float);
- case DataType::INT32:
- return sizeof(int32_t);
- case DataType::UINT32:
- return sizeof(uint32_t);
- case DataType::BOOL8:
- case DataType::QUANT8_ASYMM:
- case DataType::UINT8:
- return sizeof(uint8_t);
- case DataType::QUANT8_SYMM:
- return sizeof(int8_t);
- default:
- throw std::runtime_error{"Unsupported type size"};
- }
-}
-
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_DATATYPE_H__
diff --git a/runtime/neurun/core/include/ir/Graph.h b/runtime/neurun/core/include/ir/Graph.h
deleted file mode 100644
index 5105c3a42..000000000
--- a/runtime/neurun/core/include/ir/Graph.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_IR_GRAPH_H__
-#define __NEURUN_IR_GRAPH_H__
-
-#include <functional>
-
-#include "ir/Operands.h"
-#include "ir/Operations.h"
-#include "ir/LowerInfoMap.h"
-#include "ir/OpSequence.h"
-#include "ir/Subgraphs.h"
-
-namespace neurun
-{
-namespace compiler
-{
-class BackendResolver;
-} // namespace compiler
-} // namespace neurun
-
-namespace neurun
-{
-namespace backend
-{
-namespace custom
-{
-class IKernelBuilder;
-} // namespace custom
-} // namespace backend
-} // namespace neurun
-
-namespace neurun
-{
-namespace ir
-{
-
-class Graph
-{
-private:
- enum class Phase
- {
- BUILDING,
- MODEL
- };
-
-public:
- Graph(void);
- ~Graph(void);
-
- // Graph Building
-public:
- OperandIndex addOperand(const Shape &shape, const TypeInfo &type);
- OperationIndex addOperation(std::unique_ptr<Operation> &&node);
- void setOperandValue(const OperandIndex &ind, std::unique_ptr<Data> &&data);
- void addInput(const OperandIndex &ind);
- void addOutput(const OperandIndex &ind);
- void finishBuilding(void);
- void lower(void);
- void removeOperand(const OperandIndex &ind) { _operands.remove(ind); }
- bool isBuildingPhase(void) const { return _phase == Phase::BUILDING; }
-
-private:
- void initializeUseDef();
-
- // Custom operations support
-public:
- void
- bindKernelBuilder(const std::shared_ptr<neurun::backend::custom::IKernelBuilder> &kernel_builder)
- {
- _kernel_builder = kernel_builder;
- }
-
- const std::shared_ptr<backend::custom::IKernelBuilder> &getKernelBuilder() const
- {
- return _kernel_builder;
- }
-
-private:
- std::shared_ptr<backend::custom::IKernelBuilder> _kernel_builder;
-
- // Accessors
-public:
- const OperandIndexSequence &getInputs() const { return _inputs; }
- OperandIndexSequence &getInputs() { return _inputs; }
- const OperandIndexSequence &getOutputs() const { return _outputs; }
- OperandIndexSequence &getOutputs() { return _outputs; }
- const Operands &operands() const { return _operands; }
- Operands &operands() { return _operands; } // TODO Remove this non-const accessor
- const Operations &operations() const { return _operations; }
- Operations &operations() { return _operations; }
- const compiler::BackendResolver *backend_resolver() const { return _backend_resolver.get(); }
-
-private:
- Phase _phase{Phase::BUILDING};
- Operations _operations;
- Operands _operands;
- OperandIndexSequence _inputs;
- OperandIndexSequence _outputs;
-
- // For LOWERED phase
-public:
- const LowerInfoMap *getLowerInfo() const { return _lower_info_map.get(); }
- const operation::LowerInfo *getLowerInfo(const SubgraphIndex &subg_index) const;
- void setLowerInfo(const SubgraphIndex &subg_index,
- std::unique_ptr<operation::LowerInfo> &&lower_info);
- void removeLowerInfo(const SubgraphIndex &subg_index);
- const operand::LowerInfo *getLowerInfo(const OperandIndex &index) const;
- operand::LowerInfo *getLowerInfo(const OperandIndex &index);
- void setLowerInfo(const OperandIndex &index, std::unique_ptr<operand::LowerInfo> &&lower_info);
- void removeLowerInfo(const OperandIndex &index);
- Subgraphs &subgraphs()
- {
- assert(_op_seqs);
- return *_op_seqs;
- }
- const Subgraphs *subgraphs() const { return _op_seqs.get(); }
- void setBackendResolver(std::unique_ptr<compiler::BackendResolver> &&br);
-
-private:
- void makeSubgraphs(OperandIndexMap<std::unique_ptr<operand::LowerInfo>> &operands_lower_info);
- void
- manipulateLowerInfo(OperandIndexMap<std::unique_ptr<operand::LowerInfo>> &operands_lower_info);
- void dumpLowerInfo();
- bool mergeable(const SubgraphIndex &subg_index, const OperationIndex &node_index, Layout layout);
- SubgraphIndex appendFreshSingleOpSubgraph(const OperationIndex &node_index, const Operation &node,
- Layout layout);
-
-private:
- std::unique_ptr<compiler::BackendResolver> _backend_resolver;
- std::unique_ptr<LowerInfoMap> _lower_info_map;
- // Pass(for Perm) can accept only graph so that Graph has Subgraphs as a member
- std::unique_ptr<Subgraphs> _op_seqs;
-};
-
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_GRAPH_H__
diff --git a/runtime/neurun/core/include/ir/Index.h b/runtime/neurun/core/include/ir/Index.h
deleted file mode 100644
index aebc64dcd..000000000
--- a/runtime/neurun/core/include/ir/Index.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_IR_OPERAND_INDEX_H__
-#define __NEURUN_IR_OPERAND_INDEX_H__
-
-#include "util/Index.h"
-
-namespace neurun
-{
-namespace ir
-{
-
-struct OperationIndexTag;
-using OperationIndex = ::neurun::util::Index<uint32_t, OperationIndexTag>;
-
-struct OperandIndexTag;
-using OperandIndex = ::neurun::util::Index<uint32_t, OperandIndexTag>;
-
-struct IOIndexTag;
-using IOIndex = ::neurun::util::Index<uint32_t, IOIndexTag>;
-
-struct SubgraphIndexTag;
-using SubgraphIndex = ::neurun::util::Index<uint32_t, SubgraphIndexTag>;
-
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERAND_INDEX_H__
diff --git a/runtime/neurun/core/include/ir/InternalType.h b/runtime/neurun/core/include/ir/InternalType.h
deleted file mode 100644
index 91085f2f3..000000000
--- a/runtime/neurun/core/include/ir/InternalType.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_INTERNAL_TYPE_H__
-#define __NEURUN_IR_INTERNAL_TYPE_H__
-
-#include <cstdint>
-
-namespace neurun
-{
-namespace ir
-{
-
-enum class Activation
-{
- NONE = 0,
- RELU = 1,
- RELU1 = 2,
- RELU6 = 3,
- TANH = 4,
- SIGMOID = 5
-};
-
-enum class PaddingType
-{
- EXPLICIT = 0,
- SAME = 1,
- VALID = 2
-};
-
-struct ExplicitPadding
-{
- uint32_t left;
- uint32_t right;
- uint32_t top;
- uint32_t bottom;
-};
-
-// TODO Resolve explicit padding param at frontend and save in value field
-struct Padding
-{
- PaddingType type;
- ExplicitPadding param;
-};
-
-struct Stride
-{
- uint32_t vertical;
- uint32_t horizontal;
-};
-
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_INTERNAL_TYPE_H__
diff --git a/runtime/neurun/core/include/ir/Layout.h b/runtime/neurun/core/include/ir/Layout.h
deleted file mode 100644
index c4edb70db..000000000
--- a/runtime/neurun/core/include/ir/Layout.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_IR_LAYOUT_H__
-#define __NEURUN_IR_LAYOUT_H__
-
-#include <functional>
-#include <string>
-
-namespace neurun
-{
-namespace ir
-{
-
-enum class Layout
-{
- UNKNOWN = 0,
- NHWC,
- NCHW
-};
-
-inline std::string to_string(Layout layout)
-{
- switch (layout)
- {
- case Layout::NHWC:
- return std::string{"NHWC"};
- case Layout::NCHW:
- return std::string{"NCHW"};
- case Layout::UNKNOWN:
- return std::string{"UNKNOWN"};
- default:
- throw std::runtime_error("WRONG LAYOUT");
- }
-}
-
-} // namespace ir
-} // namespace neurun
-
-namespace std
-{
-
-template <> struct hash<neurun::ir::Layout>
-{
- size_t operator()(neurun::ir::Layout value) const noexcept
- {
- using type = typename std::underlying_type<neurun::ir::Layout>::type;
- return hash<type>()(static_cast<type>(value));
- }
-};
-
-} // namespace std
-
-#endif // __NEURUN_IR_LAYOUT_H__
diff --git a/runtime/neurun/core/include/ir/LowerInfoMap.h b/runtime/neurun/core/include/ir/LowerInfoMap.h
deleted file mode 100644
index a8fd818b8..000000000
--- a/runtime/neurun/core/include/ir/LowerInfoMap.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_LOWER_INFO_MAP_H__
-#define __NEURUN_IR_LOWER_INFO_MAP_H__
-
-#include <memory>
-#include <unordered_map>
-
-#include "ir/operand/LowerInfo.h"
-#include "ir/operation/LowerInfo.h"
-#include "ir/OperandIndexMap.h"
-#include "ir/Index.h"
-
-namespace neurun
-{
-namespace ir
-{
-
-struct LowerInfoMap
-{
- std::unordered_map<SubgraphIndex, std::unique_ptr<operation::LowerInfo>> operation;
- OperandIndexMap<std::unique_ptr<operand::LowerInfo>> operand;
-};
-
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_LOWER_INFO_MAP_H__
diff --git a/runtime/neurun/core/include/ir/OpCode.h b/runtime/neurun/core/include/ir/OpCode.h
deleted file mode 100644
index 2b466a212..000000000
--- a/runtime/neurun/core/include/ir/OpCode.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OP_CODE_H__
-#define __NEURUN_IR_OP_CODE_H__
-
-#include <functional>
-#include <stdint.h>
-
-namespace neurun
-{
-namespace ir
-{
-
-enum class OpCode
-{
- Invalid, //< Unused
-#define OP(Name) Name, //< All operations
-#include "ir/Operations.lst"
-#undef OP
- COUNT
-};
-
-const char *toString(OpCode opcode);
-
-} // namespace ir
-} // namespace neurun
-
-namespace std
-{
-
-template <> struct hash<neurun::ir::OpCode>
-{
- size_t operator()(neurun::ir::OpCode value) const noexcept
- {
- using type = typename std::underlying_type<neurun::ir::OpCode>::type;
- return hash<type>()(static_cast<type>(value));
- }
-};
-
-} // namespace std
-
-#endif // __NEURUN_IR_OP_CODE_H__
diff --git a/runtime/neurun/core/include/ir/OpSequence.h b/runtime/neurun/core/include/ir/OpSequence.h
deleted file mode 100644
index 68632e589..000000000
--- a/runtime/neurun/core/include/ir/OpSequence.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OP_SEQUENCE_H__
-#define __NEURUN_IR_OP_SEQUENCE_H__
-
-#include <vector>
-#include <string>
-#include <memory>
-
-#include "ir/Layout.h"
-#include "ir/Index.h"
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-
-// To support ValueSwappable, Element doesn't have members which are classes
-// as value(or can have members which are classes as value and the classes
-// support Swappable)
-struct Element
-{
- OperationIndex index;
- const Operation *node;
-
- Element(const OperationIndex *i, const Operation *n) : index{*i}, node{n}
- {
- // DO NOTHING
- }
-};
-
-class OpSequence
-{
-public:
- explicit OpSequence(Layout layout);
- OpSequence(const OpSequence &) = delete;
-
-public:
- void accept(OperationVisitor &v) const;
-
-public:
- const OperandIndexSequence &getInputs() const { return _inputs; }
- const OperandIndexSequence &getOutputs() const { return _outputs; }
- void setInputs(const OperandIndexSequence &indexes) { _inputs = indexes; }
- void setOutputs(const OperandIndexSequence &indexes) { _outputs = indexes; }
- void replaceInput(const OperandIndex &from, const OperandIndex &to) { _inputs.replace(from, to); }
- void replaceOutput(const OperandIndex &from, const OperandIndex &to)
- {
- _outputs.replace(from, to);
- }
-
- void appendOperation(const OperationIndex &index, const Operation &node)
- {
- _operations.emplace_back(&index, &node);
- }
-
- std::vector<Element> &operations(void) { return _operations; }
-
- const std::vector<Element> &operations(void) const { return _operations; }
-
- uint32_t size(void) const { return _operations.size(); }
-
- // TODO: Impl Dumper instead of this method
- std::string getStr(void) const;
-
-public:
- void remove(const OperationIndex &index);
-
-public:
- Layout getLayout() const { return _layout; }
-
-public:
- std::vector<Element>::const_iterator begin() const { return _operations.begin(); }
- std::vector<Element>::const_iterator end() const { return _operations.end(); }
-
-private:
- bool exist(const OperationIndex &index) const;
-
-private:
- OperandIndexSequence _inputs;
- OperandIndexSequence _outputs;
- std::vector<Element> _operations;
-
-private:
- Layout _layout;
-};
-
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OP_SEQUENCE_H__
diff --git a/runtime/neurun/core/include/ir/Operand.h b/runtime/neurun/core/include/ir/Operand.h
deleted file mode 100644
index b1f28de48..000000000
--- a/runtime/neurun/core/include/ir/Operand.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_IR_OPERAND_H__
-#define __NEURUN_IR_OPERAND_H__
-
-#include <cassert>
-#include <cstdint>
-#include <cpp14/memory.h>
-#include <algorithm>
-
-#include "ir/Data.h"
-#include "ir/DataType.h"
-#include "ir/OperandInfo.h"
-#include "ir/operand/ParentInfo.h" // TODO Remove this dependency
-#include "ir/OperationIndexList.h"
-
-namespace neurun
-{
-namespace ir
-{
-
-class Operand
-{
-public:
- explicit Operand(const Shape &shape, const TypeInfo &type) : _info{shape, type}
- {
- // DO NOTHING
- }
-
-public:
- const Shape &shape(void) const { return _info.shape(); }
- const TypeInfo &typeInfo(void) const { return _info.typeInfo(); }
- const OperandInfo &info(void) const { return _info; }
- size_t operandSize(void) const;
-
- const OperationIndexList &getUses() const { return _uses; }
- const OperationIndexList &getDef() const { return _def; }
- void appendUse(const OperationIndex &idx);
- void removeUse(const OperationIndex &idx);
- void appendDef(const OperationIndex &idx);
- void removeDef(const OperationIndex &idx);
-
-public:
- void type(const DataType type) { _info.type(type); };
-
-public:
- void data(std::unique_ptr<Data> &&data) { _data = std::move(data); }
- const Data &data(void) const
- {
- assert(_data);
- return *_data;
- }
-
- /**
- * @brief Get true if Operand has data, otherwise @c false
- a @return @c true if Operand has data, otherwise @c false
- */
- bool isConstant(void) const { return _data != nullptr; }
-
-public:
- template <typename T, typename... Args> void data(Args &&... args)
- {
- data(nnfw::cpp14::make_unique<T>(std::forward<Args>(args)...));
- }
-
-public:
- template <typename T> T asScalar(void) const
- {
- assert((shape().rank() == 0) || ((shape().rank() == 1) && (shape().dim(0) == 1)));
- assert(_data != nullptr);
- assert((_data->base() != nullptr) && (_data->size() == sizeof(T)));
-
- return *(reinterpret_cast<const T *>(_data->base()));
- }
-
- template <typename T> std::vector<T> asVector() const
- {
- assert(isConstant());
- assert(_data->size() % sizeof(T) == 0);
-
- const auto *base = reinterpret_cast<const T *>(_data->base());
- const std::size_t size = _data->size() / sizeof(T);
- return std::vector<T>(base, base + size);
- }
-
-public:
- /**
- * @brief Set parent information
- * @param[in] parent_info Parent information
- */
- void parent_info(std::unique_ptr<operand::ParentInfo> &&parent_info);
- /**
- * @brief Return parent information pointer as constant
- * @return Parent information pointer
- */
- const operand::ParentInfo *parent_info() const;
- /**
- * @brief Return parent information pointer
- * @return Perent information pointer
- */
- operand::ParentInfo *parent_info();
-
-private:
- OperandInfo _info;
- std::shared_ptr<Data> _data;
-
- OperationIndexList _uses;
- OperationIndexList _def; // size is 0 (constant) or 1 (from def operation)
-
- std::shared_ptr<operand::ParentInfo> _parent_info;
-};
-
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERAND_H__
diff --git a/runtime/neurun/core/include/ir/OperandConstraint.h b/runtime/neurun/core/include/ir/OperandConstraint.h
deleted file mode 100644
index de6f21634..000000000
--- a/runtime/neurun/core/include/ir/OperandConstraint.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_MODEL_OPERAND_CONSTRAINT_H__
-#define __NEURUN_MODEL_OPERAND_CONSTRAINT_H__
-
-#include <stdint.h>
-#include <limits>
-#include <set>
-
-namespace neurun
-{
-namespace ir
-{
-
-class OperandConstraint
-{
-private:
- static const uint32_t INF = std::numeric_limits<uint32_t>::max();
-
-public:
- static OperandConstraint createAny() { return OperandConstraint{0u, INF}; }
- static OperandConstraint createExact(uint32_t exact) { return OperandConstraint{exact, exact}; }
- static OperandConstraint createAtMost(uint32_t end) { return OperandConstraint{0u, end}; }
- static OperandConstraint createAtLeast(uint32_t begin) { return OperandConstraint{begin, INF}; }
- static OperandConstraint createInRange(uint32_t begin, uint32_t end)
- {
- return OperandConstraint{begin, end};
- }
-
-private:
- OperandConstraint(uint32_t begin, uint32_t end) : _begin{begin}, _end{end} {}
-
-public:
- bool check(uint32_t ind) const { return _begin <= ind && ind <= _end; }
-
-private:
- uint32_t _begin;
- uint32_t _end;
-};
-
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_MODEL_OPERAND_CONSTRAINT_H__
diff --git a/runtime/neurun/core/include/ir/OperandIndexMap.h b/runtime/neurun/core/include/ir/OperandIndexMap.h
deleted file mode 100644
index c9234128e..000000000
--- a/runtime/neurun/core/include/ir/OperandIndexMap.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERAND_INDEX_MAP_H__
-#define __NEURUN_IR_OPERAND_INDEX_MAP_H__
-
-#include <unordered_map>
-
-#include "ir/Index.h"
-
-namespace neurun
-{
-namespace ir
-{
-
-template <typename T> using OperandIndexMap = std::unordered_map<OperandIndex, T>;
-
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERAND_INDEX_MAP_H__
diff --git a/runtime/neurun/core/include/ir/OperandIndexSequence.h b/runtime/neurun/core/include/ir/OperandIndexSequence.h
deleted file mode 100644
index 7f8cec844..000000000
--- a/runtime/neurun/core/include/ir/OperandIndexSequence.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_MODEL_OPERAND_INDEX_SEQUENCE_H__
-#define __NEURUN_MODEL_OPERAND_INDEX_SEQUENCE_H__
-
-#include <initializer_list>
-#include <vector>
-
-#include "ir/Index.h"
-
-namespace neurun
-{
-namespace ir
-{
-
-class OperandIndexSequence
-{
-public:
- OperandIndexSequence(void) = default;
- OperandIndexSequence(std::initializer_list<OperandIndex> list);
- OperandIndexSequence(std::initializer_list<int32_t> list);
- OperandIndexSequence(std::initializer_list<uint32_t> list);
-
-public:
- void append(const OperandIndex &index) { _set.emplace_back(index); }
- void append(const OperandIndexSequence &l) { _set.insert(_set.end(), l.begin(), l.end()); }
-
-public:
- uint32_t size() const { return static_cast<uint32_t>(_set.size()); }
- const OperandIndex &at(IOIndex set_index) const { return _set.at(set_index.value()); }
- const OperandIndex &at(uint32_t index) const { return _set.at(index); }
- bool contains(const OperandIndex &index) const;
- void replace(const OperandIndex &from, const OperandIndex &to);
-
-public:
- std::vector<OperandIndex>::const_iterator begin(void) const { return _set.begin(); }
- std::vector<OperandIndex>::const_iterator end(void) const { return _set.end(); }
-
-private:
- std::vector<OperandIndex> _set;
-};
-
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_MODEL_OPERAND_INDEX_SET_H__
diff --git a/runtime/neurun/core/include/ir/OperandInfo.h b/runtime/neurun/core/include/ir/OperandInfo.h
deleted file mode 100644
index 82ad7ef0f..000000000
--- a/runtime/neurun/core/include/ir/OperandInfo.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (c) 2018 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 OperandInfo.h
- * @brief This file contains OperandInfo class
- */
-#ifndef __NEURUN_IR_OPERAND_INFO_H__
-#define __NEURUN_IR_OPERAND_INFO_H__
-
-#include "ir/Shape.h"
-#include "ir/TypeInfo.h"
-#include "ir/Layout.h"
-
-namespace neurun
-{
-namespace ir
-{
-
-/**
- * @brief Class to save tensor's shape and type
- */
-class OperandInfo
-{
-public:
- /**
- * @brief Construct a new OperandInfo object (deleted)
- */
- OperandInfo() = delete;
- /**
- * @brief Construct a new OperandInfo object
- * @param[in] shape Tensor shape
- * @param[in] typeInfo Tensor data type
- */
- OperandInfo(const Shape &shape, const TypeInfo &typeInfo) : _shape(shape), _typeInfo(typeInfo)
- {
- // DO NOTHING
- }
- /**
- * @brief Construct a new OperandInfo object
- * @param[in] origin info for copy
- */
- OperandInfo(const OperandInfo &origin) : _shape(origin.shape()), _typeInfo(origin.typeInfo())
- {
- // DO NOTHING
- }
-
-public:
- /**
- * @brief Return tensor shape
- * @return Tensor shape
- */
- const Shape &shape() const { return _shape; }
- /**
- * @brief Return tensor data type info
- * @return Tensor data type
- */
- const TypeInfo &typeInfo() const { return _typeInfo; }
- /**
- * @brief Set tensor data type
- */
- void type(const DataType type) { _typeInfo.type(type); }
- /**
- * @brief Return size of tensor (bytes)
- * @return Tensor size
- */
- size_t total_size() const { return _shape.num_elements() * sizeOfDataType(_typeInfo.type()); }
-
-private:
- Shape _shape;
- TypeInfo _typeInfo;
-};
-
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERAND_INFO_H__
diff --git a/runtime/neurun/core/include/ir/Operands.h b/runtime/neurun/core/include/ir/Operands.h
deleted file mode 100644
index c8d68c088..000000000
--- a/runtime/neurun/core/include/ir/Operands.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_IR_OPERANDS_H__
-#define __NEURUN_IR_OPERANDS_H__
-
-#include <memory>
-#include <unordered_map>
-
-#include "ir/Operand.h"
-#include "ir/Index.h"
-#include "util/ObjectManager.h"
-
-namespace neurun
-{
-namespace ir
-{
-
-class Operands : public util::ObjectManager<OperandIndex, Operand>
-{
-};
-
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_MODEL_OPERAND_SET_H__
diff --git a/runtime/neurun/core/include/ir/Operation.h b/runtime/neurun/core/include/ir/Operation.h
deleted file mode 100644
index a02f980a5..000000000
--- a/runtime/neurun/core/include/ir/Operation.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_H__
-#define __NEURUN_IR_OPERATION_H__
-
-#include <memory>
-
-#include "ir/OpCode.h"
-#include "ir/Operand.h"
-#include "ir/OperandIndexSequence.h"
-#include "ir/OperandConstraint.h"
-
-namespace neurun
-{
-namespace ir
-{
-
-struct OperationVisitor;
-
-class Operation
-{
-public:
- Operation(OperandConstraint input_constr, const OperandIndexSequence &inputs,
- const OperandIndexSequence &outputs);
- explicit Operation(OperandConstraint input_constr);
-
- Operation(const Operation &) = delete;
- Operation(Operation &&) = default;
- Operation &operator=(const Operation &) = delete;
- Operation &operator=(Operation &&) = default;
-
- virtual ~Operation();
-
-public:
- virtual void accept(OperationVisitor &v) const = 0;
- virtual std::string name() const { return std::string{toString(opcode())}; }
- virtual OpCode opcode() const = 0;
-
-public:
- void replaceInput(const OperandIndex &from, const OperandIndex &to);
- void replaceOutput(const OperandIndex &from, const OperandIndex &to);
- const OperandIndexSequence &getInputs() const { return _inputs; }
- const OperandIndexSequence &getOutputs() const { return _outputs; }
- // It's for only input/output tensors but const data.
- void setInputs(const OperandIndexSequence &indexes);
- void setOutputs(const OperandIndexSequence &indexes);
-
-private:
- OperandConstraint _input_constr;
- OperandIndexSequence _inputs;
- OperandIndexSequence _outputs;
-};
-
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_H__
diff --git a/runtime/neurun/core/include/ir/OperationIndexList.h b/runtime/neurun/core/include/ir/OperationIndexList.h
deleted file mode 100644
index bf3ea3d6b..000000000
--- a/runtime/neurun/core/include/ir/OperationIndexList.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_MODEL_OPERATION_INDEX_LIST_H__
-#define __NEURUN_MODEL_OPERATION_INDEX_LIST_H__
-
-#include <algorithm>
-#include <cassert>
-#include <initializer_list>
-#include <list>
-
-#include "ir/Index.h"
-
-namespace neurun
-{
-namespace ir
-{
-
-class OperationIndexList
-{
-public:
- OperationIndexList(void) = default;
- OperationIndexList(std::initializer_list<OperationIndex> list);
-
-public:
- void append(const OperationIndex &index) { _list.push_back(index); }
- void remove(const OperationIndex &index)
- {
- auto itr = std::find(_list.begin(), _list.end(), index);
- assert(itr != _list.end());
- _list.erase(itr);
- }
-
-public:
- uint32_t size() const { return static_cast<uint32_t>(_list.size()); }
- const std::list<OperationIndex> &list() const { return _list; }
- bool contains(const OperationIndex &index) const;
-
-private:
- std::list<OperationIndex> _list;
-};
-
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_MODEL_OPERATION_INDEX_LIST_H__
diff --git a/runtime/neurun/core/include/ir/OperationIndexMap.h b/runtime/neurun/core/include/ir/OperationIndexMap.h
deleted file mode 100644
index 50b1db527..000000000
--- a/runtime/neurun/core/include/ir/OperationIndexMap.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_INDEX_MAP_H__
-#define __NEURUN_IR_OPERATION_INDEX_MAP_H__
-
-#include <unordered_map>
-
-#include "ir/Index.h"
-
-namespace neurun
-{
-namespace ir
-{
-
-template <typename T> using OperationIndexMap = std::unordered_map<OperationIndex, T>;
-
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_INDEX_MAP_H__
diff --git a/runtime/neurun/core/include/ir/OperationVisitor.h b/runtime/neurun/core/include/ir/OperationVisitor.h
deleted file mode 100644
index 0eb6de2d3..000000000
--- a/runtime/neurun/core/include/ir/OperationVisitor.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_VISITOR_H__
-#define __NEURUN_IR_OPERATION_VISITOR_H__
-
-#include "ir/Operations.Include.h"
-#include "ir/OpSequence.h"
-
-namespace neurun
-{
-namespace ir
-{
-
-struct OperationVisitor
-{
- virtual ~OperationVisitor() = default;
-
-#define OP(InternalName) \
- virtual void visit(const operation::InternalName &) {}
-#include "ir/Operations.lst"
-#undef OP
-
- // This OpSequence node should be handled specially so that
- // Op.lst doesn't have OpSequence
- // TODO Remove by pushing it down to derived classes.
- virtual void visit(const OpSequence &op_seq)
- {
- for (const auto &e : op_seq.operations())
- {
- e.node->accept(*this);
- }
- }
-};
-
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_VISITOR_H__
diff --git a/runtime/neurun/core/include/ir/Operations.Include.h b/runtime/neurun/core/include/ir/Operations.Include.h
deleted file mode 100644
index e14e18cc1..000000000
--- a/runtime/neurun/core/include/ir/Operations.Include.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-// This file has no ifdef guard intentionally
-
-#include "ir/operation/BatchToSpaceND.h"
-#include "ir/operation/Conv2D.h"
-#include "ir/operation/MaxPool2D.h"
-#include "ir/operation/AvgPool2D.h"
-#include "ir/operation/Concat.h"
-#include "ir/operation/Reshape.h"
-#include "ir/operation/FullyConnected.h"
-#include "ir/operation/Softmax.h"
-#include "ir/operation/Transpose.h"
-#include "ir/operation/Permute.h"
-#include "ir/operation/ReduceSum.h"
-#include "ir/operation/Add.h"
-#include "ir/operation/Sub.h"
-#include "ir/operation/DepthwiseConv2D.h"
-#include "ir/operation/Slice.h"
-#include "ir/operation/StridedSlice.h"
-#include "ir/operation/Mul.h"
-#include "ir/operation/Squeeze.h"
-#include "ir/operation/Tanh.h"
-#include "ir/operation/Logistic.h"
-#include "ir/operation/Cast.h"
-#include "ir/operation/Div.h"
-#include "ir/operation/Exp.h"
-#include "ir/operation/ReduceMax.h"
-#include "ir/operation/Comparison.h"
-#include "ir/operation/LogicalAnd.h"
-#include "ir/operation/LogicalOr.h"
-#include "ir/operation/LogicalNot.h"
-#include "ir/operation/LSTM.h"
-#include "ir/operation/RSQRT.h"
-#include "ir/operation/ReLU.h"
-#include "ir/operation/ResizeBilinear.h"
-#include "ir/operation/ReLU1.h"
-#include "ir/operation/ReLU6.h"
-#include "ir/operation/RNN.h"
-#include "ir/operation/Floor.h"
-#include "ir/operation/SpaceToBatchND.h"
-#include "ir/operation/SpaceToDepth.h"
-#include "ir/operation/L2Pool2D.h"
-#include "ir/operation/EmbeddingLookup.h"
-#include "ir/operation/L2Normalization.h"
-#include "ir/operation/HashtableLookup.h"
-#include "ir/operation/InstanceNorm.h"
-#include "ir/operation/PReLU.h"
-#include "ir/operation/TransposeConv.h"
-#include "ir/operation/SQRT.h"
-#include "ir/operation/SquaredDifference.h"
-#include "ir/operation/TopKV2.h"
-#include "ir/operation/Gather.h"
-#include "ir/operation/Neg.h"
-#include "ir/operation/Abs.h"
-#include "ir/operation/ArgMax.h"
-#include "ir/operation/Dequantize.h"
-#include "ir/operation/Mean.h"
-#include "ir/operation/LocalResponseNormalization.h"
-#include "ir/operation/DepthToSpace.h"
-#include "ir/operation/Pack.h"
-#include "ir/operation/ReduceMin.h"
-#include "ir/operation/Split.h"
-#include "ir/operation/Unpack.h"
-#include "ir/operation/Pad.h"
-#include "ir/operation/Min.h"
-#include "ir/operation/Max.h"
-#include "ir/operation/Custom.h"
-#include "ir/operation/OneHot.h"
diff --git a/runtime/neurun/core/include/ir/Operations.h b/runtime/neurun/core/include/ir/Operations.h
deleted file mode 100644
index 9e2aecb43..000000000
--- a/runtime/neurun/core/include/ir/Operations.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_IR_OPERATIONS_H__
-#define __NEURUN_IR_OPERATIONS_H__
-
-#include "ir/Index.h"
-#include "ir/Operation.h"
-#include "util/ObjectManager.h"
-
-namespace neurun
-{
-namespace ir
-{
-
-class Operations : public util::ObjectManager<OperationIndex, Operation>
-{
-};
-
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_MODEL_OPERATION_MANAGER_H__
diff --git a/runtime/neurun/core/include/ir/Operations.lst b/runtime/neurun/core/include/ir/Operations.lst
deleted file mode 100644
index 8c02857d9..000000000
--- a/runtime/neurun/core/include/ir/Operations.lst
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef OP
-#error Define OP before including this file
-#endif
-
-// Internal Name
-OP(Add)
-OP(Sub)
-OP(BatchToSpaceND)
-OP(Cast)
-OP(Conv2D)
-OP(DepthwiseConv2D)
-OP(AvgPool2D)
-OP(MaxPool2D)
-OP(Concat)
-OP(FullyConnected)
-OP(ReduceSum)
-OP(Reshape)
-OP(Mul)
-OP(Softmax)
-OP(Squeeze)
-OP(Slice)
-OP(StridedSlice)
-OP(Tanh)
-OP(Logistic)
-OP(Div)
-OP(Transpose)
-OP(Exp)
-OP(ReduceMax)
-OP(Comparison)
-OP(LogicalAnd)
-OP(LogicalOr)
-OP(LogicalNot)
-OP(LSTM)
-OP(RSQRT)
-OP(ReLU)
-OP(ResizeBilinear)
-OP(ReLU1)
-OP(ReLU6)
-OP(RNN)
-OP(Floor)
-OP(SpaceToBatchND)
-OP(SpaceToDepth)
-OP(L2Pool2D)
-OP(EmbeddingLookup)
-OP(L2Normalization)
-OP(HashtableLookup)
-OP(InstanceNorm)
-OP(PReLU)
-OP(TransposeConv)
-OP(SQRT)
-OP(SquaredDifference)
-OP(TopKV2)
-OP(Gather)
-OP(Neg)
-OP(Abs)
-OP(ArgMax)
-OP(Dequantize)
-OP(Mean)
-OP(LocalResponseNormalization)
-OP(DepthToSpace)
-OP(Pack)
-OP(ReduceMin)
-OP(Split)
-OP(Unpack)
-OP(Pad)
-OP(Custom)
-OP(Permute)
-OP(Min)
-OP(Max)
-OP(OneHot)
diff --git a/runtime/neurun/core/include/ir/Shape.h b/runtime/neurun/core/include/ir/Shape.h
deleted file mode 100644
index a58af38ad..000000000
--- a/runtime/neurun/core/include/ir/Shape.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_IR_SHAPE_H__
-#define __NEURUN_IR_SHAPE_H__
-
-#include "ir/Layout.h"
-#include "misc/feature/Shape.h"
-
-#include <cstdint>
-#include <vector>
-
-namespace neurun
-{
-namespace ir
-{
-
-// TODO Remove this dependency.
-using FeatureShape = nnfw::misc::feature::Shape;
-
-struct Shape
-{
-public:
- Shape() = default;
-
- explicit Shape(int rank) : _dimensions(rank) {}
-
- Shape(std::initializer_list<int32_t> dimensions) : _dimensions(dimensions) {}
-
- int rank() const { return _dimensions.size(); }
-
- const std::vector<int32_t> &dims() const { return _dimensions; }
-
- int32_t dim(int i) const { return _dimensions.at(i); }
-
- int32_t &dim(int i) { return _dimensions.at(i); }
-
- uint64_t num_elements() const;
-
-public:
- FeatureShape asFeature(Layout layout) const;
-
- /**
- * @brief Add dimension to the beginning
- * @param[in] d dimension to add to the beginning
- */
- void prepend(int32_t d) { _dimensions.insert(_dimensions.cbegin(), d); }
-
- /**
- * @brief Add dimension to the end
- * @param[in] d dimension to add to the end
- */
- void append(int32_t d) { _dimensions.emplace_back(d); }
-
- /**
- * @brief Extend rank of Shape object for operand with param.
- * @param[in] to_rank The rank value to be extended to
- */
- void extendRank(int to_rank);
-
-private:
- std::vector<int32_t> _dimensions;
-};
-
-inline bool operator==(const Shape &lhs, const Shape &rhs) { return lhs.dims() == rhs.dims(); }
-inline bool operator!=(const Shape &lhs, const Shape &rhs) { return lhs.dims() != rhs.dims(); }
-
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_SHAPE_H__
diff --git a/runtime/neurun/core/include/ir/Subgraphs.h b/runtime/neurun/core/include/ir/Subgraphs.h
deleted file mode 100644
index 716f09bcf..000000000
--- a/runtime/neurun/core/include/ir/Subgraphs.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_SUBGRAPHS_H__
-#define __NEURUN_IR_SUBGRAPHS_H__
-
-#include "ir/Index.h"
-#include "ir/OpSequence.h"
-#include "util/ObjectManager.h"
-
-namespace neurun
-{
-namespace ir
-{
-
-/**
- * @brief Class that manages OpSequence objects
- */
-class Subgraphs : public util::ObjectManager<SubgraphIndex, OpSequence>
-{
-public:
- /**
- * @brief Create an instance of OpSequence with given op and push it to objects
- *
- * @param[in] op_idx Operation index that is emplaced
- * @param[in] op Operation that is emplaced
- * @param[in] layout OpSequence's layout
- * @return SubgraphIndex
- */
- SubgraphIndex emplace(const OperationIndex &op_index, const Operation &op, Layout layout);
-
- /**
- * @brief Push an instance of OpSequence to objects
- *
- * @param[in] subg An instance of OpSequence
- * @return SubgraphIndex
- */
- SubgraphIndex emplace(std::unique_ptr<OpSequence> &&subg);
-
- /**
- * @brief Check if an operation does exist in any subgraphs
- *
- * @param operation_index Operation index to find
- * @return true If such operation exists in any subgraphs otherwise false
- */
- bool containsOperation(const OperationIndex &operation_index) const;
- /**
- * @brief Find an operation from all subgraphs
- *
- * @param operation_index Operation index to find
- * @return SubgraphIndex Index of OpSequence that contains given operation index
- */
- SubgraphIndex getOperation(const OperationIndex &operation_index) const;
- /**
- * @brief Dump subgraphs
- *
- * @param msg Message that will be displayed
- */
- void dump(const std::string &msg) const;
- /**
- * @brief Remove an operation from OpSequence
- *
- * @param operation_index Operation index to be removed
- */
- void removeFromSubgraph(const OperationIndex &operation_index);
-
-private:
- SubgraphIndex findOperation(const OperationIndex &operation_index) const;
-};
-
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_SUBGRAPHS_H__
diff --git a/runtime/neurun/core/include/ir/TypeInfo.h b/runtime/neurun/core/include/ir/TypeInfo.h
deleted file mode 100644
index 5b35046bb..000000000
--- a/runtime/neurun/core/include/ir/TypeInfo.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_IR_TYPEINFO_H__
-#define __NEURUN_IR_TYPEINFO_H__
-
-#include <cstdint>
-
-#include "ir/DataType.h"
-
-namespace neurun
-{
-namespace ir
-{
-
-class TypeInfo
-{
-public:
- TypeInfo() = delete;
-
- explicit TypeInfo(DataType type, float scale = 0, int32_t offset = 0)
- : _type(type), _scale(scale), _offset(offset)
- {
- }
-
-public:
- DataType type() const { return _type; }
- float scale() const { return _scale; }
- int32_t offset() const { return _offset; }
-
-public:
- void type(const DataType type) { _type = type; }
-
-private:
- DataType _type;
- float _scale;
- int32_t _offset;
-};
-
-bool operator==(const TypeInfo &lhs, const TypeInfo &rhs);
-bool operator!=(const TypeInfo &lhs, const TypeInfo &rhs);
-
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_TYPEINFO_H__
diff --git a/runtime/neurun/core/include/ir/operand/LowerInfo.h b/runtime/neurun/core/include/ir/operand/LowerInfo.h
deleted file mode 100644
index e0fb2c5c8..000000000
--- a/runtime/neurun/core/include/ir/operand/LowerInfo.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_IR_OPERAND_LOWER_INFO_H__
-#define __NEURUN_IR_OPERAND_LOWER_INFO_H__
-
-#include <functional>
-#include <stdint.h>
-
-#include "ir/operand/PermuteFactor.h"
-#include "util/Set.h"
-
-namespace neurun
-{
-namespace backend
-{
-class Backend;
-} // namespace backend
-} // namespace neurun
-
-namespace neurun
-{
-namespace ir
-{
-namespace operand
-{
-using PermuteFactorSet = util::Set<PermuteFactor>;
-
-class LowerInfo
-{
-public:
- class Shape4D
- {
- public:
- Shape4D(uint32_t n, uint32_t h, uint32_t w, uint32_t c) : _n{n}, _h{h}, _w{w}, _c{c}
- {
- // DO NOTHING
- }
-
- public:
- uint32_t n(void) const { return _n; }
- uint32_t h(void) const { return _h; }
- uint32_t w(void) const { return _w; }
- uint32_t c(void) const { return _c; }
-
- private:
- uint32_t _n;
- uint32_t _h;
- uint32_t _w;
- uint32_t _c;
- };
-
-public:
- LowerInfo(const Shape4D &shape) : _shape{shape}
- {
- // DO NOTHING
- }
-
-public:
- const Shape4D &shape(void) const { return _shape; }
- const PermuteFactorSet &def_factors(void) const { return _def_factors; }
- const PermuteFactorSet &use_factors(void) const { return _use_factors; }
-
-public:
- void addDefPermuteFactor(const PermuteFactor &factor) { _def_factors.add(factor); }
- void addUsePermuteFactor(const PermuteFactor &factor) { _use_factors.add(factor); }
- void removeDefPermuteFactor(const PermuteFactor &factor) { _def_factors.remove(factor); }
- void removeUsePermuteFactor(const PermuteFactor &factor) { _use_factors.remove(factor); }
-
-private:
- Shape4D _shape;
- PermuteFactorSet _def_factors;
- PermuteFactorSet _use_factors;
-};
-
-} // namespace operand
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERAND_LOWER_INFO_H__
diff --git a/runtime/neurun/core/include/ir/operand/ParentInfo.h b/runtime/neurun/core/include/ir/operand/ParentInfo.h
deleted file mode 100644
index 92dac2b63..000000000
--- a/runtime/neurun/core/include/ir/operand/ParentInfo.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (c) 2018 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 ParentInfo.h
- * @brief This file contains ParentInfo class and internal Coordinate4D class
- * to represent subsumption between operand
- */
-
-#ifndef __NEURUN_IR_OPERAND_PARENT_INFO_H__
-#define __NEURUN_IR_OPERAND_PARENT_INFO_H__
-
-#include <stdint.h>
-
-#include "ir/Index.h"
-#include "util/Coordinates.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operand
-{
-
-/**
- * @brief Class to represent parent operand in child operand
- */
-class ParentInfo
-{
-public:
- /**
- * @brief Construct a new ParentInfo object
- * @param[in] parent Index of parent operand
- * @param[in] coordinate Offset of child operand in parent operand
- * @return
- */
- ParentInfo(const OperandIndex parent, const util::Coordinates &coordinate)
- : _parent{parent}, _coordinate{coordinate}
- {
- // DO NOTHING
- }
-
-public:
- /**
- * @brief Return parent index
- * @return Parent index
- */
- OperandIndex parent(void) const { return _parent; }
- /**
- * @brief Retern offset in parent
- * @return Offset
- */
- util::Coordinates offset(void) const { return _coordinate; }
-
-private:
- OperandIndex _parent;
- util::Coordinates _coordinate;
-};
-
-} // namespace operand
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERAND_PARENT_INFO_H__
diff --git a/runtime/neurun/core/include/ir/operand/PermuteFactor.h b/runtime/neurun/core/include/ir/operand/PermuteFactor.h
deleted file mode 100644
index 60d926b2d..000000000
--- a/runtime/neurun/core/include/ir/operand/PermuteFactor.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * 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 PermuteFactor.h
- * @brief This file contains neurun::ir::operand::PermuteFactor class
- * @ingroup COM_AI_RUNTIME
- */
-
-#ifndef __NEURUN_IR_OPERAND_PERMUTE_FACTOR_H__
-#define __NEURUN_IR_OPERAND_PERMUTE_FACTOR_H__
-
-#include <functional>
-
-#include "ir/Layout.h"
-
-namespace neurun
-{
-namespace backend
-{
-class Backend;
-} // namespace backend
-} // namespace neurun
-
-namespace neurun
-{
-namespace ir
-{
-namespace operand
-{
-
-/**
- * @brief Class that has factors of permutation
- */
-class PermuteFactor
-{
-public:
- /**
- * @brief Construct PermuteFactor object.
- * @param backend The backend factor
- * @param backend The layout factor
- */
- PermuteFactor(const backend::Backend *backend, Layout layout) : _backend{backend}, _layout{layout}
- {
- // DO NOTHING
- }
- /**
- * @brief Construct PermuteFactor object by copy semantics.
- */
- PermuteFactor(const PermuteFactor &f) : _backend{f._backend}, _layout{f._layout}
- {
- // DO NOTHING
- }
- /**
- * @brief Construct PermuteFactor object by move semantics.
- */
- PermuteFactor(PermuteFactor &&) = default;
-
-public:
- /**
- * @brief Get backend
- *
- * @return Backend factor
- */
- const backend::Backend *backend() const { return _backend; }
- /**
- * @brief Get layout
- *
- * @return Layout factor
- */
- Layout layout() const { return _layout; }
-
-public:
- /**
- * @brief operator overloading function for `==`
- *
- * @return Whether two PermuteFactor are the same
- */
- bool operator==(const PermuteFactor &other) const
- {
- return _backend == other.backend() && _layout == other.layout();
- }
- /**
- * @brief operator overloading function for `!=`
- *
- * @return Whether two PermuteFactor are differenct
- */
- bool operator!=(const PermuteFactor &other) const { return !(*this == other); }
-
-private:
- const backend::Backend *_backend{nullptr};
- Layout _layout{Layout::UNKNOWN};
-};
-
-} // namespace operand
-} // namespace ir
-} // namespace neurun
-
-namespace std
-{
-
-/**
- * @brief Structure that provides hash value of PermuteFactor
- */
-template <> struct hash<neurun::ir::operand::PermuteFactor>
-{
- size_t operator()(const neurun::ir::operand::PermuteFactor &factor) const noexcept
- {
- hash<const neurun::backend::Backend *> b_hash{};
- hash<neurun::ir::Layout> l_hash{};
- return b_hash(factor.backend()) ^ (l_hash(factor.layout()) << 1);
- }
-};
-
-} // namespace std
-
-#endif // __NEURUN_IR_OPERAND_PERMUTE_FACTOR_H__
diff --git a/runtime/neurun/core/include/ir/operation/Abs.h b/runtime/neurun/core/include/ir/operation/Abs.h
deleted file mode 100644
index 97293823b..000000000
--- a/runtime/neurun/core/include/ir/operation/Abs.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_ABS_H__
-#define __NEURUN_IR_OPERATION_ABS_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class Abs : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0
- };
-
-public:
- Abs(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::Abs; }
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_ABS_H__
diff --git a/runtime/neurun/core/include/ir/operation/Add.h b/runtime/neurun/core/include/ir/operation/Add.h
deleted file mode 100644
index fc4d6a7e7..000000000
--- a/runtime/neurun/core/include/ir/operation/Add.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_ADD_H__
-#define __NEURUN_IR_OPERATION_ADD_H__
-
-#include "ir/Operation.h"
-#include "ir/InternalType.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class Add : public Operation
-{
-public:
- enum Input
- {
- LHS = 0,
- RHS
- };
-
- struct Param
- {
- Activation activation;
- };
-
-public:
- Add(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs, const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::Add; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_ADD_H__
diff --git a/runtime/neurun/core/include/ir/operation/ArgMax.h b/runtime/neurun/core/include/ir/operation/ArgMax.h
deleted file mode 100644
index 23f52710f..000000000
--- a/runtime/neurun/core/include/ir/operation/ArgMax.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_ARG_MAX_H__
-#define __NEURUN_IR_OPERATION_ARG_MAX_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class ArgMax : public Operation
-{
-public:
- enum Input
- {
- INPUT
- };
-
- struct Param
- {
- int axis;
- int rank;
- };
-
-public:
- ArgMax(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs,
- const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::ArgMax; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_ARG_MAX_H__
diff --git a/runtime/neurun/core/include/ir/operation/AvgPool2D.h b/runtime/neurun/core/include/ir/operation/AvgPool2D.h
deleted file mode 100644
index a03628184..000000000
--- a/runtime/neurun/core/include/ir/operation/AvgPool2D.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_AVGPOOL2D_H__
-#define __NEURUN_IR_OPERATION_AVGPOOL2D_H__
-
-#include <memory>
-
-#include "ir/Operation.h"
-#include "ir/InternalType.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class AvgPool2D : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0
- };
-
- struct Param
- {
- uint32_t kh;
- uint32_t kw;
-
- Stride stride;
- Padding padding;
- Activation activation;
- };
-
-public:
- AvgPool2D(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs,
- const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::AvgPool2D; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_AVGPOOL2D_H__
diff --git a/runtime/neurun/core/include/ir/operation/BatchToSpaceND.h b/runtime/neurun/core/include/ir/operation/BatchToSpaceND.h
deleted file mode 100644
index b90d2871d..000000000
--- a/runtime/neurun/core/include/ir/operation/BatchToSpaceND.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_BATCH_TO_SPACE_ND_H__
-#define __NEURUN_IR_OPERATION_BATCH_TO_SPACE_ND_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class BatchToSpaceND : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0,
- BLOCK_SIZE = 1
- };
-
-public:
- BatchToSpaceND(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::BatchToSpaceND; }
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_BATCH_TO_SPACE_ND_H__
diff --git a/runtime/neurun/core/include/ir/operation/Cast.h b/runtime/neurun/core/include/ir/operation/Cast.h
deleted file mode 100644
index a71087dd0..000000000
--- a/runtime/neurun/core/include/ir/operation/Cast.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_CAST_H__
-#define __NEURUN_IR_OPERATION_CAST_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class Cast : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0
- };
-
-public:
- Cast(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::Cast; }
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_CAST_H__
diff --git a/runtime/neurun/core/include/ir/operation/Comparison.h b/runtime/neurun/core/include/ir/operation/Comparison.h
deleted file mode 100644
index 23c775c42..000000000
--- a/runtime/neurun/core/include/ir/operation/Comparison.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_COMPARISON_H__
-#define __NEURUN_IR_OPERATION_COMPARISON_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class Comparison : public Operation
-{
-public:
- enum Input
- {
- INPUT0 = 0,
- INPUT1
- };
-
- enum class ComparisonType
- {
- Equal,
- NotEqual,
- Greater,
- GreaterEqual,
- Less,
- LessEqual
- };
-
- struct Param
- {
- ComparisonType comparison_type;
- };
-
-public:
- Comparison(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs,
- const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::Comparison; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_COMPARISON_H__
diff --git a/runtime/neurun/core/include/ir/operation/Concat.h b/runtime/neurun/core/include/ir/operation/Concat.h
deleted file mode 100644
index 8628ed398..000000000
--- a/runtime/neurun/core/include/ir/operation/Concat.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_CONCAT_H__
-#define __NEURUN_IR_OPERATION_CONCAT_H__
-
-#include <memory>
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class Concat : public Operation
-{
-public:
- struct Param
- {
- int32_t axis;
- int32_t rank;
- };
-
-public:
- Concat(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs,
- const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::Concat; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_CONCAT_H__
diff --git a/runtime/neurun/core/include/ir/operation/Conv2D.h b/runtime/neurun/core/include/ir/operation/Conv2D.h
deleted file mode 100644
index 1215666e9..000000000
--- a/runtime/neurun/core/include/ir/operation/Conv2D.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_CONV2D_H__
-#define __NEURUN_IR_OPERATION_CONV2D_H__
-
-#include <memory>
-
-#include "ir/Operation.h"
-#include "ir/InternalType.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class Conv2D : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0,
- KERNEL,
- BIAS
- };
-
- struct Param
- {
- Stride stride;
- Padding padding;
- Activation activation;
- };
-
-public:
- Conv2D(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs,
- const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::Conv2D; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_CONV2D_H__
diff --git a/runtime/neurun/core/include/ir/operation/Custom.h b/runtime/neurun/core/include/ir/operation/Custom.h
deleted file mode 100644
index 03501e8ef..000000000
--- a/runtime/neurun/core/include/ir/operation/Custom.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * 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.
- */
-#ifndef __NEURUN_IR_OPERATION_CUSTOM_H__
-#define __NEURUN_IR_OPERATION_CUSTOM_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class Custom : public Operation
-{
-public:
- struct Userdata
- {
- char *data;
- size_t size;
- };
-
- Custom(OperandConstraint input_constr, const OperandIndexSequence &inputs,
- const OperandIndexSequence &outputs, std::string id, const Userdata &userdata);
-
- void accept(OperationVisitor &v) const override;
-
-public:
- /**
- * @return unique operation identifier
- */
- const std::string &id() const;
-
- std::string name() const override;
- OpCode opcode() const final { return OpCode::Custom; }
-
- /**
- * @return user-provided data
- */
- const Userdata &userdata() const;
-
- ~Custom() override;
-
-private:
- std::string _id;
- Userdata _userdata;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-#endif // __NEURUN_IR_OPERATION_CUSTOM_H__
diff --git a/runtime/neurun/core/include/ir/operation/DepthToSpace.h b/runtime/neurun/core/include/ir/operation/DepthToSpace.h
deleted file mode 100644
index 6e7aaf249..000000000
--- a/runtime/neurun/core/include/ir/operation/DepthToSpace.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_DEPTH_TO_SPACE_H__
-#define __NEURUN_IR_OPERATION_DEPTH_TO_SPACE_H__
-
-#include <memory>
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class DepthToSpace : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0
- };
-
- struct Param
- {
- std::int32_t block_size;
- };
-
-public:
- DepthToSpace(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs,
- const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::DepthToSpace; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_DEPTH_TO_SPACE_H__
diff --git a/runtime/neurun/core/include/ir/operation/DepthwiseConv2D.h b/runtime/neurun/core/include/ir/operation/DepthwiseConv2D.h
deleted file mode 100644
index 1f0926fa8..000000000
--- a/runtime/neurun/core/include/ir/operation/DepthwiseConv2D.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_DEPTHWISECONV2D_H__
-#define __NEURUN_IR_OPERATION_DEPTHWISECONV2D_H__
-
-#include <memory>
-
-#include "ir/Operation.h"
-#include "ir/InternalType.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class DepthwiseConv2D : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0,
- KERNEL,
- BIAS
- };
-
- struct Param
- {
- Stride stride;
- Padding padding;
- uint32_t multiplier;
- Activation activation;
- };
-
-public:
- DepthwiseConv2D(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs,
- const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::DepthwiseConv2D; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_DEPTHWISECONV2D_H__
diff --git a/runtime/neurun/core/include/ir/operation/Dequantize.h b/runtime/neurun/core/include/ir/operation/Dequantize.h
deleted file mode 100644
index dfca278cd..000000000
--- a/runtime/neurun/core/include/ir/operation/Dequantize.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_DEQUANTIZE_H__
-#define __NEURUN_IR_OPERATION_DEQUANTIZE_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class Dequantize : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0
- };
-
-public:
- Dequantize(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::Dequantize; }
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_DEQUANTIZE_H__
diff --git a/runtime/neurun/core/include/ir/operation/Div.h b/runtime/neurun/core/include/ir/operation/Div.h
deleted file mode 100644
index d3e744472..000000000
--- a/runtime/neurun/core/include/ir/operation/Div.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_DIV_H__
-#define __NEURUN_IR_OPERATION_DIV_H__
-
-#include "ir/Operation.h"
-#include "ir/InternalType.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class Div : public Operation
-{
-public:
- enum Input
- {
- LHS = 0,
- RHS
- };
-
- struct Param
- {
- Activation activation;
- };
-
-public:
- Div(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs, const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::Div; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_DIV_H__
diff --git a/runtime/neurun/core/include/ir/operation/EmbeddingLookup.h b/runtime/neurun/core/include/ir/operation/EmbeddingLookup.h
deleted file mode 100644
index 968b7b35a..000000000
--- a/runtime/neurun/core/include/ir/operation/EmbeddingLookup.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_EMBEDDING_LOOKUP_H__
-#define __NEURUN_IR_OPERATION_EMBEDDING_LOOKUP_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class EmbeddingLookup : public Operation
-{
-public:
- enum Input
- {
- LOOKUPS = 0,
- VALUES = 1
- };
-
-public:
- EmbeddingLookup(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::EmbeddingLookup; }
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_EMBEDDING_LOOKUP_H__
diff --git a/runtime/neurun/core/include/ir/operation/Exp.h b/runtime/neurun/core/include/ir/operation/Exp.h
deleted file mode 100644
index 8e04f3f7f..000000000
--- a/runtime/neurun/core/include/ir/operation/Exp.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_EXP_H__
-#define __NEURUN_IR_OPERATION_EXP_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class Exp : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0
- };
-
-public:
- Exp(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::Exp; }
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_EXP_H__
diff --git a/runtime/neurun/core/include/ir/operation/Floor.h b/runtime/neurun/core/include/ir/operation/Floor.h
deleted file mode 100644
index ca4cf9881..000000000
--- a/runtime/neurun/core/include/ir/operation/Floor.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_FLOOR_H__
-#define __NEURUN_IR_OPERATION_FLOOR_H__
-
-#include <memory>
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class Floor : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0
- };
-
-public:
- Floor(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::Floor; }
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_FLOOR_H__
diff --git a/runtime/neurun/core/include/ir/operation/FullyConnected.h b/runtime/neurun/core/include/ir/operation/FullyConnected.h
deleted file mode 100644
index 1ffa1318d..000000000
--- a/runtime/neurun/core/include/ir/operation/FullyConnected.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_FULLYCONNECTED_H__
-#define __NEURUN_IR_OPERATION_FULLYCONNECTED_H__
-
-#include <memory>
-
-#include "ir/Operation.h"
-#include "ir/InternalType.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class FullyConnected : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0,
- WEIGHT,
- BIAS
- };
-
- struct Param
- {
- Activation activation;
- };
-
-public:
- FullyConnected(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs,
- const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::FullyConnected; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_FULLYCONNECTED_H__
diff --git a/runtime/neurun/core/include/ir/operation/Gather.h b/runtime/neurun/core/include/ir/operation/Gather.h
deleted file mode 100644
index 13540d413..000000000
--- a/runtime/neurun/core/include/ir/operation/Gather.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_GATHER_H__
-#define __NEURUN_IR_OPERATION_GATHER_H__
-
-#include <memory>
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class Gather : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0,
- INDICES,
- };
-
- struct Param
- {
- int32_t axis;
- int32_t rank;
- };
-
-public:
- Gather(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs,
- const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::Gather; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_GATHER_H__
diff --git a/runtime/neurun/core/include/ir/operation/HashtableLookup.h b/runtime/neurun/core/include/ir/operation/HashtableLookup.h
deleted file mode 100644
index fb6c97607..000000000
--- a/runtime/neurun/core/include/ir/operation/HashtableLookup.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_HASHTABLE_LOOKUP_H__
-#define __NEURUN_IR_OPERATION_HASHTABLE_LOOKUP_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class HashtableLookup : public Operation
-{
-public:
- enum Input
- {
- LOOKUPS = 0,
- KEYS = 1,
- VALUES = 2
- };
-
- enum Output
- {
- OUTPUT = 0,
- HITS = 1
- };
-
-public:
- HashtableLookup(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::HashtableLookup; }
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_HASHTABLE_LOOKUP_H__
diff --git a/runtime/neurun/core/include/ir/operation/InstanceNorm.h b/runtime/neurun/core/include/ir/operation/InstanceNorm.h
deleted file mode 100644
index cbd03ad1f..000000000
--- a/runtime/neurun/core/include/ir/operation/InstanceNorm.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_INSTANCE_NORM_H__
-#define __NEURUN_IR_OPERATION_INSTANCE_NORM_H__
-
-#include "ir/Operation.h"
-#include "ir/InternalType.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class InstanceNorm : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0,
- GAMMA,
- BETA
- };
-
- struct Param
- {
- Activation activation;
- float epsilon;
- };
-
-public:
- InstanceNorm(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs,
- const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::InstanceNorm; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_INSTANCE_NORM_H__
diff --git a/runtime/neurun/core/include/ir/operation/L2Normalization.h b/runtime/neurun/core/include/ir/operation/L2Normalization.h
deleted file mode 100644
index e2c1f4eee..000000000
--- a/runtime/neurun/core/include/ir/operation/L2Normalization.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_L2_NORMALIZATION_H__
-#define __NEURUN_IR_OPERATION_L2_NORMALIZATION_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class L2Normalization : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0
- };
-
-public:
- struct Param
- {
- int32_t rank;
- };
-
-public:
- L2Normalization(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs,
- const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::L2Normalization; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_L2_NORMALIZATION_H__
diff --git a/runtime/neurun/core/include/ir/operation/L2Pool2D.h b/runtime/neurun/core/include/ir/operation/L2Pool2D.h
deleted file mode 100644
index 6d4d72ee2..000000000
--- a/runtime/neurun/core/include/ir/operation/L2Pool2D.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_L2_POOL_2D_H__
-#define __NEURUN_IR_OPERATION_L2_POOL_2D_H__
-
-#include <memory>
-
-#include "ir/Operation.h"
-#include "ir/InternalType.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class L2Pool2D : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0,
- };
-
- struct Param
- {
- Padding padding;
- Stride stride;
- uint32_t kw;
- uint32_t kh;
- Activation activation;
- };
-
-public:
- L2Pool2D(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs,
- const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::L2Pool2D; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_L2_POOL_2D_H__
diff --git a/runtime/neurun/core/include/ir/operation/LSTM.h b/runtime/neurun/core/include/ir/operation/LSTM.h
deleted file mode 100644
index 2ea09b1b7..000000000
--- a/runtime/neurun/core/include/ir/operation/LSTM.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * 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.
- */
-#ifndef __NEURUN_IR_OPERATION_LSTM_H__
-#define __NEURUN_IR_OPERATION_LSTM_H__
-
-#include "ir/InternalType.h"
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class LSTM : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0,
- INPUT_TO_INPUT_WEIGHTS = 1,
- INPUT_TO_FORGET_WEIGHTS = 2,
- INPUT_TO_CELL_WEIGHTS = 3,
- INPUT_TO_OUTPUT_WEIGHTS = 4,
- RECURRENT_TO_INPUT_WEIGHTS = 5,
- RECURRENT_TO_FORGET_WEIGHTS = 6,
- RECURRENT_TO_CELL_WEIGHTS = 7,
- RECURRENT_TO_OUTPUT_WEIGHTS = 8,
- CELL_TO_INPUT_WEIGHTS = 9,
- CELL_TO_FORGET_WEIGHTS = 10,
- CELL_TO_OUTPUT_WEIGHTS = 11,
- INPUT_GATE_BIAS = 12,
- FORGET_GATE_BIAS = 13,
- CELL_BIAS = 14,
- OUTPUT_GATE_BIAS = 15,
- PROJECTION_WEIGHTS = 16,
- PROJECTION_BIAS = 17,
- OUTPUT_STATE_IN = 18,
- CELL_STATE_IN = 19,
- };
-
- enum Output
- {
- SCRATCH_BUFFER = 0,
- OUTPUT_STATE_OUT = 1,
- CELL_STATE_OUT = 2,
- OUTPUT = 3
- };
-
- struct Param
- {
- Activation activation;
- float cell_threshold;
- float projection_threshold;
- };
-
-public:
- LSTM(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs, const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::LSTM; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_LSTM_H__
diff --git a/runtime/neurun/core/include/ir/operation/LocalResponseNormalization.h b/runtime/neurun/core/include/ir/operation/LocalResponseNormalization.h
deleted file mode 100644
index 3fbf2e4ae..000000000
--- a/runtime/neurun/core/include/ir/operation/LocalResponseNormalization.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_LOCAL_RESPONSE_NORMALIZATION_H__
-#define __NEURUN_IR_OPERATION_LOCAL_RESPONSE_NORMALIZATION_H__
-
-#include <memory>
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class LocalResponseNormalization : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0
- };
-
- struct Param
- {
- int radius;
- float bias;
- float alpha;
- float beta;
- };
-
-public:
- LocalResponseNormalization(const OperandIndexSequence &inputs,
- const OperandIndexSequence &outputs, const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::LocalResponseNormalization; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_LOCAL_RESPONSE_NORMALIZATION_H__
diff --git a/runtime/neurun/core/include/ir/operation/LogicalAnd.h b/runtime/neurun/core/include/ir/operation/LogicalAnd.h
deleted file mode 100644
index f7b03d62d..000000000
--- a/runtime/neurun/core/include/ir/operation/LogicalAnd.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_LOGICAL_AND_H__
-#define __NEURUN_IR_OPERATION_LOGICAL_AND_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class LogicalAnd : public Operation
-{
-public:
- enum Input
- {
- INPUT0 = 0,
- INPUT1 = 1,
- };
-
-public:
- LogicalAnd(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::LogicalAnd; }
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_LOGICAL_AND_H__
diff --git a/runtime/neurun/core/include/ir/operation/LogicalNot.h b/runtime/neurun/core/include/ir/operation/LogicalNot.h
deleted file mode 100644
index e689d57b2..000000000
--- a/runtime/neurun/core/include/ir/operation/LogicalNot.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_LOGICAL_NOT_H__
-#define __NEURUN_IR_OPERATION_LOGICAL_NOT_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class LogicalNot : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0,
- };
-
-public:
- LogicalNot(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::LogicalNot; }
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_LOGICAL_NOT_H__
diff --git a/runtime/neurun/core/include/ir/operation/LogicalOr.h b/runtime/neurun/core/include/ir/operation/LogicalOr.h
deleted file mode 100644
index fda6b20d7..000000000
--- a/runtime/neurun/core/include/ir/operation/LogicalOr.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_LOGICAL_OR_H__
-#define __NEURUN_IR_OPERATION_LOGICAL_OR_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class LogicalOr : public Operation
-{
-public:
- enum Input
- {
- INPUT0 = 0,
- INPUT1 = 1,
- };
-
-public:
- LogicalOr(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::LogicalOr; }
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_LOGICAL_OR_H__
diff --git a/runtime/neurun/core/include/ir/operation/Logistic.h b/runtime/neurun/core/include/ir/operation/Logistic.h
deleted file mode 100644
index b23e7ef3f..000000000
--- a/runtime/neurun/core/include/ir/operation/Logistic.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_LOGISTIC_H__
-#define __NEURUN_IR_OPERATION_LOGISTIC_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class Logistic : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0
- };
-
-public:
- Logistic(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::Logistic; }
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_LOGISTIC_H__
diff --git a/runtime/neurun/core/include/ir/operation/LowerInfo.h b/runtime/neurun/core/include/ir/operation/LowerInfo.h
deleted file mode 100644
index 856976a0c..000000000
--- a/runtime/neurun/core/include/ir/operation/LowerInfo.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_LOWER_INFO_H__
-#define __NEURUN_IR_OPERATION_LOWER_INFO_H__
-
-#include <string>
-
-#include <ir/operand/PermuteFactor.h>
-
-namespace neurun
-{
-namespace backend
-{
-class Backend;
-} // namespace backend
-} // namespace neurun
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class LowerInfo
-{
-public:
- LowerInfo(const backend::Backend *backend, Layout layout);
- const backend::Backend *backend() const { return _permute_factor.backend(); }
- Layout layout() const { return _permute_factor.layout(); }
-
-private:
- operand::PermuteFactor _permute_factor;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_LOWER_INFO_H__
diff --git a/runtime/neurun/core/include/ir/operation/Max.h b/runtime/neurun/core/include/ir/operation/Max.h
deleted file mode 100644
index 1675f9f72..000000000
--- a/runtime/neurun/core/include/ir/operation/Max.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_MAX_H__
-#define __NEURUN_IR_OPERATION_MAX_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class Max : public Operation
-{
-public:
- enum Input
- {
- LHS = 0,
- RHS
- };
-
-public:
- Max(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::Max; }
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_MAX_H__
diff --git a/runtime/neurun/core/include/ir/operation/MaxPool2D.h b/runtime/neurun/core/include/ir/operation/MaxPool2D.h
deleted file mode 100644
index c0f0939aa..000000000
--- a/runtime/neurun/core/include/ir/operation/MaxPool2D.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_MAXPOOL2D_H__
-#define __NEURUN_IR_OPERATION_MAXPOOL2D_H__
-
-#include <memory>
-
-#include "ir/Operation.h"
-#include "ir/InternalType.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class MaxPool2D : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0
- };
-
- struct Param
- {
- uint32_t kh;
- uint32_t kw;
- Stride stride;
- Padding padding;
- Activation activation;
- };
-
-public:
- MaxPool2D(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs,
- const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::MaxPool2D; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_MAXPOOL2D_H__
diff --git a/runtime/neurun/core/include/ir/operation/Mean.h b/runtime/neurun/core/include/ir/operation/Mean.h
deleted file mode 100644
index cce8de377..000000000
--- a/runtime/neurun/core/include/ir/operation/Mean.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_MEAN_H__
-#define __NEURUN_IR_OPERATION_MEAN_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class Mean : public Operation
-{
-public:
- enum Input
- {
- INPUT
- };
-
- struct Param
- {
- std::vector<int> axes;
- bool keep_dims;
- int32_t rank;
- };
-
-public:
- Mean(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs, const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::Mean; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_MEAN_H__
diff --git a/runtime/neurun/core/include/ir/operation/Min.h b/runtime/neurun/core/include/ir/operation/Min.h
deleted file mode 100644
index fac901f21..000000000
--- a/runtime/neurun/core/include/ir/operation/Min.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_MIN_H__
-#define __NEURUN_IR_OPERATION_MIN_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class Min : public Operation
-{
-public:
- enum Input
- {
- LHS = 0,
- RHS
- };
-
-public:
- Min(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::Min; }
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_MIN_H__
diff --git a/runtime/neurun/core/include/ir/operation/Mul.h b/runtime/neurun/core/include/ir/operation/Mul.h
deleted file mode 100644
index f6cfe2afb..000000000
--- a/runtime/neurun/core/include/ir/operation/Mul.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_MUL_H__
-#define __NEURUN_IR_OPERATION_MUL_H__
-
-#include "ir/Operation.h"
-#include "ir/InternalType.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class Mul : public Operation
-{
-public:
- enum Input
- {
- LHS = 0,
- RHS
- };
-
- struct Param
- {
- Activation activation;
- };
-
-public:
- Mul(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs, const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::Mul; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_MUL_H__
diff --git a/runtime/neurun/core/include/ir/operation/Neg.h b/runtime/neurun/core/include/ir/operation/Neg.h
deleted file mode 100644
index ec364f8ad..000000000
--- a/runtime/neurun/core/include/ir/operation/Neg.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_NEG_H__
-#define __NEURUN_IR_OPERATION_NEG_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class Neg : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0
- };
-
-public:
- Neg(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::Neg; }
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_NEG_H__
diff --git a/runtime/neurun/core/include/ir/operation/OneHot.h b/runtime/neurun/core/include/ir/operation/OneHot.h
deleted file mode 100644
index 5fbc5d45f..000000000
--- a/runtime/neurun/core/include/ir/operation/OneHot.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_ONEHOT_H__
-#define __NEURUN_IR_OPERATION_ONEHOT_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class OneHot : public Operation
-{
-public:
- enum Input
- {
- INDICES = 0,
- DEPTH = 1,
- ON_VALUE = 2,
- OFF_VALUE = 3,
- };
-
- struct Param
- {
- int axis;
- };
-
-public:
- OneHot(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs,
- const Param &param);
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::OneHot; }
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_ONEHOT_H__
diff --git a/runtime/neurun/core/include/ir/operation/PReLU.h b/runtime/neurun/core/include/ir/operation/PReLU.h
deleted file mode 100644
index 8c00c46fd..000000000
--- a/runtime/neurun/core/include/ir/operation/PReLU.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_PRELU_H__
-#define __NEURUN_IR_OPERATION_PRELU_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class PReLU : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0,
- ALPHA = 1
- };
-
-public:
- PReLU(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::PReLU; }
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_PRELU_H__
diff --git a/runtime/neurun/core/include/ir/operation/Pack.h b/runtime/neurun/core/include/ir/operation/Pack.h
deleted file mode 100644
index ccf73fe5c..000000000
--- a/runtime/neurun/core/include/ir/operation/Pack.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * 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.
- */
-#ifndef __NEURUN_IR_OPERATION_PACK_H__
-#define __NEURUN_IR_OPERATION_PACK_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-class Pack : public Operation
-{
-public:
- struct Param
- {
- int32_t num;
- int32_t axis;
- int32_t rank;
- };
-
-public:
- Pack(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs, const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::Pack; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-#endif // __NEURUN_IR_OPERATION_PACK_H__
diff --git a/runtime/neurun/core/include/ir/operation/Pad.h b/runtime/neurun/core/include/ir/operation/Pad.h
deleted file mode 100644
index 8e8304fae..000000000
--- a/runtime/neurun/core/include/ir/operation/Pad.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_PAD_H__
-#define __NEURUN_IR_OPERATION_PAD_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class Pad : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0,
- PAD = 1,
- // VALUE = 2 Not allow padding value operand yet
- };
-
-public:
- struct Param
- {
- int32_t rank;
- };
-
-public:
- Pad(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs, const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::Pad; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_PAD_H__
diff --git a/runtime/neurun/core/include/ir/operation/Permute.h b/runtime/neurun/core/include/ir/operation/Permute.h
deleted file mode 100644
index f91f9571b..000000000
--- a/runtime/neurun/core/include/ir/operation/Permute.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_PERMUTE_H__
-#define __NEURUN_IR_OPERATION_PERMUTE_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace backend
-{
-class BackendContext;
-} // namespace backend
-} // namespace neurun
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class Permute : public Operation
-{
-public:
- enum class Type
- {
- NHWC_TO_NCHW,
- NCHW_TO_NHWC,
- COPY
- };
-
- struct Param
- {
- const backend::BackendContext *input_backend_ctx;
- const backend::BackendContext *output_backend_ctx;
- };
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::Permute; }
-
-public:
- Permute(const OperandIndex &input, const OperandIndex &output,
- const backend::BackendContext *input_backend_ctx,
- const backend::BackendContext *output_backend_ctx, Type type,
- DataType data_type = DataType::FLOAT32);
-
-public:
- const Param &param() const { return _param; }
- DataType getDataType() const { return _dataType; }
- Type getPermuteType() const { return _type; }
-
-private:
- Param _param;
- Type _type;
- DataType _dataType;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_PERMUTE_H__
diff --git a/runtime/neurun/core/include/ir/operation/RNN.h b/runtime/neurun/core/include/ir/operation/RNN.h
deleted file mode 100644
index d812a6fc3..000000000
--- a/runtime/neurun/core/include/ir/operation/RNN.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * 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.
- */
-#ifndef __NEURUN_IR_OPERATION_RNN_H__
-#define __NEURUN_IR_OPERATION_RNN_H__
-
-#include "ir/InternalType.h"
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class RNN : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0,
- WEIGHTS = 1,
- RECURRENT_WEIGHTS = 2,
- BIAS = 3,
- HIDDEN_STATE_IN = 4
- };
-
- enum Output
- {
- OUTPUT = 0,
- HIDDEN_STATE_OUT = 1
- };
-
- struct Param
- {
- Activation activation;
- };
-
-public:
- RNN(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs, const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::RNN; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_RNN_H__
diff --git a/runtime/neurun/core/include/ir/operation/RSQRT.h b/runtime/neurun/core/include/ir/operation/RSQRT.h
deleted file mode 100644
index 33648555a..000000000
--- a/runtime/neurun/core/include/ir/operation/RSQRT.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_RSQRT_H__
-#define __NEURUN_IR_OPERATION_RSQRT_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class RSQRT : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0
- };
-
-public:
- RSQRT(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::RSQRT; }
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_RSQRT_H__
diff --git a/runtime/neurun/core/include/ir/operation/ReLU.h b/runtime/neurun/core/include/ir/operation/ReLU.h
deleted file mode 100644
index b6c7fdf01..000000000
--- a/runtime/neurun/core/include/ir/operation/ReLU.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_RELU_H__
-#define __NEURUN_IR_OPERATION_RELU_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class ReLU : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0
- };
-
-public:
- ReLU(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::ReLU; }
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_RELU_H__
diff --git a/runtime/neurun/core/include/ir/operation/ReLU1.h b/runtime/neurun/core/include/ir/operation/ReLU1.h
deleted file mode 100644
index ac45fda05..000000000
--- a/runtime/neurun/core/include/ir/operation/ReLU1.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_ReLU1_H__
-#define __NEURUN_IR_OPERATION_ReLU1_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class ReLU1 : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0
- };
-
-public:
- ReLU1(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::ReLU1; }
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_ReLU1_H__
diff --git a/runtime/neurun/core/include/ir/operation/ReLU6.h b/runtime/neurun/core/include/ir/operation/ReLU6.h
deleted file mode 100644
index 4d98dad55..000000000
--- a/runtime/neurun/core/include/ir/operation/ReLU6.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_ReLU6_H__
-#define __NEURUN_IR_OPERATION_ReLU6_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class ReLU6 : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0
- };
-
-public:
- ReLU6(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::ReLU6; }
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_ReLU6_H__
diff --git a/runtime/neurun/core/include/ir/operation/ReduceMax.h b/runtime/neurun/core/include/ir/operation/ReduceMax.h
deleted file mode 100644
index da4d7c4cc..000000000
--- a/runtime/neurun/core/include/ir/operation/ReduceMax.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_REDUCEMAX_H__
-#define __NEURUN_IR_OPERATION_REDUCEMAX_H__
-
-#include <memory>
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class ReduceMax : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0
- };
-
- struct Param
- {
- std::vector<int> axes;
- bool keep_dims;
- int32_t rank;
- };
-
-public:
- ReduceMax(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs,
- const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::ReduceMax; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_REDUCEMAX_H__
diff --git a/runtime/neurun/core/include/ir/operation/ReduceMin.h b/runtime/neurun/core/include/ir/operation/ReduceMin.h
deleted file mode 100644
index f79fdeaea..000000000
--- a/runtime/neurun/core/include/ir/operation/ReduceMin.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_REDUCEMIN_H__
-#define __NEURUN_IR_OPERATION_REDUCEMIN_H__
-
-#include <memory>
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class ReduceMin : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0
- };
-
- struct Param
- {
- std::vector<int> axes;
- bool keep_dims;
- int32_t rank;
- };
-
-public:
- ReduceMin(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs,
- const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::ReduceMin; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_REDUCEMIN_H__
diff --git a/runtime/neurun/core/include/ir/operation/ReduceSum.h b/runtime/neurun/core/include/ir/operation/ReduceSum.h
deleted file mode 100644
index b5ab8ee75..000000000
--- a/runtime/neurun/core/include/ir/operation/ReduceSum.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_REDUCE_SUM_H__
-#define __NEURUN_IR_OPERATION_REDUCE_SUM_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class ReduceSum : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0
- };
-
- struct Param
- {
- std::vector<int> axes;
- bool keep_dims;
- int32_t rank;
- };
-
-public:
- ReduceSum(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs,
- const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::ReduceSum; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_REDUCE_SUM_H__
diff --git a/runtime/neurun/core/include/ir/operation/Reshape.h b/runtime/neurun/core/include/ir/operation/Reshape.h
deleted file mode 100644
index e476d7fe1..000000000
--- a/runtime/neurun/core/include/ir/operation/Reshape.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_RESHAPE_H__
-#define __NEURUN_IR_OPERATION_RESHAPE_H__
-
-#include <memory>
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class Reshape : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0
- };
-
-public:
- Reshape(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::Reshape; }
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_RESHAPE_H__
diff --git a/runtime/neurun/core/include/ir/operation/ResizeBilinear.h b/runtime/neurun/core/include/ir/operation/ResizeBilinear.h
deleted file mode 100644
index d937da00c..000000000
--- a/runtime/neurun/core/include/ir/operation/ResizeBilinear.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_RESIZE_BILINEAR_H__
-#define __NEURUN_IR_OPERATION_RESIZE_BILINEAR_H__
-
-#include <memory>
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class ResizeBilinear : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0
- };
-
- struct Param
- {
- int32_t height_out;
- int32_t width_out;
- };
-
-public:
- ResizeBilinear(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs,
- const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::ResizeBilinear; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_RESIZE_BILINEAR_H__
diff --git a/runtime/neurun/core/include/ir/operation/SQRT.h b/runtime/neurun/core/include/ir/operation/SQRT.h
deleted file mode 100644
index 5e21315b4..000000000
--- a/runtime/neurun/core/include/ir/operation/SQRT.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_SQRT_H__
-#define __NEURUN_IR_OPERATION_SQRT_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class SQRT : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0
- };
-
-public:
- SQRT(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::SQRT; }
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_SQRT_H__
diff --git a/runtime/neurun/core/include/ir/operation/Slice.h b/runtime/neurun/core/include/ir/operation/Slice.h
deleted file mode 100644
index 4b79f42a6..000000000
--- a/runtime/neurun/core/include/ir/operation/Slice.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_SLICE_H__
-#define __NEURUN_IR_OPERATION_SLICE_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class Slice : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0,
- BEGINS = 1,
- SIZES = 2,
- };
-
-public:
- struct Param
- {
- int32_t rank;
- };
-
-public:
- Slice(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs,
- const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::Slice; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_SLICE_H__
diff --git a/runtime/neurun/core/include/ir/operation/Softmax.h b/runtime/neurun/core/include/ir/operation/Softmax.h
deleted file mode 100644
index a3e896fed..000000000
--- a/runtime/neurun/core/include/ir/operation/Softmax.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_SOFTMAX_H__
-#define __NEURUN_IR_OPERATION_SOFTMAX_H__
-
-#include <memory>
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class Softmax : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0
- };
-
- struct Param
- {
- float beta;
- };
-
-public:
- Softmax(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs,
- const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::Softmax; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_SOFTMAX_H__
diff --git a/runtime/neurun/core/include/ir/operation/SpaceToBatchND.h b/runtime/neurun/core/include/ir/operation/SpaceToBatchND.h
deleted file mode 100644
index 4ca0978b0..000000000
--- a/runtime/neurun/core/include/ir/operation/SpaceToBatchND.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_SPACE_TO_BATCH_ND_H__
-#define __NEURUN_IR_OPERATION_SPACE_TO_BATCH_ND_H__
-
-#include <memory>
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class SpaceToBatchND : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0,
- BLOCK_SIZE = 1,
- PADDINGS = 2
- };
-
-public:
- SpaceToBatchND(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::SpaceToBatchND; }
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_SPACE_TO_BATCH_ND_H__
diff --git a/runtime/neurun/core/include/ir/operation/SpaceToDepth.h b/runtime/neurun/core/include/ir/operation/SpaceToDepth.h
deleted file mode 100644
index 9e77bdae0..000000000
--- a/runtime/neurun/core/include/ir/operation/SpaceToDepth.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_SPACE_TO_DEPTH_H__
-#define __NEURUN_IR_OPERATION_SPACE_TO_DEPTH_H__
-
-#include <memory>
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class SpaceToDepth : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0
- };
-
- struct Param
- {
- std::int32_t block_size;
- };
-
-public:
- SpaceToDepth(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs,
- const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::SpaceToDepth; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_SPACE_TO_DEPTH_H__
diff --git a/runtime/neurun/core/include/ir/operation/Split.h b/runtime/neurun/core/include/ir/operation/Split.h
deleted file mode 100644
index 7a2749e84..000000000
--- a/runtime/neurun/core/include/ir/operation/Split.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * 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.
- */
-#ifndef __NEURUN_IR_OPERATION_SPLIT_H__
-#define __NEURUN_IR_OPERATION_SPLIT_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-class Split : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0
- };
-
- struct Param
- {
- int axis;
- int num_splits;
- int rank;
- };
-
-public:
- Split(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs,
- const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::Split; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-#endif // __NEURUN_IR_OPERATION_SPLIT_H__
diff --git a/runtime/neurun/core/include/ir/operation/SquaredDifference.h b/runtime/neurun/core/include/ir/operation/SquaredDifference.h
deleted file mode 100644
index 46df419f5..000000000
--- a/runtime/neurun/core/include/ir/operation/SquaredDifference.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_SQUARED_DIFFERENCE_H__
-#define __NEURUN_IR_OPERATION_SQUARED_DIFFERENCE_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class SquaredDifference : public Operation
-{
-public:
- enum Input
- {
- LHS = 0,
- RHS
- };
-
-public:
- SquaredDifference(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::SquaredDifference; }
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_SQUARED_DIFFERENCE_H__
diff --git a/runtime/neurun/core/include/ir/operation/Squeeze.h b/runtime/neurun/core/include/ir/operation/Squeeze.h
deleted file mode 100644
index d27b315b5..000000000
--- a/runtime/neurun/core/include/ir/operation/Squeeze.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_SQUEEZE_H__
-#define __NEURUN_IR_OPERATION_SQUEEZE_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class Squeeze : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0
- };
-
- struct Param
- {
- // Please see tensorflow/lite/c/builtin_op_data.h and squeeze.cc.
- // tensorflow lite supports only for ndim <= 8.
- int dims[8];
- int ndim;
- };
-
-public:
- Squeeze(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs,
- const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::Squeeze; }
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_SQUEEZE_H__
diff --git a/runtime/neurun/core/include/ir/operation/StridedSlice.h b/runtime/neurun/core/include/ir/operation/StridedSlice.h
deleted file mode 100644
index 868bda72c..000000000
--- a/runtime/neurun/core/include/ir/operation/StridedSlice.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_STRIDED_SLICE_H__
-#define __NEURUN_IR_OPERATION_STRIDED_SLICE_H__
-
-#include <memory>
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class StridedSlice : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0,
- STARTS = 1,
- ENDS = 2,
- STRIDES = 3
- };
-
- struct Param
- {
- std::int32_t begin_mask;
- std::int32_t end_mask;
- std::int32_t shrink_axis_mask;
- int32_t rank;
- };
-
-public:
- StridedSlice(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs,
- const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::StridedSlice; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_STRIDED_SLICE_H__
diff --git a/runtime/neurun/core/include/ir/operation/Sub.h b/runtime/neurun/core/include/ir/operation/Sub.h
deleted file mode 100644
index e5850af8c..000000000
--- a/runtime/neurun/core/include/ir/operation/Sub.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_SUB_H__
-#define __NEURUN_IR_OPERATION_SUB_H__
-
-#include "ir/Operation.h"
-#include "ir/InternalType.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class Sub : public Operation
-{
-public:
- enum Input
- {
- LHS = 0,
- RHS
- };
-
- struct Param
- {
- Activation activation;
- };
-
-public:
- Sub(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs, const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::Sub; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_SUB_H__
diff --git a/runtime/neurun/core/include/ir/operation/Tanh.h b/runtime/neurun/core/include/ir/operation/Tanh.h
deleted file mode 100644
index 814ceec5a..000000000
--- a/runtime/neurun/core/include/ir/operation/Tanh.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_TANH_H__
-#define __NEURUN_IR_OPERATION_TANH_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class Tanh : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0
- };
-
-public:
- Tanh(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::Tanh; }
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_TANH_H__
diff --git a/runtime/neurun/core/include/ir/operation/TopKV2.h b/runtime/neurun/core/include/ir/operation/TopKV2.h
deleted file mode 100644
index a6971e843..000000000
--- a/runtime/neurun/core/include/ir/operation/TopKV2.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_TOPK_V2_H__
-#define __NEURUN_IR_OPERATION_TOPK_V2_H__
-
-#include <memory>
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class TopKV2 : public Operation
-{
-public:
- enum Input
- {
- INPUT
- };
-
- enum Output
- {
- OUTPUT_VALUES = 0,
- OUTPUT_INDICES,
- };
-
- struct Param
- {
- std::int32_t k;
- };
-
-public:
- TopKV2(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs,
- const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::TopKV2; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_TOPK_V2_H__
diff --git a/runtime/neurun/core/include/ir/operation/Transpose.h b/runtime/neurun/core/include/ir/operation/Transpose.h
deleted file mode 100644
index b1e08a506..000000000
--- a/runtime/neurun/core/include/ir/operation/Transpose.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_TRANSPOSE_H__
-#define __NEURUN_IR_OPERATION_TRANSPOSE_H__
-
-#include "ir/Operation.h"
-
-#include <utility>
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class Transpose : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0, // for an n-D tensor, specifying the tensor to be transposed.
- };
-
- struct Param
- {
- std::vector<int> perm;
- int32_t rank;
- };
-
-public:
- Transpose(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs,
- const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::Transpose; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_TRANSPOSE_H__
diff --git a/runtime/neurun/core/include/ir/operation/TransposeConv.h b/runtime/neurun/core/include/ir/operation/TransposeConv.h
deleted file mode 100644
index a561db4e4..000000000
--- a/runtime/neurun/core/include/ir/operation/TransposeConv.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_IR_OPERATION_TRANSPOSE_CONV_H__
-#define __NEURUN_IR_OPERATION_TRANSPOSE_CONV_H__
-
-#include <memory>
-
-#include "ir/Operation.h"
-#include "ir/InternalType.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-
-class TransposeConv : public Operation
-{
-public:
- enum Input
- {
- OUTPUT_SHAPE = 0,
- KERNEL,
- INPUT
- };
-
- struct Param
- {
- Padding padding;
- Stride stride;
- };
-
-public:
- TransposeConv(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs,
- const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::TransposeConv; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERATION_TRANSPOSE_CONV_H__
diff --git a/runtime/neurun/core/include/ir/operation/Unpack.h b/runtime/neurun/core/include/ir/operation/Unpack.h
deleted file mode 100644
index fa698d3af..000000000
--- a/runtime/neurun/core/include/ir/operation/Unpack.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * 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.
- */
-#ifndef __NEURUN_IR_OPERATION_UNPACK_H__
-#define __NEURUN_IR_OPERATION_UNPACK_H__
-
-#include "ir/Operation.h"
-
-namespace neurun
-{
-namespace ir
-{
-namespace operation
-{
-class Unpack : public Operation
-{
-public:
- enum Input
- {
- INPUT = 0
- };
-
- struct Param
- {
- int32_t num;
- int32_t axis;
- int32_t rank;
- };
-
-public:
- Unpack(const OperandIndexSequence &inputs, const OperandIndexSequence &outputs,
- const Param &param);
-
-public:
- void accept(OperationVisitor &v) const override;
- OpCode opcode() const final { return OpCode::Unpack; }
-
-public:
- const Param &param() const { return _param; }
-
-private:
- Param _param;
-};
-} // namespace operation
-} // namespace ir
-} // namespace neurun
-#endif // __NEURUN_IR_OPERATION_UNPACK_H__
diff --git a/runtime/neurun/core/include/util/Config.lst b/runtime/neurun/core/include/util/Config.lst
deleted file mode 100644
index 046a0c4a8..000000000
--- a/runtime/neurun/core/include/util/Config.lst
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef CONFIG
-#error Define CONFIG before including this file
-#endif
-
-// Name | Type | Default
-CONFIG(GRAPH_DOT_DUMP , int , "0")
-CONFIG(BACKENDS , std::string , "acl_cl;acl_neon;cpu;srcn")
-CONFIG(OP_BACKEND_ALLOPS , std::string , "")
-CONFIG(OP_BACKEND_MAP , std::string , "")
-CONFIG(DISABLE_COMPILE , bool , "0")
-CONFIG(NEURUN_LOG_ENABLE , bool , "0")
-CONFIG(CPU_MEMORY_PLANNER , std::string , "WIC")
-CONFIG(EXECUTOR , std::string , "Linear")
-CONFIG(ACL_LAYOUT , std::string , "none")
-CONFIG(NCNN_LAYOUT , std::string , "NCHW")
-CONFIG(PROFILING_MODE , bool , "0")
-CONFIG(USE_SCHEDULER , bool , "0")
-CONFIG(SUBG_MAX_NODE , int , "0")
-CONFIG(TRACE_FILEPATH , std::string , "")
-
-// Auto-generate all operations
-
-#define OP(InternalName) \
- CONFIG(OP_BACKEND_ ## InternalName, std::string, "")
-#include "ir/Operations.lst"
-#undef OP
-
diff --git a/runtime/neurun/core/include/util/ConfigSource.h b/runtime/neurun/core/include/util/ConfigSource.h
deleted file mode 100644
index b1fa9a87d..000000000
--- a/runtime/neurun/core/include/util/ConfigSource.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_UTIL_CONFIG_SOURCE_H__
-#define __NEURUN_UTIL_CONFIG_SOURCE_H__
-
-#include <memory>
-
-#include "IConfigSource.h"
-
-namespace neurun
-{
-namespace util
-{
-
-void config_source(std::unique_ptr<IConfigSource> &&source);
-
-bool getConfigBool(const std::string &key);
-int getConfigInt(const std::string &key);
-std::string getConfigString(const std::string &key);
-
-} // namespace util
-} // namespace neurun
-
-namespace neurun
-{
-namespace util
-{
-namespace config
-{
-
-#define CONFIG(Name, Type, Default) extern const char *Name;
-
-#include "Config.lst"
-
-#undef CONFIG
-
-} // namespace config
-} // namespace util
-} // namespace neurun
-
-#endif // __NEURUN_UTIL_CONFIG_SOURCE_H__
diff --git a/runtime/neurun/core/include/util/Coordinates.h b/runtime/neurun/core/include/util/Coordinates.h
deleted file mode 100644
index 67947138f..000000000
--- a/runtime/neurun/core/include/util/Coordinates.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_UTIL_COORDINATES_H__
-#define __NEURUN_UTIL_COORDINATES_H__
-
-#include <cassert>
-#include <stdint.h>
-#include <vector>
-
-namespace neurun
-{
-namespace util
-{
-
-/**
- * @brief Class to represent position(offset) of tensor.\n
- * Assume that the front is higher dimensional.
- * i.g. N: 0, C: 1, H: 2, W: 3 for NCHW layout
- */
-class Coordinates final
-{
-public:
- static constexpr size_t num_max_dimensions = 4;
-
-public:
- /**
- * @brief Construct a new Coordinates object
- * @param[in] init The initialzer_list with coordinates
- * @return
- */
- Coordinates(std::initializer_list<int32_t> init) : _coordinates{init}
- {
- assert(init.size() <= num_max_dimensions);
- }
-
-public:
- /**
- * @brief Set the coordinate of one of the coordinates.
- *
- * @param[in] dimension Dimension for which the coordinate is set.
- * @param[in] Coordinate Coordinate to be set for the dimension.
- */
- void set(size_t dimension, int32_t coordinate)
- {
- assert(dimension < num_max_dimensions);
- if (dimension >= _coordinates.size())
- {
- _coordinates.resize(dimension + 1, 0);
- }
- _coordinates[dimension] = coordinate;
- }
-
-public:
- /**
- * @brief Return size of coordinates
- *
- * @return size of coordinates
- */
- size_t size() const { return _coordinates.size(); }
-
-public:
- int32_t operator[](size_t dimension) const
- {
- assert(dimension < _coordinates.size());
- return _coordinates[dimension];
- }
-
-public:
- /**
- * @brief begin() of const_iterator for this class
- *
- * @return The first iterator of the coordinates
- */
- std::vector<int32_t>::const_iterator begin() const { return _coordinates.begin(); }
- /**
- * @brief end() of const_iterator for this class
- *
- * @return The last iterator of the coordinates
- */
- std::vector<int32_t>::const_iterator end() const { return _coordinates.end(); }
-
-private:
- std::vector<int32_t> _coordinates;
-};
-
-} // namespace util
-} // namespace neurun
-
-#endif // __NEURUN_UTIL_COORDINATES_H__
diff --git a/runtime/neurun/core/include/util/EnvConfigSource.h b/runtime/neurun/core/include/util/EnvConfigSource.h
deleted file mode 100644
index 77be15c4e..000000000
--- a/runtime/neurun/core/include/util/EnvConfigSource.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_UTIL_ENV_CONFIG_SOURCE_H__
-#define __NEURUN_UTIL_ENV_CONFIG_SOURCE_H__
-
-#include <unordered_map>
-
-#include "util/GeneralConfigSource.h"
-
-namespace neurun
-{
-namespace util
-{
-
-class EnvConfigSource final : public GeneralConfigSource
-{
-public:
- std::string get(const std::string &key) const override;
-
-private:
- std::unordered_map<std::string, std::string> _default_attributes;
-};
-
-} // namespace util
-} // namespace neurun
-
-#endif // __NEURUN_UTIL_ENV_CONFIG_SOURCE_H__
diff --git a/runtime/neurun/core/include/util/EventCollectorGlobal.h b/runtime/neurun/core/include/util/EventCollectorGlobal.h
deleted file mode 100644
index 15e40844e..000000000
--- a/runtime/neurun/core/include/util/EventCollectorGlobal.h
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_UTIL_EVENT_COLLECTOR_GLOBAL_H__
-#define __NEURUN_UTIL_EVENT_COLLECTOR_GLOBAL_H__
-
-#include "misc/EventRecorder.h"
-#include "misc/EventCollector.h"
-
-namespace neurun
-{
-namespace util
-{
-
-/**
- * @brief Singleton class for event collection from anywhere in code
- *
- */
-class EventCollectorGlobal
-{
-public:
- /**
- * @brief Get the singleton object of this class
- *
- * @return EventCollectorGlobal& Singleton object
- */
- static EventCollectorGlobal &get();
-
-public:
- /**
- * @brief Getter for event collector object
- *
- * @return EventCollector& Collector object
- */
- EventCollector &collector() { return _collector; }
-
-private:
- EventCollectorGlobal();
- ~EventCollectorGlobal();
-
-private:
- EventRecorder _recorder;
- EventCollector _collector;
-};
-
-/**
- * @brief Helper class for emitting duration event which is handled automatically with ctor/dtor
- *
- */
-class EventDurationBlock
-{
-public:
- /**
- * @brief Raise a duration event with type of BEGIN
- *
- * @param tag A label for the duration event
- */
- EventDurationBlock(const std::string &tag);
- /**
- * @brief Raise a duration event with type of END
- *
- */
- ~EventDurationBlock();
-
-private:
- std::string _tag;
-};
-
-/**
- * @brief Helper class for emitting duration event which is handled manually
- *
- * Usage:
- * {
- * ...
- * EventDurationManual duration("some tag");
- * duration.begin();
- * ...
- * ... // Code for duration
- * ...
- * duration.end();
- * }
- *
- */
-class EventDurationManual
-{
-public:
- /**
- * @brief Construct a new Event Duration Manual object
- *
- * @param tag A label for the duration object
- */
- EventDurationManual(const std::string &tag);
- /**
- * @brief Destroy the Event Duration Manual object
- *
- */
- ~EventDurationManual();
-
- /**
- * @brief Raise a duration event with type of BEGIN
- *
- */
- void begin();
- /**
- * @brief Raise a duration event with type of END
- *
- */
- void end();
-
-private:
- std::string _tag;
- bool _pair;
-};
-
-} // namespace util
-} // namespace neurun
-
-/**
- * Helper Macro Definitions
- *
- * HOW TO USE
- *
- * void f(args)
- * {
- * EVENT_DURATION_FUNCTION();
- * ...
- * if(cond)
- * {
- * EVENT_DURATION_REGION("if branch");
- * ...
- * }
- * ...
- * }
- */
-
-#define EVENT_DURATION_FUNCTION() \
- ::neurun::util::EventDurationBlock __event_duration__##__LINE__ { __FUNCTION__ }
-
-#define EVENT_DURATION_REGION(tag) \
- ::neurun::util::EventDurationBlock __event_duration__##__LINE__ { tag }
-
-#endif // __NEURUN_UTIL_EVENT_COLLECTOR_GLOBAL_H__
diff --git a/runtime/neurun/core/include/util/GeneralConfigSource.h b/runtime/neurun/core/include/util/GeneralConfigSource.h
deleted file mode 100644
index 04e3332b3..000000000
--- a/runtime/neurun/core/include/util/GeneralConfigSource.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_UTIL_GLOBAL_CONFIG_SOURCE_H__
-#define __NEURUN_UTIL_GLOBAL_CONFIG_SOURCE_H__
-
-#include <unordered_map>
-
-#include "util/IConfigSource.h"
-
-namespace neurun
-{
-namespace util
-{
-
-class GeneralConfigSource : public IConfigSource
-{
-public:
- GeneralConfigSource() = default;
-
- std::string get(const std::string &key) const override;
- void set(const std::string &key, const std::string &val);
-
-private:
- std::unordered_map<std::string, std::string> _map;
-};
-
-} // namespace util
-} // namespace neurun
-
-#endif // __NEURUN_UTIL_GLOBAL_CONFIG_SOURCE_H__
diff --git a/runtime/neurun/core/include/util/IConfigSource.h b/runtime/neurun/core/include/util/IConfigSource.h
deleted file mode 100644
index a52d87097..000000000
--- a/runtime/neurun/core/include/util/IConfigSource.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_UTIL_I_CONFIG_SOURCE_H__
-#define __NEURUN_UTIL_I_CONFIG_SOURCE_H__
-
-#include <string>
-
-namespace neurun
-{
-namespace util
-{
-
-struct IConfigSource
-{
- /**
- * @brief Destroy the IConfigSource object
- */
- virtual ~IConfigSource() = default;
-
- /**
- * @brief get the value for the matching key
- *
- * @param key string key to search
- * @return string value associated with the key
- */
- virtual std::string get(const std::string &key) const = 0;
-};
-
-} // namespace util
-} // namespace neurun
-
-#endif // __NEURUN_UTIL_I_CONFIG_SOURCE_H__
diff --git a/runtime/neurun/core/include/util/ITimer.h b/runtime/neurun/core/include/util/ITimer.h
deleted file mode 100644
index 79ecdd0ca..000000000
--- a/runtime/neurun/core/include/util/ITimer.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_UTIL_ITIMER_H__
-#define __NEURUN_UTIL_ITIMER_H__
-
-#include <chrono>
-
-namespace neurun
-{
-namespace util
-{
-
-class ITimer
-{
-public:
- virtual void handleBegin() = 0;
- virtual void handleEnd() = 0;
- int getTime() { return _timer_res; };
-
- virtual ~ITimer() = default;
-
-protected:
- int _timer_res{0};
-};
-
-class CPUTimer : public ITimer
-{
-public:
- void handleBegin() override { _start_time = std::chrono::steady_clock::now(); };
-
- void handleEnd() override
- {
- const auto end_time = std::chrono::steady_clock::now();
- _timer_res =
- std::chrono::duration_cast<std::chrono::microseconds>(end_time - _start_time).count();
- };
-
-private:
- std::chrono::steady_clock::time_point _start_time; // in microseconds
-};
-
-} // namespace util
-} // namespace neurun
-
-#endif // __NEURUN_UTIL_ITIMER_H__
diff --git a/runtime/neurun/core/include/util/Index.h b/runtime/neurun/core/include/util/Index.h
deleted file mode 100644
index bd8eeb38c..000000000
--- a/runtime/neurun/core/include/util/Index.h
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_UTIL_INDEX_H__
-#define __NEURUN_UTIL_INDEX_H__
-
-#include <functional>
-#include <limits>
-#include <stdint.h>
-
-namespace neurun
-{
-namespace util
-{
-
-/**
- * @brief A wrapper class for unsigned integral Index
- * NOTE : Max value of the underlying type is used as the invalid value
- *
- * @tparam T Underlying type. Must be unsigned integral type otherwise its behavior is undefined.
- * @tparam DummyTag Dummy type to distinguish types with a same underlying type. Using an opaque
- * type is recommended.
- */
-template <typename T, typename DummyTag> class Index
-{
-private:
- static const T UNDEFINED = std::numeric_limits<T>::max();
-
-public:
- /**
- * @brief Construct a new Index object
- */
- explicit Index(void) : _index{UNDEFINED} {}
- /**
- * @brief Construct a new Index object with a value in the underlying type
- *
- * @param o Value in the underlying type
- */
- explicit Index(const T o) : _index{o} {}
- /**
- * @brief Copy Constructor
- *
- * @param o Object to be copied
- */
- Index(const Index &o) = default;
-
- /**
- * @brief Assign a value in the underlying time
- *
- * @param o Value in the underlying type
- * @return Index& Reference of this pointer
- */
- Index &operator=(const T o)
- {
- _index = o;
- return *this;
- }
-
- /**
- * @brief Copy assignment operator
- *
- * @param o Object to be copied
- * @return Index& Reference of this pointer
- */
- Index &operator=(const Index &o) = default;
-
- /**
- * @brief Equality operator
- *
- * @param o The other value in the underlying type to compare
- * @return true if underlying value is the same, false otherwise
- */
- bool operator==(T o) const { return _index == o; }
- /**
- * @brief Equality operator
- *
- * @param o The other object to compare
- * @return true if underlying value is the same, false otherwise
- */
- bool operator==(const Index &o) const { return _index == o._index; }
- /**
- * @brief Inquality operator
- *
- * @param o The other value in the underlying type to compare
- * @return true if underlying value is different, false otherwise
- */
- bool operator!=(T o) const { return !(*this == o); }
- /**
- * @brief Inquality operator
- *
- * @param o The other object to compare
- * @return true if underlying value is different, false otherwise
- */
- bool operator!=(const Index &o) const { return !(*this == o); }
-
- /**
- * @brief Post increment operator
- *
- * @return Index Index before increment
- */
- Index operator++(int)
- {
- Index temp = *this;
- _index++;
- return temp;
- }
-
- /**
- * @brief Check whether the value is valid or not
- *
- * @return true if valid, false otherwise
- */
- bool valid() const { return _index != UNDEFINED; }
- /**
- * @brief Return underlying value
- *
- * @return T Underlying value
- */
- T value() const { return _index; }
-
-private:
- T _index;
-};
-
-} // namespace util
-} // namespace neurun
-
-namespace std
-{
-
-template <typename T, typename Tag> struct hash<::neurun::util::Index<T, Tag>>
-{
- size_t operator()(const ::neurun::util::Index<T, Tag> &index) const noexcept
- {
- return hash<T>()(index.value());
- }
-};
-
-} // namespace std
-
-#endif // __NEURUN_UTIL_INDEX_H__
diff --git a/runtime/neurun/core/include/util/ObjectManager.h b/runtime/neurun/core/include/util/ObjectManager.h
deleted file mode 100644
index fd2c3f295..000000000
--- a/runtime/neurun/core/include/util/ObjectManager.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_UTIL_OBJECT_MANAGER_H__
-#define __NEURUN_UTIL_OBJECT_MANAGER_H__
-
-#include <unordered_map>
-#include <memory>
-
-namespace neurun
-{
-namespace util
-{
-
-/**
- * @brief Class that owns objects and maps them with indices as a handle for them
- *
- */
-template <typename Index, typename Object> class ObjectManager
-{
-public:
- ObjectManager() : _index_count{0u} {}
-
-public:
- /**
- * @brief Create an object with args and put it in the container with a new Index for that
- *
- * @param[in] args Arguments for creating Operand object
- * @return Created index that is associated to the object
- */
- template <class... Args> Index emplace(Args &&... args)
- {
- auto index = generateIndex();
- _objects.emplace(index, nnfw::cpp14::make_unique<Object>(std::forward<Args>(args)...));
- return index;
- }
-
- /**
- * @brief Put object in the container with a new Index for that
- *
- * @param[in] object Object to be pushed
- * @return Created index that is associated to the object
- */
- Index push(std::unique_ptr<Object> &&object)
- {
- auto index = generateIndex();
- _objects.emplace(index, std::move(object));
- return index;
- }
-
- /**
- * @brief Remove the object that is associated with the given index
- *
- * @param[in] index Index of the object to be removed
- * @return N/A
- */
- void remove(const Index &index) { _objects.erase(index); };
-
- /**
- * @brief Get the object that is associated with the given index
- *
- * @param[in] index Index of the object to be returned
- * @return Object
- */
- const Object &at(const Index &index) const { return *(_objects.at(index)); }
- /**
- * @brief Get the object that is associated with the given index
- *
- * @param[in] index Index of the object to be returned
- * @return Object
- */
- Object &at(const Index &index) { return *(_objects.at(index)); }
- /**
- * @brief Get the object that is associated with the given index
- *
- * @param[in] index Index of the object to be returned
- * @return true if such entry exists otherwise false
- */
- bool exist(const Index &index) const
- {
- auto it = _objects.find(index);
- return it != _objects.end();
- }
- /**
- * @brief Iterate over the container with given function
- *
- * @param[in] fn Function to be run for every container entry
- * @return N/A
- */
- void iterate(const std::function<void(const Index &, const Object &)> &fn) const
- {
- for (const auto &e : _objects)
- {
- fn(e.first, *e.second);
- }
- }
- /**
- * @brief Iterate over the container with given function
- *
- * @param[in] fn Function to be run for every container entry
- * @return N/A
- */
- void iterate(const std::function<void(const Index &, Object &)> &fn)
- {
- // TODO Remove this workaround
- // This implementation is a workaround in case of adding operands while iteration
- std::list<Index> l;
-
- for (auto &e : _objects)
- {
- l.push_back(e.first);
- }
-
- for (auto index : l)
- {
- fn(index, *_objects[index]);
- }
- }
-
-private:
- Index generateIndex() { return Index{_index_count++}; }
-
-private:
- std::unordered_map<Index, std::unique_ptr<Object>> _objects;
- uint32_t _index_count;
-};
-
-} // namespace util
-} // namespace neurun
-
-#endif // __NEURUN_UTIL_OBJECT_MANAGER_H__
diff --git a/runtime/neurun/core/include/util/Padding.h b/runtime/neurun/core/include/util/Padding.h
deleted file mode 100644
index 3c707b873..000000000
--- a/runtime/neurun/core/include/util/Padding.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_UTIL_PADDING_H__
-#define __NEURUN_UTIL_PADDING_H__
-
-#include <stdint.h>
-
-#include "ir/Shape.h"
-#include "ir/InternalType.h"
-
-namespace neurun
-{
-namespace util
-{
-
-ir::ExplicitPadding validPadding(void);
-ir::ExplicitPadding samePadding(const ir::FeatureShape &ifm_shape,
- const ir::FeatureShape &ofm_shape, const ir::Stride &stride,
- uint32_t kw, uint32_t kh);
-ir::ExplicitPadding calculatePadding(const ir::Padding &padding, const ir::FeatureShape &ifm_shape,
- const ir::FeatureShape &ofm_shape, const ir::Stride &stride,
- uint32_t kw, uint32_t kh);
-
-} // namespace util
-} // namespace neurun
-
-#endif // __NEURUN_UTIL_PADDING_H__
diff --git a/runtime/neurun/core/include/util/Set.h b/runtime/neurun/core/include/util/Set.h
deleted file mode 100644
index 13213511d..000000000
--- a/runtime/neurun/core/include/util/Set.h
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * 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 Set.h
- * @brief This file contains neurun::util::Set class
- * @ingroup COM_AI_RUNTIME
- */
-
-#ifndef __NEURUN_UTIL_SET_H__
-#define __NEURUN_UTIL_SET_H__
-
-#include <cassert>
-#include <unordered_set>
-
-namespace neurun
-{
-namespace util
-{
-
-/**
- * @brief Class for set of custom element
- & @tparam Element Key type of Set
- */
-template <typename Element> class Set
-{
-public:
- /**
- * @brief Construct default Set object.
- */
- Set() = default;
- /**
- * @brief Construct Set object by copy semantics.
- */
- Set(const Set<Element> &) = default;
- /**
- * @brief Construct move Set object by move semantics.
- */
- Set(Set<Element> &&) = default;
-
-public:
- /**
- * @brief Add a given element to the set
- *
- * @param e Element added
- */
- void add(const Element &e) { _set.insert(e); }
- /**
- * @brief remove a given element from the set
- *
- * @param e Element removed
- */
- void remove(const Element &e) { _set.erase(e); }
- /**
- * @brief Get size of the set
- *
- * @return The size of the set
- */
- uint32_t size() const { return static_cast<uint32_t>(_set.size()); }
- /**
- * @brief Get whether the set is empty
- *
- * @return Whether the set is empty
- */
- bool empty() const { return _set.empty(); }
- /**
- * @brief Get whether a given element exists in the set
- *
- * @param e A given element
- *
- * @return Whether a given element exists in the set
- */
- bool contains(const Element &e) const { return _set.find(e) != _set.end(); }
- /**
- * @brief Get first element of the set
- *
- * @return first element of the set
- */
- const Element &getOnlyElement() const
- {
- assert(_set.size() == 1u);
- return *_set.begin();
- }
-
-public:
- /**
- * @brief operator overloading function for `|`
- *
- * @return A set with two sets combined
- */
- Set<Element> operator|(const Set<Element> &other) const // Union
- {
- auto ret = *this;
- for (auto e : other)
- {
- ret.add(e);
- }
- return ret;
- }
- /**
- * @brief operator overloading function for `&`
- *
- * @return A set of elements that overlap in two sets
- */
- Set<Element> operator&(const Set<Element> &other) const // Intersect
- {
- Set<Element> ret;
- for (auto e : other)
- {
- if (contains(e))
- {
- ret.add(e);
- }
- }
- return ret;
- }
- /**
- * @brief operator overloading function for `-`
- *
- * @return A set of subtracted from another set
- */
- Set<Element> operator-(const Set<Element> &other) const // Minus
- {
- auto ret = *this;
- for (auto e : other)
- {
- ret.remove(e);
- }
- return ret;
- }
-
-public:
- /**
- * @brief begin() of const_iterator for this class
- *
- * @return The first iterator of the set
- */
- typename std::unordered_set<Element>::const_iterator begin() const { return _set.begin(); }
- /**
- * @brief end() of const_iterator for this class
- *
- * @return The last iterator of the set
- */
- typename std::unordered_set<Element>::const_iterator end() const { return _set.end(); }
-
-private:
- std::unordered_set<Element> _set;
-};
-
-} // namespace util
-} // namespace neurun
-
-#endif // __NEURUN_UTIL_SET_H__
diff --git a/runtime/neurun/core/include/util/ShapeInference.h b/runtime/neurun/core/include/util/ShapeInference.h
deleted file mode 100644
index 097d61643..000000000
--- a/runtime/neurun/core/include/util/ShapeInference.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_GRAPH_SHAPE_INFERENCE_H__
-#define __NEURUN_GRAPH_SHAPE_INFERENCE_H__
-
-#include "ir/operation/AvgPool2D.h"
-#include "ir/operation/Concat.h"
-#include "ir/operation/MaxPool2D.h"
-#include "ir/operation/Conv2D.h"
-#include "ir/operation/DepthwiseConv2D.h"
-#include "ir/Operands.h"
-#include "ir/Index.h"
-#include "ir/Layout.h"
-
-namespace neurun
-{
-namespace shape_inference
-{
-
-using Shapes = std::vector<ir::Shape>;
-
-Shapes inferEltwiseShape(const ir::Shape &lhs_shape, const ir::Shape &rhs_shape);
-
-Shapes inferAvgPoolShape(const ir::Shape &in_shape, const ir::operation::AvgPool2D::Param &param,
- ir::Layout layout = ir::Layout::NHWC);
-
-Shapes inferConcatShape(const Shapes &in_shapes, const ir::operation::Concat::Param &param);
-
-Shapes inferMaxPoolShape(const ir::Shape &in_shape, const ir::operation::MaxPool2D::Param &param,
- ir::Layout layout = ir::Layout::NHWC);
-
-Shapes inferConv2DShape(const ir::Shape &in_shape, const ir::Shape &ker_shape,
- const ir::operation::Conv2D::Param &param,
- ir::Layout layout = ir::Layout::NHWC);
-
-Shapes inferDepthwiseConv2DShape(const ir::Shape &in_shape, const ir::Shape &ker_shape,
- const ir::operation::DepthwiseConv2D::Param &param,
- ir::Layout layout = ir::Layout::NHWC);
-
-Shapes inferFullyConnectedShape(const ir::Shape &in_shape, const ir::Shape &ker_shape);
-
-} // namespace shape_inference
-} // namespace neurun
-
-#endif // __NEURUN_GRAPH_SHAPE_INFERENCE_H__
diff --git a/runtime/neurun/core/include/util/Utils.h b/runtime/neurun/core/include/util/Utils.h
deleted file mode 100644
index e7468dabd..000000000
--- a/runtime/neurun/core/include/util/Utils.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 2018 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 Utils.h
- * @brief This file contains utility functions
- * @ingroup COM_AI_RUNTIME
- */
-
-#ifndef __NEURUN_UTIL_UTILS_H__
-#define __NEURUN_UTIL_UTILS_H__
-
-#include "ir/InternalType.h"
-#include "ir/Layout.h"
-#include "ir/Operand.h"
-#include "util/Coordinates.h"
-
-#define UNUSED_RELEASE(a) (void)(a)
-
-namespace neurun
-{
-namespace util
-{
-
-/**
- * @brief Converts a internal padding type to const char*
- * @param[in] type Padding type to be converted
- * @return A string holding the converted value
- */
-const char *to_string(ir::PaddingType type);
-
-Coordinates convertCoordinates(const Coordinates &from_coordinates, ir::Layout from_layout,
- ir::Layout to_layout);
-
-} // namespace util
-} // namespace neurun
-
-#endif // __NEURUN_UTIL_UTILS_H__
diff --git a/runtime/neurun/core/include/util/feature/Coordinate4D.h b/runtime/neurun/core/include/util/feature/Coordinate4D.h
deleted file mode 100644
index b020ed239..000000000
--- a/runtime/neurun/core/include/util/feature/Coordinate4D.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_UTIL_FEATURE_COORDINATE_4D_H__
-#define __NEURUN_UTIL_FEATURE_COORDINATE_4D_H__
-
-#include <stdint.h>
-
-namespace neurun
-{
-namespace util
-{
-namespace feature
-{
-
-/**
- * @brief Class to represent position(offset) of subtensor.\n
- * Assume that parent and child are already lowered (can get Shape4D).
- */
-class Coordinate4D
-{
-public:
- /**
- * @brief Construct a new Coordinate4D object
- */
- Coordinate4D(void) : _n{0}, _h{0}, _w{0}, _c{0}
- {
- // DO NOTHING
- }
- /**
- * @brief Construct a new Coordinate4D object
- * @param[in] n Batch offset
- * @param[in] h Height offset
- * @param[in] w Width offset
- * @param[in] c Channel offset
- * @return
- */
- Coordinate4D(int32_t n, int32_t h, int32_t w, int32_t c) : _n{n}, _h{h}, _w{w}, _c{c}
- {
- // DO NOTHING
- }
-
-public:
- /**
- * @brief Set batch offset
- * @param[in] n Batch offset
- */
- void n(int32_t n) { _n = n; }
- /**
- * @brief Set height offset
- * @param[in] h Height offset
- */
- void h(int32_t h) { _h = h; }
- /**
- * @brief Set width offset
- * @param[in] w Width offset
- */
- void w(int32_t w) { _w = w; }
- /**
- * @brief Set channel offset
- * @param[in] c Channel offset
- */
- void c(int32_t c) { _c = c; }
-
-public:
- /**
- * @brief Return batch offset
- * @return Batch offset
- */
- int32_t n(void) const { return _n; }
- /**
- * @brief Return height offset
- * @return Height offset
- */
- int32_t h(void) const { return _h; }
- /**
- * @brief Return width offset
- * @return Width offset
- */
- int32_t w(void) const { return _w; }
- /**
- * @brief Return channel offset
- * @return Channel offset
- */
- int32_t c(void) const { return _c; }
-
-private:
- int32_t _n;
- int32_t _h;
- int32_t _w;
- int32_t _c;
-};
-
-} // namespace feature
-} // namespace util
-} // namespace neurun
-
-#endif // __NEURUN_UTIL_FEATURE_COORDINATE_4D_H__
diff --git a/runtime/neurun/core/include/util/feature/nchw/Reader.h b/runtime/neurun/core/include/util/feature/nchw/Reader.h
deleted file mode 100644
index 0305bdf69..000000000
--- a/runtime/neurun/core/include/util/feature/nchw/Reader.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef __NEURUN_UTIL_FEATURE_NCHW_READER_H__
-#define __NEURUN_UTIL_FEATURE_NCHW_READER_H__
-
-#include <cassert>
-
-#include "backend/operand/ITensor.h"
-#include "misc/feature/Reader.h"
-#include "misc/feature/Shape.h"
-#include "util/Coordinates.h"
-#include "util/Utils.h"
-
-namespace neurun
-{
-namespace util
-{
-namespace feature
-{
-namespace nchw
-{
-
-template <typename T> class Reader final : public nnfw::misc::feature::Reader<T>
-{
-public:
- // Construct for buffer of model inputs
- Reader(const ::nnfw::misc::feature::Shape &shape, const T *ptr, size_t len)
- : _shape{shape}, _ptr{reinterpret_cast<const uint8_t *>(ptr)}, _len{len}
- {
- assert(shape.N * shape.C * shape.H * shape.W * sizeof(T) == len);
-
- // No padding
- _strides.W = sizeof(T);
- _strides.H = shape.W * sizeof(T);
- _strides.C = shape.W * shape.H * sizeof(T);
- _strides.N = shape.W * shape.H * shape.C * sizeof(T);
- }
-
- // Construct for backend tensor
- Reader(backend::operand::ITensor *tensor)
- : _ptr{tensor->buffer() + tensor->calcOffset({0, 0, 0, 0})}, _len{tensor->total_size()}
- {
- assert(tensor->layout() == ir::Layout::NCHW);
-
- const auto start_offset = tensor->calcOffset({0, 0, 0, 0});
- _strides.W = tensor->dimension(3) == 1 ? 0 : tensor->calcOffset({0, 0, 0, 1}) - start_offset;
- _strides.H = tensor->dimension(2) == 1 ? 0 : tensor->calcOffset({0, 0, 1, 0}) - start_offset;
- _strides.C = tensor->dimension(1) == 1 ? 0 : tensor->calcOffset({0, 1, 0, 0}) - start_offset;
- _strides.N = tensor->dimension(0) == 1 ? 0 : tensor->calcOffset({1, 0, 0, 0}) - start_offset;
-
- _shape.W = tensor->dimension(3);
- _shape.H = tensor->dimension(2);
- _shape.C = tensor->dimension(1);
- _shape.N = tensor->dimension(0);
- }
-
-public:
- T at(uint32_t ch, uint32_t row, uint32_t col) const override
- {
- const auto offset = feature_index_to_byte_offset(0, ch, row, col);
-
- const T *ptr = reinterpret_cast<const T *>(_ptr + offset);
-
- return *ptr;
- }
- T at(uint32_t batch, uint32_t ch, uint32_t row, uint32_t col) const override
- {
- const auto offset = feature_index_to_byte_offset(batch, ch, row, col);
-
- const T *ptr = reinterpret_cast<const T *>(_ptr + offset);
-
- return *ptr;
- }
-
-private:
- size_t feature_index_to_byte_offset(uint32_t batch, uint32_t ch, uint32_t row, uint32_t col) const
- {
- assert(1u * _shape.N > batch); // shape.N > batch
- assert(1u * _shape.C > ch); // shape.C > ch
- assert(1u * _shape.H > row); // shape.H > row
- assert(1u * _shape.W > col); // shape.W > col
-
- uint32_t res = 0;
- res += batch * _strides.N;
- res += ch * _strides.C;
- res += row * _strides.H;
- res += col * _strides.W;
-
- return res;
- }
-
-private:
- // TODO Remove _shape
- nnfw::misc::feature::Shape _shape;
- using Strides = nnfw::misc::feature::Shape;
- Strides _strides;
- const uint8_t *_ptr;
- size_t _len;
-};
-
-} // namespace nchw
-} // namespace feature
-} // namespace util
-} // namespace neurun
-
-#endif // __NEURUN_UTIL_FEATURE_NCHW_READER_H__
diff --git a/runtime/neurun/core/include/util/feature/nchw/View.h b/runtime/neurun/core/include/util/feature/nchw/View.h
deleted file mode 100644
index d747937ee..000000000
--- a/runtime/neurun/core/include/util/feature/nchw/View.h
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_UTIL_FEATURE_NCHW_VIEW_H__
-#define __NEURUN_UTIL_FEATURE_NCHW_VIEW_H__
-
-#include "misc/feature/Reader.h"
-#include "misc/feature/Shape.h"
-
-#include "backend/operand/ITensor.h"
-#include "util/Coordinates.h"
-#include "util/Utils.h"
-
-#include <cassert>
-
-namespace neurun
-{
-namespace util
-{
-namespace feature
-{
-namespace nchw
-{
-
-template <typename T> class View final : public nnfw::misc::feature::Reader<T>
-{
-public:
- // Construct for buffer of model inputs
- View(const ::nnfw::misc::feature::Shape &shape, T *ptr, size_t len)
- : _shape{shape}, _ptr{reinterpret_cast<uint8_t *>(ptr)}, _len{len}
- {
- assert(shape.N * shape.C * shape.H * shape.W * sizeof(T) == len);
-
- _strides.W = sizeof(T);
- _strides.H = shape.W * sizeof(T);
- _strides.C = shape.W * shape.H * sizeof(T);
- _strides.N = shape.W * shape.H * shape.C * sizeof(T);
- }
-
- // Construct for backend tensor
- View(::neurun::backend::operand::ITensor *tensor)
- : _ptr{tensor->buffer() + tensor->calcOffset({0, 0, 0, 0})}, _len{tensor->total_size()}
- {
- assert(tensor->layout() == ir::Layout::NCHW);
-
- const auto start_offset = tensor->calcOffset({0, 0, 0, 0});
- _strides.W = tensor->dimension(3) == 1 ? 0 : tensor->calcOffset({0, 0, 0, 1}) - start_offset;
- _strides.H = tensor->dimension(2) == 1 ? 0 : tensor->calcOffset({0, 0, 1, 0}) - start_offset;
- _strides.C = tensor->dimension(1) == 1 ? 0 : tensor->calcOffset({0, 1, 0, 0}) - start_offset;
- _strides.N = tensor->dimension(0) == 1 ? 0 : tensor->calcOffset({1, 0, 0, 0}) - start_offset;
-
- _shape.W = tensor->dimension(3);
- _shape.H = tensor->dimension(2);
- _shape.C = tensor->dimension(1);
- _shape.N = tensor->dimension(0);
- }
-
-public:
- T at(uint32_t ch, uint32_t row, uint32_t col) const override
- {
- const auto offset = feature_index_to_byte_offset(0, ch, row, col);
-
- T *ptr = reinterpret_cast<T *>(_ptr + offset);
-
- return *ptr;
- }
- T at(uint32_t batch, uint32_t ch, uint32_t row, uint32_t col) const override
- {
- const auto offset = feature_index_to_byte_offset(batch, ch, row, col);
-
- T *ptr = reinterpret_cast<T *>(_ptr + offset);
-
- return *ptr;
- }
-
-public:
- T &at(uint32_t ch, uint32_t row, uint32_t col)
- {
- const auto offset = feature_index_to_byte_offset(0, ch, row, col);
-
- T *ptr = reinterpret_cast<T *>(_ptr + offset);
-
- return *ptr;
- }
- T &at(uint32_t batch, uint32_t ch, uint32_t row, uint32_t col)
- {
- const auto offset = feature_index_to_byte_offset(batch, ch, row, col);
-
- T *ptr = reinterpret_cast<T *>(_ptr + offset);
-
- return *ptr;
- }
-
-private:
- size_t feature_index_to_byte_offset(uint32_t batch, uint32_t ch, uint32_t row, uint32_t col) const
- {
- assert(1u * _shape.N > batch); // shape.N > batch
- assert(1u * _shape.C > ch); // shape.C > ch
- assert(1u * _shape.H > row); // shape.H > row
- assert(1u * _shape.W > col); // shape.W > col
-
- uint32_t res = 0;
- res += batch * _strides.N;
- res += ch * _strides.C;
- res += row * _strides.H;
- res += col * _strides.W;
-
- return res;
- }
-
-private:
- // TODO Remove _shape
- nnfw::misc::feature::Shape _shape;
- using Strides = nnfw::misc::feature::Shape;
- Strides _strides;
- uint8_t *_ptr;
- size_t _len;
-};
-
-} // namespace nchw
-} // namespace feature
-} // namespace util
-} // namespace neurun
-
-#endif // __NEURUN_UTIL_FEATURE_NCHW_VIEW_H__
diff --git a/runtime/neurun/core/include/util/feature/nhwc/Reader.h b/runtime/neurun/core/include/util/feature/nhwc/Reader.h
deleted file mode 100644
index 0df7be4be..000000000
--- a/runtime/neurun/core/include/util/feature/nhwc/Reader.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_UTIL_FEATURE_NHWC_READER_H__
-#define __NEURUN_UTIL_FEATURE_NHWC_READER_H__
-
-#include <cassert>
-
-#include "backend/operand/ITensor.h"
-#include "misc/feature/Reader.h"
-#include "misc/feature/Shape.h"
-#include "util/Coordinates.h"
-#include "util/Utils.h"
-
-namespace neurun
-{
-namespace util
-{
-namespace feature
-{
-namespace nhwc
-{
-
-template <typename T> class Reader final : public nnfw::misc::feature::Reader<T>
-{
-public:
- // Construct for buffer of model inputs
- Reader(const ::nnfw::misc::feature::Shape &shape, const T *ptr, size_t len)
- : _shape{shape}, _ptr{reinterpret_cast<const uint8_t *>(ptr)}, _len{len}
- {
- UNUSED_RELEASE(len); // Workaround for unused variable in release mode
- assert(shape.N * shape.C * shape.H * shape.W * sizeof(T) == len);
-
- // No padding
- _strides.C = sizeof(T);
- _strides.W = shape.C * sizeof(T);
- _strides.H = shape.C * shape.W * sizeof(T);
- _strides.N = shape.C * shape.W * shape.H * sizeof(T);
- }
-
- // Construct for backend tensor
- Reader(const backend::operand::ITensor *tensor)
- : _ptr{tensor->buffer() + tensor->calcOffset({0, 0, 0, 0})}, _len{tensor->total_size()}
- {
- assert(tensor->layout() == ir::Layout::NHWC);
-
- const auto start_offset = tensor->calcOffset({0, 0, 0, 0});
- _strides.C = tensor->dimension(3) == 1 ? 0 : tensor->calcOffset({0, 0, 0, 1}) - start_offset;
- _strides.W = tensor->dimension(2) == 1 ? 0 : tensor->calcOffset({0, 0, 1, 0}) - start_offset;
- _strides.H = tensor->dimension(1) == 1 ? 0 : tensor->calcOffset({0, 1, 0, 0}) - start_offset;
- _strides.N = tensor->dimension(0) == 1 ? 0 : tensor->calcOffset({1, 0, 0, 0}) - start_offset;
-
- _shape.C = tensor->dimension(3);
- _shape.W = tensor->dimension(2);
- _shape.H = tensor->dimension(1);
- _shape.N = tensor->dimension(0);
- }
-
-public:
- T at(uint32_t row, uint32_t col, uint32_t ch) const override
- {
- const auto offset = feature_index_to_byte_offset(0, row, col, ch);
-
- const T *ptr = reinterpret_cast<const T *>(_ptr + offset);
-
- return *ptr;
- }
- T at(uint32_t batch, uint32_t row, uint32_t col, uint32_t ch) const override
- {
- const auto offset = feature_index_to_byte_offset(batch, row, col, ch);
-
- const T *ptr = reinterpret_cast<const T *>(_ptr + offset);
-
- return *ptr;
- }
-
-private:
- size_t feature_index_to_byte_offset(uint32_t batch, uint32_t row, uint32_t col, uint32_t ch) const
- {
- assert(1u * _shape.N > batch); // shape.N > batch
- assert(1u * _shape.H > row); // shape.H > row
- assert(1u * _shape.W > col); // shape.W > col
- assert(1u * _shape.C > ch); // shape.C > ch
-
- uint32_t res = 0;
- res += batch * _strides.N;
- res += row * _strides.H;
- res += col * _strides.W;
- res += ch * _strides.C;
-
- return res;
- }
-
-private:
- // TODO Remove _shape
- nnfw::misc::feature::Shape _shape;
- using Strides = nnfw::misc::feature::Shape;
- Strides _strides;
- const uint8_t *_ptr;
- size_t _len;
-};
-
-} // namespace nhwc
-} // namespace feature
-} // namespace util
-} // namespace neurun
-
-#endif // __NEURUN_UTIL_FEATURE_NHWC_READER_H__
diff --git a/runtime/neurun/core/include/util/feature/nhwc/View.h b/runtime/neurun/core/include/util/feature/nhwc/View.h
deleted file mode 100644
index b9d98e9fa..000000000
--- a/runtime/neurun/core/include/util/feature/nhwc/View.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_UTIL_FEATURE_NHWC_VIEW_H__
-#define __NEURUN_UTIL_FEATURE_NHWC_VIEW_H__
-
-#include <cassert>
-#include <cstddef>
-
-#include "backend/operand/ITensor.h"
-#include "misc/feature/Reader.h"
-#include "misc/feature/Shape.h"
-#include "util/Coordinates.h"
-#include "util/Utils.h"
-
-namespace neurun
-{
-namespace util
-{
-namespace feature
-{
-namespace nhwc
-{
-
-template <typename T> class View final : public nnfw::misc::feature::Reader<T>
-{
-public:
- // Construct for buffer of model inputs
- View(const ::nnfw::misc::feature::Shape &shape, T *ptr, size_t len)
- : _shape{shape}, _ptr{reinterpret_cast<uint8_t *>(ptr)}, _len{len}
- {
- UNUSED_RELEASE(len); // Workaround for unused variable in release mode
- assert(shape.N * shape.H * shape.W * shape.C * sizeof(T) == len);
-
- // No padding
- _strides.C = sizeof(T);
- _strides.W = shape.C * sizeof(T);
- _strides.H = shape.C * shape.W * sizeof(T);
- _strides.N = shape.C * shape.W * shape.H * sizeof(T);
- }
-
- // Construct for backend tensor
- View(backend::operand::ITensor *tensor)
- : _ptr{tensor->buffer() + tensor->calcOffset({0, 0, 0, 0})}, _len{tensor->total_size()}
- {
- assert(tensor->layout() == ir::Layout::NHWC);
-
- const auto start_offset = tensor->calcOffset({0, 0, 0, 0});
- _strides.C = tensor->dimension(3) == 1 ? 0 : tensor->calcOffset({0, 0, 0, 1}) - start_offset;
- _strides.W = tensor->dimension(2) == 1 ? 0 : tensor->calcOffset({0, 0, 1, 0}) - start_offset;
- _strides.H = tensor->dimension(1) == 1 ? 0 : tensor->calcOffset({0, 1, 0, 0}) - start_offset;
- _strides.N = tensor->dimension(0) == 1 ? 0 : tensor->calcOffset({1, 0, 0, 0}) - start_offset;
-
- _shape.C = tensor->dimension(3);
- _shape.W = tensor->dimension(2);
- _shape.H = tensor->dimension(1);
- _shape.N = tensor->dimension(0);
- }
-
-public:
- T at(uint32_t row, uint32_t col, uint32_t ch) const override
- {
- const auto offset = feature_index_to_byte_offset(0, row, col, ch);
-
- const T *ptr = reinterpret_cast<const T *>(_ptr + offset);
-
- return *ptr;
- }
- T at(uint32_t batch, uint32_t row, uint32_t col, uint32_t ch) const override
- {
- const auto offset = feature_index_to_byte_offset(batch, row, col, ch);
-
- const T *ptr = reinterpret_cast<const T *>(_ptr + offset);
-
- return *ptr;
- }
-
- T &at(uint32_t row, uint32_t col, uint32_t ch)
- {
- const auto offset = feature_index_to_byte_offset(0, row, col, ch);
-
- T *ptr = reinterpret_cast<T *>(_ptr + offset);
-
- return *ptr;
- }
-
- T &at(uint32_t batch, uint32_t row, uint32_t col, uint32_t ch)
- {
- const auto offset = feature_index_to_byte_offset(batch, row, col, ch);
-
- T *ptr = reinterpret_cast<T *>(_ptr + offset);
-
- return *ptr;
- }
-
-private:
- size_t feature_index_to_byte_offset(uint32_t batch, uint32_t row, uint32_t col, uint32_t ch) const
- {
- assert(1u * _shape.N > batch); // shape.N > batch
- assert(1u * _shape.H > row); // shape.H > row
- assert(1u * _shape.W > col); // shape.W > col
- assert(1u * _shape.C > ch); // shape.C > ch
-
- uint32_t res = 0;
- res += batch * _strides.N;
- res += row * _strides.H;
- res += col * _strides.W;
- res += ch * _strides.C;
-
- return res;
- }
-
-private:
- // TODO Remove _shape
- nnfw::misc::feature::Shape _shape;
- using Strides = nnfw::misc::feature::Shape;
- Strides _strides;
- uint8_t *_ptr;
- size_t _len;
-};
-
-} // namespace nhwc
-} // namespace feature
-} // namespace util
-} // namespace neurun
-
-#endif // __NEURUN_UTIL_FEATURE_NHWC_VIEW_H__
diff --git a/runtime/neurun/core/include/util/logging.h b/runtime/neurun/core/include/util/logging.h
deleted file mode 100644
index 8ecd0ac12..000000000
--- a/runtime/neurun/core/include/util/logging.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (c) 2018 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.
- */
-
-#ifndef __NEURUN_UTIL_LOGGING_H__
-#define __NEURUN_UTIL_LOGGING_H__
-
-#include <iostream>
-
-#include "util/ConfigSource.h"
-
-namespace neurun
-{
-namespace util
-{
-namespace logging
-{
-
-class Context
-{
-public:
- Context() noexcept : _enabled{false}
- {
- const auto env = util::getConfigBool(util::config::NEURUN_LOG_ENABLE);
-
- if (env)
- {
- _enabled = true;
- }
- }
-
- static Context &get() noexcept;
-
-public:
- bool enabled(void) const { return _enabled; }
-
-private:
- bool _enabled;
-};
-
-static Context &ctx = Context::get();
-
-} // namespace logging
-} // namespace util
-} // namespace neurun
-
-#define VERBOSE(name) \
- if (::neurun::util::logging::ctx.enabled()) \
- std::cout << "[" << #name << "] "
-
-#endif // __NEURUN_UTIL_LOGGING_H__