COMPMID-3459: Update the heuristic for GEMV for F16 on Mali-G77
authorGian Marco Iodice <gianmarco.iodice@arm.com>
Wed, 6 May 2020 10:27:08 +0000 (11:27 +0100)
committerGian Marco Iodice <gianmarco.iodice@arm.com>
Wed, 6 May 2020 15:36:33 +0000 (15:36 +0000)
Change-Id: I10020cd5c88ec1926087531c4c4ce0a1cfaf43c9
Signed-off-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/3151
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
src/core/CL/gemm/reshaped_only_rhs/CLGEMMReshapedOnlyRHSKernelConfigurationValhall.cpp

index 5526616001b337be04630bf5db4f11c39bdb1cd1..d93a912c0dee1479d5a1e1a820d8e37a889054c3 100644 (file)
@@ -109,13 +109,21 @@ std::pair<GEMMLHSMatrixInfo, GEMMRHSMatrixInfo> CLGEMMReshapedOnlyRHSKernelConfi
 
     if(m == 1)
     {
-        const int h0 = std::max(std::min(static_cast<int>(n / 4), static_cast<int>(256)), static_cast<int>(1));
-        return configure_lhs_rhs_info(m, n, 1, 4, 4, 1, h0, false, true, false, true);
+        if(n > 2048)
+        {
+            const unsigned int h0 = std::max(n / 4, 1U);
+            return configure_lhs_rhs_info(m, n, 1, 4, 4, 1, h0, false, true, false, true);
+        }
+        else
+        {
+            const unsigned int h0 = std::max(n / 2, 1U);
+            return configure_lhs_rhs_info(m, n, 1, 2, 8, 1, h0, false, true, false, true);
+        }
     }
     else if (m < 128)
     {
         const int h0 = std::max(std::min(static_cast<int>(n / 4), static_cast<int>(256)), static_cast<int>(1));
-        if(k > 512)
+        if(k >= 512)
         {
             return configure_lhs_rhs_info(m, n, 2, 4, 16, 1, h0, false, true, false, false);
         }