diff options
author | Sang-Hoon Park <sang-hoon.park@arm.com> | 2021-05-12 13:59:10 +0100 |
---|---|---|
committer | Georgios Pinitas <georgios.pinitas@arm.com> | 2021-05-14 04:26:10 +0000 |
commit | 4f7693d8757cf12c33f049c61c63bc689379ab84 (patch) | |
tree | f37317dd3ffe7394886b045c92e08e31863e6954 /src/core | |
parent | 13c497a8a9a4aa9353719afe53ccc7db50da74fe (diff) | |
download | ComputeLibrary-4f7693d8757cf12c33f049c61c63bc689379ab84.tar.gz |
Rename NEGEMMAssembly to CpuGemmAssembly
- Dispatch, WrapperKernel has been renamed and moved
- Header files for assembly kernels have been moved
Partially Resolves: COMPMID-4506
Change-Id: I6c2f391bb95ba1ce7ca195d0efa57b9c3225570f
Signed-off-by: Sang-Hoon Park <sang-hoon.park@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5637
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
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 * |