From 12e0209d9369f9aea14946453ad1b0887292a6ba Mon Sep 17 00:00:00 2001 From: Gian Marco Iodice Date: Tue, 1 Sep 2020 13:59:44 +0100 Subject: COMPMID-3772: Update GEMM selection heuristic for Mali-G76 (F32) Change-Id: Iaaf3a72ec98a923ef2a4a39aeeb02f95795c2f6f Signed-off-by: Gian Marco Iodice Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/3895 Tested-by: Arm Jenkins Reviewed-by: Michele Di Giorgio Comments-Addressed: Arm Jenkins --- .../CL/gemm/CLGEMMKernelSelectionBifrost.cpp | 51 +++++++++++++++++----- 1 file changed, 39 insertions(+), 12 deletions(-) (limited to 'src/runtime/CL/gemm/CLGEMMKernelSelectionBifrost.cpp') diff --git a/src/runtime/CL/gemm/CLGEMMKernelSelectionBifrost.cpp b/src/runtime/CL/gemm/CLGEMMKernelSelectionBifrost.cpp index 48f38cac55..7b8eee975e 100644 --- a/src/runtime/CL/gemm/CLGEMMKernelSelectionBifrost.cpp +++ b/src/runtime/CL/gemm/CLGEMMKernelSelectionBifrost.cpp @@ -184,32 +184,59 @@ CLGEMMKernelType CLGEMMKernelSelectionBifrost::g76_f32(unsigned int m, unsigned { ARM_COMPUTE_UNUSED(b); - CLGEMMKernelType gemm_type = CLGEMMKernelType::NATIVE_V1; + if(!is_rhs_constant) + { + return CLGEMMKernelType::NATIVE; + } - if(is_rhs_constant) + if(m == 1) { - if((m > 1) && (n < 16)) + return CLGEMMKernelType::RESHAPED_ONLY_RHS; + } + + if(k <= 496) + { + if(n <= 544) { - gemm_type = CLGEMMKernelType::RESHAPED; + return CLGEMMKernelType::RESHAPED_ONLY_RHS; } - else if(m == 1) + else { - gemm_type = CLGEMMKernelType::RESHAPED_ONLY_RHS; + return CLGEMMKernelType::RESHAPED; } - else + } + else + { + if(k <= 588) { - if((k > 256) && (m > 4)) + if(k <= 552) { - gemm_type = CLGEMMKernelType::RESHAPED; + if(m <= 148) + { + return CLGEMMKernelType::RESHAPED_ONLY_RHS; + } + else + { + if(m <= 278) + { + return CLGEMMKernelType::RESHAPED; + } + else + { + return CLGEMMKernelType::RESHAPED_ONLY_RHS; + } + } } else { - gemm_type = CLGEMMKernelType::RESHAPED_ONLY_RHS; + return CLGEMMKernelType::RESHAPED_ONLY_RHS; } } + else + { + return CLGEMMKernelType::RESHAPED; + } } - - return gemm_type; } CLGEMMKernelType CLGEMMKernelSelectionBifrost::g71_f16(unsigned int m, unsigned int n, unsigned int k, unsigned int b, bool is_rhs_constant) -- cgit v1.2.1