From 338435607fc5291ff991f38aa15d4df5097d1a2d Mon Sep 17 00:00:00 2001 From: Georgios Pinitas Date: Tue, 10 Dec 2019 13:33:18 +0000 Subject: COMPMID-2754: Add support for QASYMM8_SIGNED in NE kernels/functions. Kernels/Functions extended support: - NEBatchToSpaceLayerKernel/NEBatchToSpaceLayer - NEChannelShuffleLayerKernel/NEChannelShuffleLayer - NECol2ImKernel/NECol2Im - NEConvertFullyConnectedWeightsKernel/NEConvertFullyConnectedWeights - NECopyKernel/NECopy - NEConvolutionLayerReshapeWeights - NEDepthToSpaceLayerKernel/NEDepthToSpaceLayer - NEFlattenLayerKernel/NEFlattenLayer - NEFillBorderKernel - NEFullyConnectedLayerReshapeWeights - NEGatherKernel/NEGather - NEGEMMInterleave4x4Kernel - NEGEMMTranspose1xWKernel - NEIm2ColKernel/NEIm2Col - NEMemsetKernel - NEPadLayerKernel/NEPadLayer - NEPermuteKernel/NEPermute - NEReverseKernel/NEReverse - NEReorgLayerKernel/NEReorgLayer - NEReshapeLayerKernel/NEReshapeLayer - NESplit - NESlice - NEStridedSliceKernel/NEStridedSlice - NESpaceToBatchLayerKernel/NESpaceToBatchLayer - NESpaceToDepthLayerKernel/NESpaceToDepthLayerKernel - NEStackLayerKernel/NEStackLayer - NETileKernel/NETile - NETransposeKernel/NETranspose - NEWidthConcatenateLayerKernel/NEHeightConcatenateLayer - NEHeightConcatenateLayerKernel/NEHeightConcatenateLayer - NEDepthConcatenateLayerKernel/NEDepthConcatenateLayer - NEBathConcatenateLayerKernel/NEBatchConcatenateLayer Signed-off-by: Georgios Pinitas Change-Id: Ia070332ad4c4dbced2541dc46f7f2f3a86833b65 Reviewed-on: https://review.mlplatform.org/c/2442 Tested-by: Arm Jenkins Reviewed-by: Michele Di Giorgio Comments-Addressed: Arm Jenkins --- tests/validation/reference/ConcatenateLayer.cpp | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) (limited to 'tests/validation/reference/ConcatenateLayer.cpp') diff --git a/tests/validation/reference/ConcatenateLayer.cpp b/tests/validation/reference/ConcatenateLayer.cpp index aa74ca2474..266dae1c27 100644 --- a/tests/validation/reference/ConcatenateLayer.cpp +++ b/tests/validation/reference/ConcatenateLayer.cpp @@ -70,16 +70,27 @@ SimpleTensor widthconcatenate_layer(const std::vector> &srcs, for(int r = 0; r < height; ++r) { const int offset = u * height * depth + d * height + r; - if(src.data_type() == DataType::QASYMM8 && src.quantization_info() != dst.quantization_info()) + if(is_data_type_quantized(src.data_type()) && src.quantization_info() != dst.quantization_info()) { const UniformQuantizationInfo iq_info = src.quantization_info().uniform(); const UniformQuantizationInfo oq_info = dst.quantization_info().uniform(); - std::transform(src_ptr, src_ptr + width, dst_ptr + width_offset + offset * width_out, [&](T t) + if(src.data_type() == DataType::QASYMM8) { - const float dequantized_input = dequantize_qasymm8(t, iq_info); - return quantize_qasymm8(dequantized_input, oq_info); - }); + std::transform(src_ptr, src_ptr + width, dst_ptr + width_offset + offset * width_out, [&](T t) + { + const float dequantized_input = dequantize_qasymm8(t, iq_info); + return quantize_qasymm8(dequantized_input, oq_info); + }); + } + else + { + std::transform(src_ptr, src_ptr + width, dst_ptr + width_offset + offset * width_out, [&](T t) + { + const float dequantized_input = dequantize_qasymm8_signed(t, iq_info); + return quantize_qasymm8_signed(dequantized_input, oq_info); + }); + } src_ptr += width; } else @@ -98,6 +109,7 @@ SimpleTensor widthconcatenate_layer(const std::vector> &srcs, template SimpleTensor widthconcatenate_layer(const std::vector> &srcs, SimpleTensor &dst); template SimpleTensor widthconcatenate_layer(const std::vector> &srcs, SimpleTensor &dst); template SimpleTensor widthconcatenate_layer(const std::vector> &srcs, SimpleTensor &dst); +template SimpleTensor widthconcatenate_layer(const std::vector> &srcs, SimpleTensor &dst); } // namespace template @@ -148,6 +160,7 @@ SimpleTensor concatenate_layer(std::vector> &srcs, SimpleTens template SimpleTensor concatenate_layer(std::vector> &srcs, SimpleTensor &dst, unsigned int axis); template SimpleTensor concatenate_layer(std::vector> &srcs, SimpleTensor &dst, unsigned int axis); template SimpleTensor concatenate_layer(std::vector> &srcs, SimpleTensor &dst, unsigned int axis); +template SimpleTensor concatenate_layer(std::vector> &srcs, SimpleTensor &dst, unsigned int axis); } // namespace reference } // namespace validation } // namespace test -- cgit v1.2.1