From aeced744b854758768243833bcdf999c0c3c1a5b Mon Sep 17 00:00:00 2001 From: David Mansell Date: Tue, 10 Oct 2023 15:20:55 +0100 Subject: arm_gemm: Add SME2 FP16 GEMV. Change-Id: I1f73819c25c66e4d13198e9c79755808d92b343d Signed-off-by: David Mansell Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/10466 Tested-by: Arm Jenkins Benchmark: Arm Jenkins Reviewed-by: Viet-Hoa Do Comments-Addressed: Arm Jenkins --- src/core/NEON/kernels/arm_gemm/gemm_fp16.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/core/NEON/kernels/arm_gemm/gemm_fp16.cpp') diff --git a/src/core/NEON/kernels/arm_gemm/gemm_fp16.cpp b/src/core/NEON/kernels/arm_gemm/gemm_fp16.cpp index efdaeeb170..ff16be36e7 100644 --- a/src/core/NEON/kernels/arm_gemm/gemm_fp16.cpp +++ b/src/core/NEON/kernels/arm_gemm/gemm_fp16.cpp @@ -32,6 +32,7 @@ #include "gemm_hybrid_indirect.hpp" #include "gemm_implementation.hpp" #include "gemm_interleaved.hpp" +#include "gemv_pretransposed.hpp" #include "kernels/a32_sgemm_8x6.hpp" #ifdef ARM_COMPUTE_ENABLE_FIXED_FORMAT_KERNELS @@ -42,6 +43,7 @@ #include "kernels/a64_hybrid_fp16_mla_6x32.hpp" #include "kernels/a64_sgemm_8x12.hpp" #ifdef ARM_COMPUTE_ENABLE_SME2 +#include "kernels/sme2_gemv_fp16_mla_16VL.hpp" #include "kernels/sme2_interleaved_nomerge_fp16fp32fp16_mopa_1VLx4VL.hpp" #include "kernels/sme2_interleaved_nomerge_fp16fp32fp16_mopa_2VLx2VL.hpp" #include "kernels/sme2_interleaved_nomerge_fp16fp32fp16_mopa_4VLx1VL.hpp" @@ -58,6 +60,13 @@ namespace arm_gemm { static const GemmImplementation<__fp16, __fp16> gemm_fp16_methods[] = { #ifdef ARM_COMPUTE_ENABLE_SVE #ifdef ARM_COMPUTE_ENABLE_SME2 +{ + GemmMethod::GEMM_HYBRID, + "sme2_gemv_fp16_mla_16VL", + [](const GemmArgs &args) { return args._ci->has_sme2() && args._Msize==1 && args._nbatches==1 && !args._indirect_input; }, + nullptr, + [](const GemmArgs &args) { return new GemvPretransposed(args); } +}, { GemmMethod::GEMM_INTERLEAVED, "sme2_interleaved_nomerge_fp16fp32fp16_mopa_4VLx1VL", -- cgit v1.2.1