aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/CL/functions/CLConvolutionLayer.cpp
diff options
context:
space:
mode:
authorIsabella Gottardi <isabella.gottardi@arm.com>2018-01-18 15:50:39 +0000
committerAnthony Barbier <anthony.barbier@arm.com>2018-11-02 16:45:00 +0000
commite6630e4063fc3aa4312a2c8d094318b09ad2c3f5 (patch)
tree39ae08686fc3201fd094e3f84b8dd9abd5bf07ea /src/runtime/CL/functions/CLConvolutionLayer.cpp
parentb99d57df435ec1f2a775b3b06a44a68a2aac8df9 (diff)
downloadComputeLibrary-e6630e4063fc3aa4312a2c8d094318b09ad2c3f5.tar.gz
COMPMID-790 - NEON: Add QASYMM8 support to Convolution
Change-Id: Iec82a91ad351cfe8d07d0976a24bd42f4703177a Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/116833 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com> Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Diffstat (limited to 'src/runtime/CL/functions/CLConvolutionLayer.cpp')
-rw-r--r--src/runtime/CL/functions/CLConvolutionLayer.cpp9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/runtime/CL/functions/CLConvolutionLayer.cpp b/src/runtime/CL/functions/CLConvolutionLayer.cpp
index d1153978ff..d1533b6f24 100644
--- a/src/runtime/CL/functions/CLConvolutionLayer.cpp
+++ b/src/runtime/CL/functions/CLConvolutionLayer.cpp
@@ -260,8 +260,8 @@ void CLConvolutionLayer::configure(const ICLTensor *input, const ICLTensor *weig
if(_is_interleaved_transposed)
{
// Configure GEMMInterleave4x4. _input_interleaved_reshaped will be auto configured in the kernel
- _interleave_kernel.configure(&_im2col_output, &_interleave_output);
_memory_group.manage(&_interleave_output);
+ _interleave_kernel.configure(&_im2col_output, &_interleave_output);
// Configure GEMM
configure_mm(&_interleave_output, weights, &_gemm_output, true, _are_weights_reshaped);
@@ -279,8 +279,8 @@ void CLConvolutionLayer::configure(const ICLTensor *input, const ICLTensor *weig
float multiplier = input->info()->quantization_info().scale * weights->info()->quantization_info().scale / output->info()->quantization_info().scale;
int output_multiplier, output_shift;
quantization::calculate_quantized_multiplier_less_than_one(multiplier, &output_multiplier, &output_shift);
+ _memory_group.manage(&_tmp_output);
_gemmlowp_output_stage.configure(&_gemm_output, biases, &_tmp_output, output_multiplier, output_shift, output->info()->quantization_info().offset);
- _gemm_output.allocator()->allocate();
}
// Configure Col2Im
@@ -289,10 +289,7 @@ void CLConvolutionLayer::configure(const ICLTensor *input, const ICLTensor *weig
{
_tmp_output.allocator()->allocate();
}
- else
- {
- _gemm_output.allocator()->allocate();
- }
+ _gemm_output.allocator()->allocate();
ARM_COMPUTE_ERROR_ON_MSG((output->info()->dimension(0) != conv_w) || (output->info()->dimension(1) != conv_h), "Output shape does not match the expected one");