aboutsummaryrefslogtreecommitdiff
path: root/arm_compute/core/NEON/kernels
diff options
context:
space:
mode:
authorAnthony Barbier <anthony.barbier@arm.com>2018-07-06 17:05:59 +0100
committerAnthony Barbier <anthony.barbier@arm.com>2018-11-02 16:54:54 +0000
commit71d9b57aac146ae3ad5648c1308a872cea90070d (patch)
treeb4f36f7c6a45782ef9e40fe4c6a9e9a68d716948 /arm_compute/core/NEON/kernels
parentd1794ebfa10d05af7d2458c5d506152fd38068d3 (diff)
downloadComputeLibrary-71d9b57aac146ae3ad5648c1308a872cea90070d.tar.gz
COMPMID-1381: Cleaned up the AssemblyHelper interface
Introduced a new IFunction for when we'll fork the arm_gemm functions Increased encapsulation and abstraction of which method is used Change-Id: I5fd8b14b5c77e7f8ecb09029b5e2eccd10dbdcf4 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/139108 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com> Reviewed-by: Pablo Tello <pablo.tello@arm.com>
Diffstat (limited to 'arm_compute/core/NEON/kernels')
-rw-r--r--arm_compute/core/NEON/kernels/assembly/NEGEMMAssemblyWrapperKernel.h (renamed from arm_compute/core/NEON/kernels/assembly/NEGEMMAssemblyWrapper.h)28
1 files changed, 15 insertions, 13 deletions
diff --git a/arm_compute/core/NEON/kernels/assembly/NEGEMMAssemblyWrapper.h b/arm_compute/core/NEON/kernels/assembly/NEGEMMAssemblyWrapperKernel.h
index 646cc7861a..9eaf6061d8 100644
--- a/arm_compute/core/NEON/kernels/assembly/NEGEMMAssemblyWrapper.h
+++ b/arm_compute/core/NEON/kernels/assembly/NEGEMMAssemblyWrapperKernel.h
@@ -21,13 +21,15 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
-#ifndef __ARM_COMPUTE_ASSEMBLY_GEMM_KERNEL_WRAPPER_H__
-#define __ARM_COMPUTE_ASSEMBLY_GEMM_KERNEL_WRAPPER_H__
+#ifndef __ARM_COMPUTE_ASSEMBLY_GEMM_KERNEL_WRAPPER_KERNEL_H__
+#define __ARM_COMPUTE_ASSEMBLY_GEMM_KERNEL_WRAPPER_KERNEL_H__
#include "arm_compute/core/NEON/INEKernel.h"
#include "arm_compute/core/Validate.h"
#include "arm_compute/core/Utils.h"
+#include "gemm_common.hpp"
+
namespace arm_compute
{
class ITensor;
@@ -36,7 +38,7 @@ class ITensor;
*
* 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 NEGEMMAssemblyWrapper and other auxiliary data structures to execute a single assembly kernel
+ * of NEGEMMAssemblyWrapperKernel 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
@@ -44,21 +46,21 @@ class ITensor;
*
*
*/
-template<typename T>
-class NEGEMMAssemblyWrapper final : public INEKernel
+template <typename TypeInput, typename TypeOutput>
+class NEGEMMAssemblyWrapperKernel final : public INEKernel
{
public:
/** Constructor
*/
- NEGEMMAssemblyWrapper() : _kernel(nullptr) {}
+ NEGEMMAssemblyWrapperKernel() : _kernel(nullptr) {}
- NEGEMMAssemblyWrapper(NEGEMMAssemblyWrapper &) = delete;
- NEGEMMAssemblyWrapper(NEGEMMAssemblyWrapper &&) = default;
- NEGEMMAssemblyWrapper & operator=(NEGEMMAssemblyWrapper &) = delete;
+ NEGEMMAssemblyWrapperKernel(NEGEMMAssemblyWrapperKernel &) = delete;
+ NEGEMMAssemblyWrapperKernel(NEGEMMAssemblyWrapperKernel &&) = default;
+ NEGEMMAssemblyWrapperKernel & operator=(NEGEMMAssemblyWrapperKernel &) = delete;
const char *name() const override
{
- return "NEGEMMAssemblyWrapper";
+ return "NEGEMMAssemblyWrapperKernel";
}
// Inherited methods overridden:
void run(const Window &window, const ThreadInfo &info) override
@@ -74,7 +76,7 @@ public:
* @param[in] kernel Pointer to an assembly kernel implementation.
* @param[in] num_threads Number of concurrent threads which will execute the kernel.
*/
- void configure(T *kernel)
+ void configure(arm_gemm::GemmCommon<TypeInput, TypeOutput> *kernel)
{
ARM_COMPUTE_ERROR_ON_NULLPTR((reinterpret_cast<void*>(kernel)));
_kernel = kernel;
@@ -84,8 +86,8 @@ public:
INEKernel::configure(win);
}
private:
- T* _kernel;
+ arm_gemm::GemmCommon<TypeInput, TypeOutput>* _kernel;
};
} // namespace arm_compute
-#endif /*__ARM_COMPUTE_NEGEMMAARCH64KERNEL_H__*/
+#endif /* __ARM_COMPUTE_ASSEMBLY_GEMM_KERNEL_WRAPPER_KERNEL_H__ */