aboutsummaryrefslogtreecommitdiff
path: root/src/core/CL/kernels/CLDepthConcatenateLayerKernel.cpp
diff options
context:
space:
mode:
authorPablo Tello <pablo.tello@arm.com>2019-02-07 15:53:19 +0000
committerPablo Marquez <pablo.tello@arm.com>2019-02-13 14:44:13 +0000
commiteb6c88ae253f1a6555a741d6e5a04033a95486a7 (patch)
treee5620b35262b81cce1175c014a4925665c4f2621 /src/core/CL/kernels/CLDepthConcatenateLayerKernel.cpp
parent84bed5d90a39df0ad566ecea6c8091ec44d038c6 (diff)
downloadComputeLibrary-eb6c88ae253f1a6555a741d6e5a04033a95486a7.tar.gz
COMPMID-1918: Different qinfos support in CLConcatLayer
Added support in CLDepthConcatenateLayerKernel and CLWidthConcatenateLayer for different quantization arguments both for the input and output. If input's quantization infos are not homogeneous the input values are requantized using the output's quantization info. Change-Id: Ib5446d0c6790c2fe6e7172e87e4f2833247436db Signed-off-by: Pablo Tello <pablo.tello@arm.com> Reviewed-on: https://review.mlplatform.org/650 Tested-by: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Diffstat (limited to 'src/core/CL/kernels/CLDepthConcatenateLayerKernel.cpp')
-rw-r--r--src/core/CL/kernels/CLDepthConcatenateLayerKernel.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/core/CL/kernels/CLDepthConcatenateLayerKernel.cpp b/src/core/CL/kernels/CLDepthConcatenateLayerKernel.cpp
index 40023948b1..3fccc0447d 100644
--- a/src/core/CL/kernels/CLDepthConcatenateLayerKernel.cpp
+++ b/src/core/CL/kernels/CLDepthConcatenateLayerKernel.cpp
@@ -113,6 +113,13 @@ void CLDepthConcatenateLayerKernel::configure(const ICLTensor *input, unsigned i
CLBuildOptions build_opts;
build_opts.add_option("-DDATA_TYPE=" + get_underlying_cl_type_from_data_type(input->info()->data_type()));
build_opts.add_option("-DVEC_SIZE=" + support::cpp11::to_string(num_elems_processed_per_iteration));
+ if(is_data_type_quantized_asymmetric(input->info()->data_type()) && input->info()->quantization_info() != output->info()->quantization_info())
+ {
+ build_opts.add_option("-DOFFSET_IN1=" + float_to_string_with_full_precision(input->info()->quantization_info().offset));
+ build_opts.add_option("-DOFFSET_OUT=" + float_to_string_with_full_precision(output->info()->quantization_info().offset));
+ build_opts.add_option("-DSCALE_IN1=" + float_to_string_with_full_precision(input->info()->quantization_info().scale));
+ build_opts.add_option("-DSCALE_OUT=" + float_to_string_with_full_precision(output->info()->quantization_info().scale));
+ }
// Create kernel
_kernel = static_cast<cl::Kernel>(CLKernelLibrary::get().create_kernel("concatenate_depth", build_opts.options()));