aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/CL
diff options
context:
space:
mode:
authorGunes Bayir <gunes.bayir@arm.com>2022-12-12 17:47:49 +0000
committerGunes Bayir <gunes.bayir@arm.com>2022-12-14 09:15:34 +0000
commita0ae8d2e6c57fd95c0edaf659b9df8b8c540d051 (patch)
tree066dc0f7de97adc54a892ddfa4ed5e278f31f1be /src/runtime/CL
parent32741725ac6e6c9658c51ed8585d314a1707ee8c (diff)
downloadComputeLibrary-a0ae8d2e6c57fd95c0edaf659b9df8b8c540d051.tar.gz
Optimize Transposed Convolution for CL backend (Quantized)
This patch optimizes transposed convolution for QASYMM and QASYMM8_SIGNED types, by extending the transposed convolution kernel written for FP32/16. Resolves: COMPMID-5723 Change-Id: Iab8f09231938adb949c506fd915ed45b885e5c7c Signed-off-by: Gunes Bayir <gunes.bayir@arm.com> Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/8792 Tested-by: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com> Benchmark: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'src/runtime/CL')
-rw-r--r--src/runtime/CL/functions/CLDeconvolutionLayer.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/runtime/CL/functions/CLDeconvolutionLayer.cpp b/src/runtime/CL/functions/CLDeconvolutionLayer.cpp
index a4db6d7770..ea7f3e75f7 100644
--- a/src/runtime/CL/functions/CLDeconvolutionLayer.cpp
+++ b/src/runtime/CL/functions/CLDeconvolutionLayer.cpp
@@ -141,14 +141,14 @@ DeconvolutionMethod CLDeconvolutionLayer::get_deconvolution_method(const ITensor
{
ARM_COMPUTE_UNUSED(output, bias, weights_info);
- if(input->data_layout() == DataLayout::NHWC && (input->data_type() == DataType::F32 || input->data_type() == DataType::F16))
+ if(is_data_type_quantized_per_channel(weights->data_type()))
{
- return DeconvolutionMethod::DIRECT;
+ return DeconvolutionMethod::UPSCALE_CONV2D;
}
- if(is_data_type_quantized_per_channel(weights->data_type()))
+ if(input->data_layout() == DataLayout::NHWC)
{
- return DeconvolutionMethod::UPSCALE_CONV2D;
+ return DeconvolutionMethod::DIRECT;
}
const DataLayout data_layout = input->data_layout();