diff options
Diffstat (limited to 'runtimes/neurun/src/internal/nnapi')
-rw-r--r-- | runtimes/neurun/src/internal/nnapi/feature/Reader.h | 75 | ||||
-rw-r--r-- | runtimes/neurun/src/internal/nnapi/feature/Utils.h | 60 | ||||
-rw-r--r-- | runtimes/neurun/src/internal/nnapi/feature/View.h | 92 | ||||
-rw-r--r-- | runtimes/neurun/src/internal/nnapi/kernel/Reader.h | 70 | ||||
-rw-r--r-- | runtimes/neurun/src/internal/nnapi/kernel/View.h | 88 |
5 files changed, 0 insertions, 385 deletions
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__ |