From 4eea7fdcf8c70efa27d14a1cfdf9389ec12693ce Mon Sep 17 00:00:00 2001 From: Gian Marco Iodice Date: Fri, 5 Nov 2021 09:48:17 +0000 Subject: Update GeMM heuristic on CPU Change-Id: I5a5537dc75d460b3fe2efb5cb0659c19e2972955 Signed-off-by: Gian Marco Iodice Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/6590 Tested-by: Arm Jenkins Reviewed-by: SiCong Li --- src/core/NEON/kernels/arm_gemm/kernels/a64_hybrid_fp32_mla_4x24.hpp | 2 +- src/core/NEON/kernels/arm_gemm/kernels/a64_hybrid_fp32_mla_6x16.hpp | 2 +- src/core/NEON/kernels/arm_gemm/kernels/a64_sgemm_8x12.hpp | 3 +++ src/core/NEON/kernels/arm_gemm/kernels/sve_hybrid_fp32_mla_6x4VL.hpp | 2 ++ .../NEON/kernels/arm_gemm/kernels/sve_interleaved_fp32_mla_8x3VL.hpp | 2 ++ 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::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::value) { switch (ci->get_cpu_model()) { + case CPUModel::V1: + return { 15.15, 9.24, 6.42 }; default: return { 7.2307, 3.876, 2.932 }; } -- cgit v1.2.1