diff options
author | Giorgio Arena <giorgio.arena@arm.com> | 2018-03-16 14:02:34 +0000 |
---|---|---|
committer | Anthony Barbier <anthony.barbier@arm.com> | 2018-11-02 16:50:48 +0000 |
commit | c0f54434383f945d95f95549c1c4b0d5f5d2caff (patch) | |
tree | c4dadc7d83fa9dccef8cd7e85b31223266946093 /arm_compute | |
parent | 3c520c5a6ca9352560828fdf389d31e38b85afeb (diff) | |
download | ComputeLibrary-c0f54434383f945d95f95549c1c4b0d5f5d2caff.tar.gz |
COMPMID-808 Add NHWC data format support for NEON direct convolution
Change-Id: I5d4cc3d5b0d25f3fe4ed998c0f15b1b8e260a43a
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/125697
Tested-by: Jenkins <bsgcomp@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
Diffstat (limited to 'arm_compute')
-rw-r--r-- | arm_compute/core/utils/misc/ShapeCalculator.h | 16 | ||||
-rw-r--r-- | arm_compute/runtime/NEON/functions/NEDirectConvolutionLayer.h | 1 |
2 files changed, 9 insertions, 8 deletions
diff --git a/arm_compute/core/utils/misc/ShapeCalculator.h b/arm_compute/core/utils/misc/ShapeCalculator.h index 757e423d4f..9543d989b8 100644 --- a/arm_compute/core/utils/misc/ShapeCalculator.h +++ b/arm_compute/core/utils/misc/ShapeCalculator.h @@ -300,19 +300,19 @@ inline TensorShape compute_deep_convolution_shape(const ITensorInfo &input, cons const size_t idx_height = get_data_layout_dimension_index(input.data_layout(), DataLayoutDimension::HEIGHT); const size_t idx_channel = get_data_layout_dimension_index(input.data_layout(), DataLayoutDimension::CHANNEL); - const unsigned int input_width = input_shape[idx_width]; - const unsigned int input_height = input_shape[idx_height]; - const unsigned int weights_width = weights_shape[idx_width]; - const unsigned int weights_height = weights_shape[idx_height]; - const unsigned int weights_channel = weights_shape[idx_channel]; - unsigned int output_width = 0; - unsigned int output_height = 0; + const unsigned int input_width = input_shape[idx_width]; + const unsigned int input_height = input_shape[idx_height]; + const unsigned int weights_width = weights_shape[idx_width]; + const unsigned int weights_height = weights_shape[idx_height]; + const unsigned int weights_out_channel = weights_shape[3]; + unsigned int output_width = 0; + unsigned int output_height = 0; std::tie(output_width, output_height) = scaled_dimensions(input_width, input_height, weights_width, weights_height, conv_info); TensorShape output_shape{ input_shape }; output_shape.set(idx_width, output_width); output_shape.set(idx_height, output_height); - output_shape.set(idx_channel, weights_channel); + output_shape.set(idx_channel, weights_out_channel); return output_shape; } diff --git a/arm_compute/runtime/NEON/functions/NEDirectConvolutionLayer.h b/arm_compute/runtime/NEON/functions/NEDirectConvolutionLayer.h index 1eaad5cda6..ae384ffa56 100644 --- a/arm_compute/runtime/NEON/functions/NEDirectConvolutionLayer.h +++ b/arm_compute/runtime/NEON/functions/NEDirectConvolutionLayer.h @@ -106,6 +106,7 @@ private: bool _has_bias; bool _is_fixed_point; bool _is_activationlayer_enabled; + unsigned int _dim_split; }; } #endif /* __ARM_COMPUTE_NEDIRECTCONVOLUTIONLAYER_H__ */ |