COMPMID-3496: Fix for GEMM_INTERLEAVE_2D
GEMM_INTERLEAVE_2D was wrongly selected by the heuristic also in case of
maxthreads < 8
Change-Id: If531d44c6f00ae6f8e3a4bf22428829b252bc3d6
Signed-off-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/3225
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
diff --git a/src/core/NEON/kernels/arm_gemm/gemm_fp32.cpp b/src/core/NEON/kernels/arm_gemm/gemm_fp32.cpp
index e3355ed..8bef2b7 100644
--- a/src/core/NEON/kernels/arm_gemm/gemm_fp32.cpp
+++ b/src/core/NEON/kernels/arm_gemm/gemm_fp32.cpp
@@ -149,25 +149,25 @@
//Pretranpose, 2D split
{
GemmMethod::GEMM_INTERLEAVED_2D,
- "sgemm_12x8",
+ "sgemm_12x8_pretranspose_2d",
[](const GemmArgs &args) { return args._pretransposed_hint; },
- [](const GemmArgs &args) { return args._pretransposed_hint; },
+ [](const GemmArgs &args) { return args._maxthreads >= 8; },
[](const GemmArgs &args) { return new GemmInterleavedPretransposed2d<sgemm_12x8, float, float>(args); }
},
//Tranpose, 2D split, no blockmanager
{
GemmMethod::GEMM_INTERLEAVED_2D,
- "sgemm_12x8",
- [](const GemmArgs &args) { return (!args._pretransposed_hint) && args._maxthreads >= 8; },
- [](const GemmArgs &args) { return (!args._pretransposed_hint) && args._maxthreads >= 8; },
+ "sgemm_12x8_2d",
+ nullptr,
+ [](const GemmArgs &args) { return (!args._pretransposed_hint) && (args._maxthreads >= 8); },
[](const GemmArgs &args) { return new GemmInterleaved2d<sgemm_12x8, float, float>(args); }
},
//Tranpose, 1D split, with blockmanager
{
GemmMethod::GEMM_INTERLEAVED,
- "sgemm_12x8",
- [](const GemmArgs &args) { return (!args._pretransposed_hint); },
- [](const GemmArgs &args) { return (!args._pretransposed_hint); },
+ "sgemm_12x8_1d",
+ nullptr,
+ nullptr,
[](const GemmArgs &args) { return new GemmInterleaved<sgemm_12x8, float, float>(args); }
},