aboutsummaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/cpu/kernels/assembly/CpuGemmAssemblyWrapperKernel.h (renamed from src/core/NEON/kernels/assembly/NEGEMMAssemblyWrapperKernel.h)28
-rw-r--r--src/core/cpu/kernels/assembly/arm_gemm.hpp (renamed from src/core/NEON/kernels/assembly/arm_gemm.hpp)2
-rw-r--r--src/core/cpu/kernels/assembly/arm_gemm_compute_iface.hpp (renamed from src/core/NEON/kernels/assembly/arm_gemm_compute_iface.hpp)36
-rw-r--r--src/core/cpu/kernels/assembly/arm_gemm_local.hpp (renamed from src/core/NEON/kernels/assembly/arm_gemm_local.hpp)2
-rw-r--r--src/core/cpu/kernels/assembly/convolution_parameters.hpp (renamed from src/core/NEON/kernels/assembly/convolution_parameters.hpp)2
-rw-r--r--src/core/cpu/kernels/assembly/gemm_common.hpp (renamed from src/core/NEON/kernels/assembly/gemm_common.hpp)4
-rw-r--r--src/core/cpu/kernels/assembly/ndrange.hpp (renamed from src/core/NEON/kernels/assembly/ndrange.hpp)2
7 files changed, 45 insertions, 31 deletions
diff --git a/src/core/NEON/kernels/assembly/NEGEMMAssemblyWrapperKernel.h b/src/core/cpu/kernels/assembly/CpuGemmAssemblyWrapperKernel.h
index 7fcf2b1e4d..4b7b092d01 100644
--- a/src/core/NEON/kernels/assembly/NEGEMMAssemblyWrapperKernel.h
+++ b/src/core/cpu/kernels/assembly/CpuGemmAssemblyWrapperKernel.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018-2020 Arm Limited.
+ * Copyright (c) 2018-2021 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -26,8 +26,8 @@
#include "arm_compute/core/Utils.h"
#include "arm_compute/core/Validate.h"
-#include "arm_gemm_compute_iface.hpp"
#include "src/core/NEON/INEKernel.h"
+#include "src/core/cpu/kernels/assembly/arm_gemm_compute_iface.hpp"
#include "gemm_common.hpp"
@@ -35,11 +35,15 @@ namespace arm_compute
{
class ITensor;
+namespace cpu
+{
+namespace kernel
+{
/** This class is a wrapper for the assembly kernels.
*
* Some kernels were written in assembly and highly optimised for specific CPUs like A53 or A55.
* This class works as a wrapper for these assembly kernels. The arm compute library creates an instance
- * of NEGEMMAssemblyWrapperKernel and other auxiliary data structures to execute a single assembly kernel
+ * of CpuGemmAssemblyWrapperKernel and other auxiliary data structures to execute a single assembly kernel
* in the context of an NEFunctions.
*
* The type T is the type of the actual kernel implemented in assembly which is of type
@@ -48,19 +52,19 @@ class ITensor;
*
*/
template <typename TypeInput, typename TypeOutput>
-class NEGEMMAssemblyWrapperKernel final : public INEKernel
+class CpuGemmAssemblyWrapperKernel final : public INEKernel
{
public:
/** Constructor
*/
- NEGEMMAssemblyWrapperKernel()
- : _kernel(nullptr), _name("NEGEMMAssemblyWrapperKernel")
+ CpuGemmAssemblyWrapperKernel()
+ : _kernel(nullptr), _name("CpuGemmAssemblyWrapperKernel")
{
}
- NEGEMMAssemblyWrapperKernel(NEGEMMAssemblyWrapperKernel &) = delete;
- NEGEMMAssemblyWrapperKernel(NEGEMMAssemblyWrapperKernel &&) = default;
- NEGEMMAssemblyWrapperKernel &operator=(NEGEMMAssemblyWrapperKernel &) = delete;
+ CpuGemmAssemblyWrapperKernel(CpuGemmAssemblyWrapperKernel &) = delete;
+ CpuGemmAssemblyWrapperKernel(CpuGemmAssemblyWrapperKernel &&) = default;
+ CpuGemmAssemblyWrapperKernel &operator=(CpuGemmAssemblyWrapperKernel &) = delete;
const char *name() const override
{
@@ -94,8 +98,8 @@ public:
/** Initialise the kernel's input and output.
*
- * @param[in] kernel Pointer to an assembly kernel implementation.
- * @param[in] num_threads Number of concurrent threads which will execute the kernel.
+ * @param[in] kernel Pointer to an assembly kernel implementation.
+ * @param[in] kernel_name_tag Tag to be attacehd to the kernel's name.
*/
void configure(arm_gemm::GemmCommon<TypeInput, TypeOutput> *kernel, std::string kernel_name_tag)
{
@@ -116,5 +120,7 @@ private:
arm_gemm::GemmCommon<TypeInput, TypeOutput> *_kernel;
std::string _name;
};
+} // namespace kernel
+} // namespace cpu
} // namespace arm_compute
#endif /* ARM_COMPUTE_ASSEMBLY_GEMM_KERNEL_WRAPPER_KERNEL_H */
diff --git a/src/core/NEON/kernels/assembly/arm_gemm.hpp b/src/core/cpu/kernels/assembly/arm_gemm.hpp
index 3088b080d6..624e9e94dc 100644
--- a/src/core/NEON/kernels/assembly/arm_gemm.hpp
+++ b/src/core/cpu/kernels/assembly/arm_gemm.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018-2020 Arm Limited.
+ * Copyright (c) 2018-2021 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
diff --git a/src/core/NEON/kernels/assembly/arm_gemm_compute_iface.hpp b/src/core/cpu/kernels/assembly/arm_gemm_compute_iface.hpp
index d62047797f..718fcd1fb4 100644
--- a/src/core/NEON/kernels/assembly/arm_gemm_compute_iface.hpp
+++ b/src/core/cpu/kernels/assembly/arm_gemm_compute_iface.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2020 Arm Limited.
+ * Copyright (c) 2020-2021 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -23,8 +23,8 @@
*/
#pragma once
-#include "arm_compute/core/Window.h"
#include "arm_compute/core/Dimensions.h"
+#include "arm_compute/core/Window.h"
#include "ndrange.hpp"
@@ -35,14 +35,14 @@
* so maintain their own types which represent similar information.
*/
-namespace arm_gemm {
-
+namespace arm_gemm
+{
//we want to unify the maximum number of dimensions used beween arm_gemm and arm compute library
constexpr std::size_t ndrange_max =
arm_compute::Dimensions<unsigned int>::num_max_dimensions;
-using ndrange_t=NDRange<ndrange_max>;
-using ndcoord_t=NDCoordinate<ndrange_max>;
+using ndrange_t = NDRange<ndrange_max>;
+using ndcoord_t = NDCoordinate<ndrange_max>;
/* Converts an `arm_gemm::ndrange_t` to a `arm_compute::Window`
*
@@ -52,10 +52,12 @@ using ndcoord_t=NDCoordinate<ndrange_max>;
* @param [ndr] the `arm_gemm::ndrange_t` we wish to convert into a `arm_compute::Window`
* @returns an `arm_compute::Window` representing the same dimensional ranges as `ndr`
*/
-inline arm_compute::Window to_window(const ndrange_t& ndr) {
+inline arm_compute::Window to_window(const ndrange_t &ndr)
+{
arm_compute::Window win;
- for(unsigned int i = 0; i!=ndrange_max; ++i) {
+ for(unsigned int i = 0; i != ndrange_max; ++i)
+ {
//populate the window with the dimensions of the NDRange
win.set(i, arm_compute::Window::Dimension(0, ndr.get_size(i)));
}
@@ -69,10 +71,12 @@ inline arm_compute::Window to_window(const ndrange_t& ndr) {
* @param [ndc] the `arm_gemm::ndcoord_t` we wish to convert into a `arm_compute::Window`
* @returns an `arm_compute::Window` representing the same dimensional ranges as `ndc`
*/
-inline arm_compute::Window to_window(const ndcoord_t& ndc) {
+inline arm_compute::Window to_window(const ndcoord_t &ndc)
+{
arm_compute::Window win;
- for(unsigned int i = 0; i!=ndrange_max; ++i) {
+ for(unsigned int i = 0; i != ndrange_max; ++i)
+ {
const auto start = ndc.get_position(i);
const auto size = ndc.get_size(i);
const auto stop = start + size;
@@ -92,8 +96,10 @@ inline arm_compute::Window to_window(const ndcoord_t& ndc) {
* @param [win] the `arm_compute::Window` we want to convert to `arm_gemm::ndrange_t`
* @return the resultant ndrange_t
*/
-inline ndrange_t to_ndrange(const arm_compute::Window& win) {
- return {
+inline ndrange_t to_ndrange(const arm_compute::Window &win)
+{
+ return
+ {
static_cast<unsigned int>(win[0].end() - win[0].start()),
static_cast<unsigned int>(win[1].end() - win[1].start()),
static_cast<unsigned int>(win[2].end() - win[2].start()),
@@ -108,8 +114,10 @@ inline ndrange_t to_ndrange(const arm_compute::Window& win) {
* @param [win] the `arm_compute::Window` we want to convert to `arm_gemm::ndcoord_t`
* @return the resultant ndcoord_t
*/
-inline ndcoord_t to_ndcoord(const arm_compute::Window& win) {
- return {
+inline ndcoord_t to_ndcoord(const arm_compute::Window &win)
+{
+ return
+ {
{ static_cast<unsigned int>(win[0].start()), static_cast<unsigned int>(win[0].end() - win[0].start()) },
{ static_cast<unsigned int>(win[1].start()), static_cast<unsigned int>(win[1].end() - win[1].start()) },
{ static_cast<unsigned int>(win[2].start()), static_cast<unsigned int>(win[2].end() - win[2].start()) },
diff --git a/src/core/NEON/kernels/assembly/arm_gemm_local.hpp b/src/core/cpu/kernels/assembly/arm_gemm_local.hpp
index c08ed2d5e3..78e0adf31f 100644
--- a/src/core/NEON/kernels/assembly/arm_gemm_local.hpp
+++ b/src/core/cpu/kernels/assembly/arm_gemm_local.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018-2020 Arm Limited.
+ * Copyright (c) 2018-2021 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
diff --git a/src/core/NEON/kernels/assembly/convolution_parameters.hpp b/src/core/cpu/kernels/assembly/convolution_parameters.hpp
index d0ef5b539f..0c1ae58902 100644
--- a/src/core/NEON/kernels/assembly/convolution_parameters.hpp
+++ b/src/core/cpu/kernels/assembly/convolution_parameters.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018-2020 Arm Limited.
+ * Copyright (c) 2018-2021 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
diff --git a/src/core/NEON/kernels/assembly/gemm_common.hpp b/src/core/cpu/kernels/assembly/gemm_common.hpp
index e1fb7a45a8..4af85ed663 100644
--- a/src/core/NEON/kernels/assembly/gemm_common.hpp
+++ b/src/core/cpu/kernels/assembly/gemm_common.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017-2020 Arm Limited.
+ * Copyright (c) 2017-2021 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -81,7 +81,7 @@ public:
/** Main execute member fucntion
* @param [in] work_range specifies the range of work we want to be computed, total range defined by get_window_size()
* @param [in] thread_locator where are we inside of the thread space
- * @naram [in] threadid a unique threadid
+ * @param [in] threadid a unique threadid
*/
virtual void execute(const ndcoord_t &work_range, const ndcoord_t &thread_locator, int threadid) = 0;
diff --git a/src/core/NEON/kernels/assembly/ndrange.hpp b/src/core/cpu/kernels/assembly/ndrange.hpp
index a2bb60f687..1c8261aef7 100644
--- a/src/core/NEON/kernels/assembly/ndrange.hpp
+++ b/src/core/cpu/kernels/assembly/ndrange.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2019-2020 Arm Limited.
+ * Copyright (c) 2019-2021 Arm Limited.
*
* SPDX-License-Identifier: MIT
*