aboutsummaryrefslogtreecommitdiff
path: root/src/core/utils/quantization/AsymmHelpers.cpp
diff options
context:
space:
mode:
authorVidhya Sudhan Loganathan <vidhyasudhan.loganathan@arm.com>2019-11-04 14:42:08 +0000
committerMichele Di Giorgio <michele.digiorgio@arm.com>2019-11-14 16:25:06 +0000
commit951b8a4c01de2810349b6f16cf9bbba7578484fa (patch)
tree8b3ab1c04279da7be3afd6632a9894b6197c1e1b /src/core/utils/quantization/AsymmHelpers.cpp
parentcd4e9abf7a165f15ccd10ac4541365d4f8a6db19 (diff)
downloadComputeLibrary-951b8a4c01de2810349b6f16cf9bbba7578484fa.tar.gz
COMPMID-2309 : CLConvolutionLayer: support QUANT8_SYMM_PER_CHANNEL filters
Change-Id: I16f6758b768ede404a064db057302ded706e1e8a Signed-off-by: Vidhya Sudhan Loganathan <vidhyasudhan.loganathan@arm.com> Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com> Reviewed-on: https://review.mlplatform.org/c/2215 Tested-by: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com> Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'src/core/utils/quantization/AsymmHelpers.cpp')
-rw-r--r--src/core/utils/quantization/AsymmHelpers.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/core/utils/quantization/AsymmHelpers.cpp b/src/core/utils/quantization/AsymmHelpers.cpp
index 386d75eca2..7e22a814b5 100644
--- a/src/core/utils/quantization/AsymmHelpers.cpp
+++ b/src/core/utils/quantization/AsymmHelpers.cpp
@@ -173,14 +173,18 @@ std::pair<int, int> get_min_max_values_from_quantized_data_type(DataType data_ty
}
return std::make_pair(min_quant_val, max_quant_val);
}
-void compute_quantized_multipliers_and_shifts(const ITensor *input, const ITensor *weights, const ITensor *output, int32_t *output_multipliers_ptr, int32_t *output_shifts_ptr)
+void compute_quantized_multipliers_and_shifts(const ITensorInfo *input,
+ const ITensorInfo *weights,
+ const ITensorInfo *output,
+ unsigned int idx_ofms,
+ int32_t *output_multipliers_ptr,
+ int32_t *output_shifts_ptr)
{
- const unsigned int idx_c = get_data_layout_dimension_index(weights->info()->data_layout(), DataLayoutDimension::CHANNEL);
- const unsigned int num_filters = is_data_type_quantized_per_channel(weights->info()->data_type()) ? weights->info()->dimension(idx_c) : 1;
+ const unsigned int num_filters = is_data_type_quantized_per_channel(weights->data_type()) ? weights->dimension(idx_ofms) : 1;
- const UniformQuantizationInfo iq_info = input->info()->quantization_info().uniform();
- const QuantizationInfo wq_info = weights->info()->quantization_info();
- const UniformQuantizationInfo oq_info = output->info()->quantization_info().uniform();
+ const UniformQuantizationInfo iq_info = input->quantization_info().uniform();
+ const QuantizationInfo wq_info = weights->quantization_info();
+ const UniformQuantizationInfo oq_info = output->quantization_info().uniform();
for(unsigned int i = 0; i < num_filters; ++i)
{