aboutsummaryrefslogtreecommitdiff
path: root/src/core/NEON/kernels/arm_gemm/kernels/a64_gemm_u8_8x12.hpp
diff options
context:
space:
mode:
authorGeorgios Pinitas <georgios.pinitas@arm.com>2021-01-14 13:43:40 +0000
committerGeorgios Pinitas <georgios.pinitas@arm.com>2021-01-18 12:39:30 +0000
commit33e03074c36d85de87e9032a2583b04ce8ddcd6b (patch)
tree4442ec5b5022fa5681d689e6ccf3a6423efa8a93 /src/core/NEON/kernels/arm_gemm/kernels/a64_gemm_u8_8x12.hpp
parent8d5337ef18901f1b54d0c062ae7486bc5a4c6610 (diff)
downloadComputeLibrary-33e03074c36d85de87e9032a2583b04ce8ddcd6b.tar.gz
Cycle estimate-based kernel selection for dot product quantized s8/u8 kernels
Resolves: COMPMID-3990 Signed-off-by: Georgios Pinitas <georgios.pinitas@arm.com> Change-Id: If840c79209940535450f4ea1cbf6b0ec646a168e Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4866 Tested-by: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'src/core/NEON/kernels/arm_gemm/kernels/a64_gemm_u8_8x12.hpp')
-rw-r--r--src/core/NEON/kernels/arm_gemm/kernels/a64_gemm_u8_8x12.hpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/core/NEON/kernels/arm_gemm/kernels/a64_gemm_u8_8x12.hpp b/src/core/NEON/kernels/arm_gemm/kernels/a64_gemm_u8_8x12.hpp
index 256ba2e08c..00ed5d03bf 100644
--- a/src/core/NEON/kernels/arm_gemm/kernels/a64_gemm_u8_8x12.hpp
+++ b/src/core/NEON/kernels/arm_gemm/kernels/a64_gemm_u8_8x12.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017-2018 Arm Limited.
+ * Copyright (c) 2017-2021 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -25,6 +25,7 @@
#ifdef __aarch64__
+#include "../performance_parameters.hpp"
#include "../std_transforms_fixed.hpp"
namespace arm_gemm {
@@ -68,6 +69,16 @@ public:
StdTransformsFixed<operand_type, result_type, 8, 12, 4> transforms = {};
StdTransformsFixed<operand_type, result_type, 8, 12, 4, true> transforms_quantized = {};
+ static PerformanceParameters get_performance_parameters(const CPUInfo *ci) {
+ switch (ci->get_cpu_model()) {
+ case CPUModel::A55r1:
+ return { 15.361, 0.9341, 0.1636 };
+
+ default:
+ return { 29.0698, 3.9793, 0.4003 };
+ }
+ }
+
kern_type kernel = a64_gemm_u8_8x12;
cls_a64_gemm_u8_8x12(const CPUInfo *ci) {