From 421405b6a21b124288a750e2da26dc01eb7391cb Mon Sep 17 00:00:00 2001 From: Georgios Pinitas Date: Fri, 26 Oct 2018 19:05:32 +0100 Subject: COMPMID-1675: Add SVE support Change-Id: I86679adff556b6ffc9929b35cbf1b59b3958bdb1 --- .../kernels/assembly/NEGEMMInterleavedStrategies.h | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'src/core/NEON/kernels/assembly') diff --git a/src/core/NEON/kernels/assembly/NEGEMMInterleavedStrategies.h b/src/core/NEON/kernels/assembly/NEGEMMInterleavedStrategies.h index 00e483c0f8..69842fec80 100644 --- a/src/core/NEON/kernels/assembly/NEGEMMInterleavedStrategies.h +++ b/src/core/NEON/kernels/assembly/NEGEMMInterleavedStrategies.h @@ -37,6 +37,10 @@ #include "../arm_gemm/kernels/a64_gemm_u8_4x4.hpp" #include "../arm_gemm/kernels/a64_hgemm_24x8.hpp" #include "../arm_gemm/kernels/a64_sgemm_12x8.hpp" +#include "../arm_gemm/kernels/sve_interleaved_fp16_mla_3VLx8.hpp" +#include "../arm_gemm/kernels/sve_interleaved_fp32_mla_3VLx8.hpp" +#include "../arm_gemm/kernels/sve_interleaved_s8s32_dot_3VLx8.hpp" +#include "../arm_gemm/kernels/sve_interleaved_u8u32_dot_3VLx8.hpp" namespace arm_compute { @@ -54,6 +58,29 @@ struct Kernel #define DEFINE_STRATEGY(strat) \ DEFINE_STRATEGY_SUFFIX(strat, "") +#ifdef __ARM_FEATURE_SVE +template <> +struct Kernel +{ + DEFINE_STRATEGY(interleaved_fp32_mla_3VLx8) +}; +template <> +struct Kernel +{ + DEFINE_STRATEGY(interleaved_fp16_mla_3VLx8) +}; +template +struct Kernel +{ + DEFINE_STRATEGY(interleaved_s8s32_dot_3VLx8) +}; +template +struct Kernel +{ + DEFINE_STRATEGY(interleaved_u8u32_dot_3VLx8) +}; +#else /* __ARM_FEATURE_SVE */ + #ifdef __ARM_FEATURE_FP16_VECTOR_ARITHMETIC template <> struct Kernel @@ -96,6 +123,7 @@ struct Kernel DEFINE_STRATEGY(sgemm_8x6) }; #endif /* __aarch64__ */ +#endif /* __ARM_FEATURE_SVE */ #undef DEFINE_STRATEGY #undef DEFINE_STRATEGY_SUFFIX -- cgit v1.2.1