aboutsummaryrefslogtreecommitdiff
path: root/src/core/NEON/kernels
diff options
context:
space:
mode:
authorramelg01 <ramy.elgammal@arm.com>2022-07-07 15:12:20 +0100
committerPablo Marquez Tello <pablo.tello@arm.com>2022-07-18 05:29:41 +0000
commit1f86449ef4be37c2e0e8e6c90d4bcb6307dca1fb (patch)
treeea63e45bcfe2b556580b9a515fe16762c4b14722 /src/core/NEON/kernels
parenta1f7851e2f776610019db8725c2963c36b0c85eb (diff)
downloadComputeLibrary-1f86449ef4be37c2e0e8e6c90d4bcb6307dca1fb.tar.gz
Fix Neoverse V1 heuristics for FP32 fast mode
Resolves: COMPMID-5401 Signed-off-by: Ramy Elgammal <ramy.elgammal@arm.com> Change-Id: I432b304483236efd392dfc47d541e6759c135104 Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/7934 Benchmark: Arm Jenkins <bsgcomp@arm.com> Tested-by: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Pablo Marquez Tello <pablo.tello@arm.com>
Diffstat (limited to 'src/core/NEON/kernels')
-rw-r--r--src/core/NEON/kernels/arm_gemm/gemm_interleaved.hpp2
-rw-r--r--src/core/NEON/kernels/arm_gemm/kernels/a64_interleaved_bf16fp32_mmla_8x12.hpp6
-rw-r--r--src/core/NEON/kernels/arm_gemm/kernels/sve_interleaved_bf16fp32_mmla_8x3VL.hpp6
3 files changed, 7 insertions, 7 deletions
diff --git a/src/core/NEON/kernels/arm_gemm/gemm_interleaved.hpp b/src/core/NEON/kernels/arm_gemm/gemm_interleaved.hpp
index 4ad54426e9..6e14a68438 100644
--- a/src/core/NEON/kernels/arm_gemm/gemm_interleaved.hpp
+++ b/src/core/NEON/kernels/arm_gemm/gemm_interleaved.hpp
@@ -1128,7 +1128,7 @@ public:
uint64_t total_macs = static_cast<uint64_t>(args._nbatches) * args._nmulti * roundup(args._Msize, strategy::out_height()) * roundup(args._Nsize, strategy::out_width()) * get_ktotal(args);
uint64_t prepare_bytes = static_cast<uint64_t>(args._nbatches) * args._nmulti * roundup(args._Msize, strategy::out_height()) * get_ktotal(args) * sizeof(Toi);
- uint64_t merge_bytes = static_cast<uint16_t>(args._nbatches) * args._nmulti * k_blocks * args._Msize * roundup(args._Nsize, strategy::out_width()) * sizeof(Tr);
+ uint64_t merge_bytes = static_cast<uint64_t>(args._nbatches) * args._nmulti * k_blocks * args._Msize * roundup(args._Nsize, strategy::out_width()) * sizeof(Tr);
float mac_cycles = static_cast<float>(total_macs) / params.kernel_macs_cycle;
float prepare_cycles = static_cast<float>(prepare_bytes) / params.prepare_bytes_cycle;
diff --git a/src/core/NEON/kernels/arm_gemm/kernels/a64_interleaved_bf16fp32_mmla_8x12.hpp b/src/core/NEON/kernels/arm_gemm/kernels/a64_interleaved_bf16fp32_mmla_8x12.hpp
index 6ec6bd2ed8..17c93faca2 100644
--- a/src/core/NEON/kernels/arm_gemm/kernels/a64_interleaved_bf16fp32_mmla_8x12.hpp
+++ b/src/core/NEON/kernels/arm_gemm/kernels/a64_interleaved_bf16fp32_mmla_8x12.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2019-2021 Arm Limited.
+ * Copyright (c) 2019-2022 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -79,7 +79,7 @@ public:
default:
return { 31.54, 4.30, 7.33 };
case CPUModel::V1:
- return { 41.44, 5.01, 5.64 };
+ return { 59.94, 5.08, 9.83 };
case CPUModel::A510:
return { 7.82, 4.05, 3.07 };
}
@@ -91,7 +91,7 @@ public:
default:
return { 31.15, 2.51, 5.25 };
case CPUModel::V1:
- return { 59.44, 3.18, 7.26 };
+ return { 41.44, 5.01, 5.64 };
case CPUModel::A510:
return { 7.83, 2.53, 2.71 };
}
diff --git a/src/core/NEON/kernels/arm_gemm/kernels/sve_interleaved_bf16fp32_mmla_8x3VL.hpp b/src/core/NEON/kernels/arm_gemm/kernels/sve_interleaved_bf16fp32_mmla_8x3VL.hpp
index fc91dd71ad..1de8c68494 100644
--- a/src/core/NEON/kernels/arm_gemm/kernels/sve_interleaved_bf16fp32_mmla_8x3VL.hpp
+++ b/src/core/NEON/kernels/arm_gemm/kernels/sve_interleaved_bf16fp32_mmla_8x3VL.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2019-2021 Arm Limited.
+ * Copyright (c) 2019-2022 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -80,7 +80,7 @@ public:
case CPUModel::A510:
return { 7.78, 4.01, 2.43 };
case CPUModel::V1:
- return { 47.63, 5.11, 6.80 };
+ return { 62.50, 5.09, 11.32 };
}
}
@@ -92,7 +92,7 @@ public:
case CPUModel::A510:
return { 7.75, 2.47, 2.39 };
case CPUModel::V1:
- return { 60.83, 2.69, 8.66 };
+ return { 47.63, 5.11, 6.80 };
}
}