summaryrefslogtreecommitdiff
path: root/runtimes/neurun/src/internal
diff options
context:
space:
mode:
Diffstat (limited to 'runtimes/neurun/src/internal')
-rw-r--r--runtimes/neurun/src/internal/Convert.cc59
-rw-r--r--runtimes/neurun/src/internal/Convert.h40
-rw-r--r--runtimes/neurun/src/internal/Padding.cc72
-rw-r--r--runtimes/neurun/src/internal/Padding.h48
-rw-r--r--runtimes/neurun/src/internal/nnapi/feature/Reader.h75
-rw-r--r--runtimes/neurun/src/internal/nnapi/feature/Utils.h60
-rw-r--r--runtimes/neurun/src/internal/nnapi/feature/View.h92
-rw-r--r--runtimes/neurun/src/internal/nnapi/kernel/Reader.h70
-rw-r--r--runtimes/neurun/src/internal/nnapi/kernel/View.h88
9 files changed, 0 insertions, 604 deletions
diff --git a/runtimes/neurun/src/internal/Convert.cc b/runtimes/neurun/src/internal/Convert.cc
deleted file mode 100644
index c0260b04e..000000000
--- a/runtimes/neurun/src/internal/Convert.cc
+++ /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.
- */
-
-#include "Convert.h"
-
-namespace internal
-{
-
-::arm_compute::TensorShape asTensorShape(int32_t h, int32_t w)
-{
- return ::arm_compute::TensorShape(w, h);
-}
-
-::arm_compute::TensorShape asTensorShape(const nnfw::util::feature::Shape &shape)
-{
- return ::arm_compute::TensorShape(shape.W, shape.H, shape.C, shape.N);
-}
-
-::arm_compute::TensorShape asTensorShape(const nnfw::util::kernel::Shape &shape)
-{
- return ::arm_compute::TensorShape(shape.W, shape.H, shape.C, shape.N);
-}
-
-::arm_compute::TensorInfo asTensorInfo(const nnfw::util::feature::Shape &shape)
-{
- return ::arm_compute::TensorInfo(asTensorShape(shape), 1, ::arm_compute::DataType::F32);
-}
-
-::arm_compute::TensorInfo asTensorInfo(const nnfw::util::kernel::Shape &shape)
-{
- return ::arm_compute::TensorInfo(asTensorShape(shape), 1, ::arm_compute::DataType::F32);
-}
-
-::arm_compute::TensorInfo asTensorInfo(int32_t size)
-{
- return ::arm_compute::TensorInfo(::arm_compute::TensorShape(size), 1,
- ::arm_compute::DataType::F32);
-}
-
-::arm_compute::TensorInfo asTensorInfo(int32_t h, int32_t w)
-{
- return ::arm_compute::TensorInfo(::arm_compute::TensorShape(w, h), 1,
- ::arm_compute::DataType::F32);
-}
-
-} // namespace internal
diff --git a/runtimes/neurun/src/internal/Convert.h b/runtimes/neurun/src/internal/Convert.h
deleted file mode 100644
index f279133aa..000000000
--- a/runtimes/neurun/src/internal/Convert.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 __INTERNAL_CONVERT_H__
-#define __INTERNAL_CONVERT_H__
-
-#include <arm_compute/core/TensorInfo.h>
-#include <arm_compute/core/TensorShape.h>
-
-#include "util/feature/Shape.h"
-#include "util/kernel/Shape.h"
-
-namespace internal
-{
-
-::arm_compute::TensorShape asTensorShape(int32_t h, int32_t w);
-::arm_compute::TensorShape asTensorShape(const nnfw::util::feature::Shape &shape);
-::arm_compute::TensorShape asTensorShape(const nnfw::util::kernel::Shape &shape);
-
-::arm_compute::TensorInfo asTensorInfo(const nnfw::util::feature::Shape &shape);
-::arm_compute::TensorInfo asTensorInfo(const nnfw::util::kernel::Shape &shape);
-::arm_compute::TensorInfo asTensorInfo(int32_t size);
-::arm_compute::TensorInfo asTensorInfo(int32_t h, int32_t w);
-
-} // namespace internal
-
-#endif // __INTERNAL_CONVERT_H__
diff --git a/runtimes/neurun/src/internal/Padding.cc b/runtimes/neurun/src/internal/Padding.cc
deleted file mode 100644
index 200fa1a02..000000000
--- a/runtimes/neurun/src/internal/Padding.cc
+++ /dev/null
@@ -1,72 +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.
- */
-
-#include "internal/Padding.h"
-
-#include <algorithm>
-
-namespace internal
-{
-
-Padding valid_padding(void)
-{
- //
- // ANEURALNETWORKS_PADDING_VALID
- //
- // VALID padding. No padding.
- //
- // When the input size is not evenly divisible by the filter size,
- // the input at the end that could not fill the whole filter tile
- // will simply be ignored.
- //
- Padding padding;
-
- padding.top = 0;
- padding.bottom = 0;
- padding.left = 0;
- padding.right = 0;
-
- return padding;
-}
-
-Padding same_padding(const nnfw::util::feature::Shape &ifm_shape,
- const nnfw::util::feature::Shape &ofm_shape, const Stride &stride, uint32_t kw,
- uint32_t kh)
-{
- Padding padding;
-
- // ANEURALNETWORKS_PADDING_SAME (from NNAPI spec)
- //
- // SAME padding. Padding on both ends are the "same":
- //
- // padding_to_beginning = total_padding / 2
- // padding_to_end = (total_padding + 1)/2.
- //
- const int32_t vertical_needed_input = (ofm_shape.H - 1) * stride.vertical + kh;
- const int32_t vertical_total_padding = std::max(0, vertical_needed_input - ifm_shape.H);
-
- const int32_t horizontal_needed_input = (ofm_shape.W - 1) * stride.horizontal + kw;
- const int32_t horizontal_total_padding = std::max(0, horizontal_needed_input - ifm_shape.W);
-
- padding.top = vertical_total_padding / 2;
- padding.bottom = (vertical_total_padding + 1) / 2;
- padding.left = horizontal_total_padding / 2;
- padding.right = (horizontal_total_padding + 1) / 2;
-
- return padding;
-}
-
-} // namespace internal
diff --git a/runtimes/neurun/src/internal/Padding.h b/runtimes/neurun/src/internal/Padding.h
deleted file mode 100644
index 84e081a78..000000000
--- a/runtimes/neurun/src/internal/Padding.h
+++ /dev/null
@@ -1,48 +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 __INTERNAL_PADDING_H__
-#define __INTERNAL_PADDING_H__
-
-#include <stdint.h>
-
-#include <util/feature/Shape.h>
-
-namespace internal
-{
-
-struct Padding
-{
- uint32_t top;
- uint32_t bottom;
- uint32_t left;
- uint32_t right;
-};
-
-struct Stride
-{
- uint32_t vertical;
- uint32_t horizontal;
-};
-
-Padding valid_padding(void);
-Padding same_padding(const nnfw::util::feature::Shape &ifm_shape,
- const nnfw::util::feature::Shape &ofm_shape, const Stride &stride, uint32_t kw,
- uint32_t kh);
-
-} // namespace internal
-
-#endif // __INTERNAL_PADDING_H__
diff --git a/runtimes/neurun/src/internal/nnapi/feature/Reader.h b/runtimes/neurun/src/internal/nnapi/feature/Reader.h
deleted file mode 100644
index eb513512d..000000000
--- a/runtimes/neurun/src/internal/nnapi/feature/Reader.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 __INTERNAL_NNAPI_FEATURE_READER_H__
-#define __INTERNAL_NNAPI_FEATURE_READER_H__
-
-#include "internal/nnapi/feature/Utils.h"
-
-#include "util/feature/Reader.h"
-
-namespace internal
-{
-namespace nnapi
-{
-namespace feature
-{
-
-template <typename T> class Reader;
-
-template <> class Reader<float> final : public nnfw::util::feature::Reader<float>
-{
-public:
- Reader(const ::nnfw::util::feature::Shape &shape, const uint8_t *ptr, size_t len)
- : _shape{shape}, _ptr{ptr}, _len{len}
- {
- // DO NOTHING
- }
-
-public:
- const nnfw::util::feature::Shape &shape(void) const { return _shape; }
-
-public:
- float at(uint32_t ch, uint32_t row, uint32_t col) const override
- {
- uint32_t index = index_of(_shape, ch, row, col);
-
- const auto arr = reinterpret_cast<const float *>(_ptr);
-
- return arr[index];
- }
- float at(uint32_t batch, uint32_t ch, uint32_t row, uint32_t col) const override
- {
- uint32_t index = index_of(_shape, batch, ch, row, col);
-
- const auto arr = reinterpret_cast<const float *>(_ptr);
-
- return arr[index];
- }
-
-private:
- nnfw::util::feature::Shape _shape;
-
-private:
- const uint8_t *_ptr;
- const size_t _len;
-};
-
-} // namespace feature
-} // namespace nnapi
-} // namespace internal
-
-#endif // __INTERNAL_NNAPI_FEATURE_READER_H__
diff --git a/runtimes/neurun/src/internal/nnapi/feature/Utils.h b/runtimes/neurun/src/internal/nnapi/feature/Utils.h
deleted file mode 100644
index e6e1e71bd..000000000
--- a/runtimes/neurun/src/internal/nnapi/feature/Utils.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 __INTERNAL_NNAPI_FEATURE_UTILS_H__
-#define __INTERNAL_NNAPI_FEATURE_UTILS_H__
-
-#include "util/feature/Shape.h"
-
-namespace internal
-{
-namespace nnapi
-{
-namespace feature
-{
-
-inline uint32_t index_of(const ::nnfw::util::feature::Shape &shape, uint32_t ch, uint32_t row,
- uint32_t col)
-{
- uint32_t res = 0;
-
- // NNAPI uses NHWC ordering
- res += row * shape.W * shape.C;
- res += col * shape.C;
- res += ch;
-
- return res;
-}
-
-inline uint32_t index_of(const ::nnfw::util::feature::Shape &shape, uint32_t batch, uint32_t ch,
- uint32_t row, uint32_t col)
-{
- uint32_t res = 0;
-
- // NNAPI uses NHWC ordering
- res += batch * shape.H * shape.W * shape.C;
- res += row * shape.W * shape.C;
- res += col * shape.C;
- res += ch;
-
- return res;
-}
-
-} // namespace feature
-} // namespace nnapi
-} // namespace internal
-
-#endif // __INTERNAL_NNAPI_FEATURE_UTILS_H__
diff --git a/runtimes/neurun/src/internal/nnapi/feature/View.h b/runtimes/neurun/src/internal/nnapi/feature/View.h
deleted file mode 100644
index 60335dbf1..000000000
--- a/runtimes/neurun/src/internal/nnapi/feature/View.h
+++ /dev/null
@@ -1,92 +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 __INTERNAL_NNAPI_FEATURE_VIEW_H__
-#define __INTERNAL_NNAPI_FEATURE_VIEW_H__
-
-#include "internal/nnapi/feature/Utils.h"
-
-#include "util/feature/Reader.h"
-
-namespace internal
-{
-namespace nnapi
-{
-namespace feature
-{
-
-template <typename T> class View final : public nnfw::util::feature::Reader<float>
-{
-public:
- View(const ::nnfw::util::feature::Shape &shape, uint8_t *ptr, size_t len)
- : _shape{shape}, _ptr{ptr}, _len{len}
- {
- // DO NOTHING
- }
-
-public:
- const nnfw::util::feature::Shape &shape(void) const { return _shape; }
-
-public:
- T at(uint32_t ch, uint32_t row, uint32_t col) const override
- {
- uint32_t index = index_of(_shape, ch, row, col);
-
- T *arr = reinterpret_cast<T *>(_ptr);
-
- return arr[index];
- }
-
- T at(uint32_t batch, uint32_t ch, uint32_t row, uint32_t col) const override
- {
- uint32_t index = index_of(_shape, batch, ch, row, col);
-
- T *arr = reinterpret_cast<T *>(_ptr);
-
- return arr[index];
- }
-
- T &at(uint32_t ch, uint32_t row, uint32_t col)
- {
- uint32_t index = index_of(_shape, ch, row, col);
-
- T *arr = reinterpret_cast<T *>(_ptr);
-
- return arr[index];
- }
-
- T &at(uint32_t batch, uint32_t ch, uint32_t row, uint32_t col)
- {
- uint32_t index = index_of(_shape, batch, ch, row, col);
-
- T *arr = reinterpret_cast<T *>(_ptr);
-
- return arr[index];
- }
-
-private:
- nnfw::util::feature::Shape _shape;
-
-private:
- uint8_t *_ptr;
- const size_t _len;
-};
-
-} // namespace feature
-} // namespace nnapi
-} // namespace internal
-
-#endif // __INTERNAL_NNAPI_FEATURE_VIEW_H__
diff --git a/runtimes/neurun/src/internal/nnapi/kernel/Reader.h b/runtimes/neurun/src/internal/nnapi/kernel/Reader.h
deleted file mode 100644
index 9d93800bf..000000000
--- a/runtimes/neurun/src/internal/nnapi/kernel/Reader.h
+++ /dev/null
@@ -1,70 +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 __INTERNAL_NNAPI_KERNEL_READER_H__
-#define __INTERNAL_NNAPI_KERNEL_READER_H__
-
-#include "util/kernel/Shape.h"
-#include "util/kernel/Reader.h"
-
-namespace internal
-{
-namespace nnapi
-{
-namespace kernel
-{
-
-template <typename T> class Reader final : public nnfw::util::kernel::Reader<T>
-{
-public:
- Reader(const ::nnfw::util::kernel::Shape &shape, const uint8_t *base, size_t size)
- : _shape{shape}, _base{base}, _size{size}
- {
- // DO NOTHING
- }
-
-public:
- const nnfw::util::kernel::Shape &shape(void) const { return _shape; }
-
-public:
- T at(uint32_t nth, uint32_t ch, uint32_t row, uint32_t col) const override
- {
- // NNAPI uses NHWC ordering
- uint32_t index = 0;
-
- index += nth * _shape.H * _shape.W * _shape.C;
- index += row * _shape.W * _shape.C;
- index += col * _shape.C;
- index += ch;
-
- const T *ptr = reinterpret_cast<const T *>(_base);
-
- return ptr[index];
- }
-
-private:
- nnfw::util::kernel::Shape _shape;
-
-private:
- const uint8_t *_base;
- const size_t _size;
-};
-
-} // namespace kernel
-} // namespace nnapi
-} // namespace internal
-
-#endif // __INTERNAL_NNAPI_KERNEL_READER_H__
diff --git a/runtimes/neurun/src/internal/nnapi/kernel/View.h b/runtimes/neurun/src/internal/nnapi/kernel/View.h
deleted file mode 100644
index 86d19b87f..000000000
--- a/runtimes/neurun/src/internal/nnapi/kernel/View.h
+++ /dev/null
@@ -1,88 +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 __INTERNAL_NNAPI_KERNEL_VIEW_H__
-#define __INTERNAL_NNAPI_KERNEL_VIEW_H__
-
-#include "util/kernel/Shape.h"
-#include "util/kernel/Reader.h"
-
-#include <arm_compute/core/ITensor.h>
-
-namespace internal
-{
-namespace nnapi
-{
-namespace kernel
-{
-
-template <typename T> class View final : public nnfw::util::kernel::Reader<float>
-{
-public:
- View(::arm_compute::ITensor *tensor) : _tensor{tensor}
- {
- assert(tensor->info()->data_type() == ::arm_compute::DataType::F32);
-
- _shape.N = tensor->info()->dimension(3);
- _shape.C = tensor->info()->dimension(2);
- _shape.H = tensor->info()->dimension(1);
- _shape.W = tensor->info()->dimension(0);
- }
-
-public:
- const nnfw::util::kernel::Shape &shape(void) const { return _shape; }
-
-public:
- float at(uint32_t nth, uint32_t row, uint32_t col, uint32_t ch) const override
- {
- // NNAPI uses NHWC ordering
- uint32_t index = 0;
-
- index += nth * _shape.H * _shape.W * _shape.C;
- index += row * _shape.W * _shape.C;
- index += col * _shape.C;
- index += ch;
-
- float *ptr = reinterpret_cast<float *>(_tensor->buffer());
-
- return ptr[index];
- }
-
- float &at(uint32_t nth, uint32_t row, uint32_t col, uint32_t ch)
- {
- // NNAPI uses NHWC ordering
- uint32_t index = 0;
-
- index += nth * _shape.H * _shape.W * _shape.C;
- index += row * _shape.W * _shape.C;
- index += col * _shape.C;
- index += ch;
-
- float *ptr = reinterpret_cast<float *>(_tensor->buffer());
-
- return ptr[index];
- }
-
-private:
- nnfw::util::kernel::Shape _shape;
- ::arm_compute::ITensor *_tensor;
-};
-
-} // namespace kernel
-} // namespace nnapi
-} // namespace internal
-
-#endif // __INTERNAL_NNAPI_KERNEL_VIEW_H__