From f316e9ae24d12e98dd2669316d6dfb97fcccc24d Mon Sep 17 00:00:00 2001 From: morgolock Date: Wed, 7 Oct 2020 10:36:28 +0100 Subject: MLCE-229: enabled gemmlowp asm kernel for neg shifts Change-Id: I9354f7f1cb2583677441cc7b1ac857a5e950e42e Signed-off-by: morgolock Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4100 Reviewed-by: Michele Di Giorgio Comments-Addressed: Arm Jenkins Tested-by: Arm Jenkins --- .../functions/NEGEMMLowpMatrixMultiplyCore.cpp | 29 +++------------------- 1 file changed, 4 insertions(+), 25 deletions(-) (limited to 'src/runtime/NEON/functions/NEGEMMLowpMatrixMultiplyCore.cpp') diff --git a/src/runtime/NEON/functions/NEGEMMLowpMatrixMultiplyCore.cpp b/src/runtime/NEON/functions/NEGEMMLowpMatrixMultiplyCore.cpp index dada6d16da..83db146a8a 100644 --- a/src/runtime/NEON/functions/NEGEMMLowpMatrixMultiplyCore.cpp +++ b/src/runtime/NEON/functions/NEGEMMLowpMatrixMultiplyCore.cpp @@ -117,18 +117,8 @@ void NEGEMMLowpMatrixMultiplyCore::configure(const ITensor *a, const ITensor *b, { if(is_data_type_quantized_asymmetric(a_to_use->info()->data_type()) && info.gemmlowp_output_stage().type == GEMMLowpOutputStageType::QUANTIZE_DOWN_FIXEDPOINT) { - // Result shifts < 0 are not supported by asm kernels - const std::vector &shifts = info.gemmlowp_output_stage().gemmlowp_shifts; - const bool is_asm_supported = info.gemmlowp_output_stage().gemmlowp_shift >= 0 - && std::all_of(shifts.cbegin(), shifts.cend(), [](int32_t val) - { - return val >= 0; - }); - if(is_asm_supported) - { - _asm_glue.configure(a_to_use, b, c, output, gemm_info); - _fused_assembly_path = _asm_glue.is_configured(); - } + _asm_glue.configure(a_to_use, b, c, output, gemm_info); + _fused_assembly_path = _asm_glue.is_configured(); } else { @@ -339,19 +329,8 @@ Status NEGEMMLowpMatrixMultiplyCore::validate(const ITensorInfo *a, const ITenso bool run_optimised_requantized = false; if(is_data_type_quantized_asymmetric(a_to_use->data_type()) && info.gemmlowp_output_stage().type == GEMMLowpOutputStageType::QUANTIZE_DOWN_FIXEDPOINT) { - // Result shifts < 0 are not supported by asm kernels - const std::vector &shifts = info.gemmlowp_output_stage().gemmlowp_shifts; - const bool is_asm_supported = info.gemmlowp_output_stage().gemmlowp_shift >= 0 - && std::all_of(shifts.cbegin(), shifts.cend(), [](int32_t val) - { - return val >= 0; - }); - - if(is_asm_supported) - { - run_optimised = bool(NEGEMMAssemblyDispatch::validate(a_to_use, b, c, output, gemm_info)); - run_optimised_requantized = run_optimised; - } + run_optimised = bool(NEGEMMAssemblyDispatch::validate(a_to_use, b, c, output, gemm_info)); + run_optimised_requantized = run_optimised; } else { -- cgit v1.2.1