aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGian Marco Iodice <gianmarco.iodice@arm.com>2021-11-05 09:48:17 +0000
committerGian Marco Iodice <gianmarco.iodice@arm.com>2021-11-05 11:01:27 +0000
commit4eea7fdcf8c70efa27d14a1cfdf9389ec12693ce (patch)
treeb7e5ae61fa5791a61fa9b7bd02292359ccf4c333
parent456fb2b07880e023f8284c30bfe19474710ddeee (diff)
downloadComputeLibrary-4eea7fdcf8c70efa27d14a1cfdf9389ec12693ce.tar.gz
Update GeMM heuristic on CPU
Change-Id: I5a5537dc75d460b3fe2efb5cb0659c19e2972955 Signed-off-by: Gian Marco Iodice <gianmarco.iodice@arm.com> Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/6590 Tested-by: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: SiCong Li <sicong.li@arm.com>
-rw-r--r--src/core/NEON/kernels/arm_gemm/kernels/a64_hybrid_fp32_mla_4x24.hpp2
-rw-r--r--src/core/NEON/kernels/arm_gemm/kernels/a64_hybrid_fp32_mla_6x16.hpp2
-rw-r--r--src/core/NEON/kernels/arm_gemm/kernels/a64_sgemm_8x12.hpp3
-rw-r--r--src/core/NEON/kernels/arm_gemm/kernels/sve_hybrid_fp32_mla_6x4VL.hpp2
-rw-r--r--src/core/NEON/kernels/arm_gemm/kernels/sve_interleaved_fp32_mla_8x3VL.hpp2
5 files changed, 9 insertions, 2 deletions
diff --git a/src/core/NEON/kernels/arm_gemm/kernels/a64_hybrid_fp32_mla_4x24.hpp b/src/core/NEON/kernels/arm_gemm/kernels/a64_hybrid_fp32_mla_4x24.hpp
index d68e4a22b5..e155bfb111 100644
--- a/src/core/NEON/kernels/arm_gemm/kernels/a64_hybrid_fp32_mla_4x24.hpp
+++ b/src/core/NEON/kernels/arm_gemm/kernels/a64_hybrid_fp32_mla_4x24.hpp
@@ -86,7 +86,7 @@ public:
case CPUModel::A510:
return { 3.51 };
case CPUModel::V1:
- return { 14.38 };
+ return { 13.86 };
default:
return { 6.614 };
}
diff --git a/src/core/NEON/kernels/arm_gemm/kernels/a64_hybrid_fp32_mla_6x16.hpp b/src/core/NEON/kernels/arm_gemm/kernels/a64_hybrid_fp32_mla_6x16.hpp
index de94e72ab0..4cfa18bb84 100644
--- a/src/core/NEON/kernels/arm_gemm/kernels/a64_hybrid_fp32_mla_6x16.hpp
+++ b/src/core/NEON/kernels/arm_gemm/kernels/a64_hybrid_fp32_mla_6x16.hpp
@@ -88,7 +88,7 @@ public:
case CPUModel::A510:
return { 3.88 };
case CPUModel::V1:
- return { 13.72 };
+ return { 13.43 };
}
}
diff --git a/src/core/NEON/kernels/arm_gemm/kernels/a64_sgemm_8x12.hpp b/src/core/NEON/kernels/arm_gemm/kernels/a64_sgemm_8x12.hpp
index 39399e0ba8..65ef407f79 100644
--- a/src/core/NEON/kernels/arm_gemm/kernels/a64_sgemm_8x12.hpp
+++ b/src/core/NEON/kernels/arm_gemm/kernels/a64_sgemm_8x12.hpp
@@ -83,6 +83,9 @@ public:
case CPUModel::A73:
return { 2.885, 1.429, 1.163 };
+ case CPUModel::V1:
+ return { 14.95, 9.95, 5.28 };
+
default:
return { 7.2307, 3.876, 2.932 };
}
diff --git a/src/core/NEON/kernels/arm_gemm/kernels/sve_hybrid_fp32_mla_6x4VL.hpp b/src/core/NEON/kernels/arm_gemm/kernels/sve_hybrid_fp32_mla_6x4VL.hpp
index 1c140e0c02..b63b143d4c 100644
--- a/src/core/NEON/kernels/arm_gemm/kernels/sve_hybrid_fp32_mla_6x4VL.hpp
+++ b/src/core/NEON/kernels/arm_gemm/kernels/sve_hybrid_fp32_mla_6x4VL.hpp
@@ -78,6 +78,8 @@ public:
if (std::is_same<T, float>::value) {
switch (ci->get_cpu_model()) {
+ case CPUModel::V1:
+ return { 15.65 };
default:
return { 6.667 };
}
diff --git a/src/core/NEON/kernels/arm_gemm/kernels/sve_interleaved_fp32_mla_8x3VL.hpp b/src/core/NEON/kernels/arm_gemm/kernels/sve_interleaved_fp32_mla_8x3VL.hpp
index 9bf8253fc8..29b928ee3b 100644
--- a/src/core/NEON/kernels/arm_gemm/kernels/sve_interleaved_fp32_mla_8x3VL.hpp
+++ b/src/core/NEON/kernels/arm_gemm/kernels/sve_interleaved_fp32_mla_8x3VL.hpp
@@ -75,6 +75,8 @@ public:
if (std::is_same<T, float>::value) {
switch (ci->get_cpu_model()) {
+ case CPUModel::V1:
+ return { 15.15, 9.24, 6.42 };
default:
return { 7.2307, 3.876, 2.932 };
}