diff options
author | Manuel Bottini <manuel.bottini@arm.com> | 2021-06-30 18:29:18 +0100 |
---|---|---|
committer | Manuel Bottini <manuel.bottini@arm.com> | 2021-07-06 11:03:31 +0000 |
commit | 900289936c458eff95499e0a0eaba989a27aaa4d (patch) | |
tree | 305853a38fd66842d19aa1a2d1cad88a70b946bc /arm_compute | |
parent | 6132c7aeaf6230a4e8b074309327762a9e4be003 (diff) | |
download | ComputeLibrary-900289936c458eff95499e0a0eaba989a27aaa4d.tar.gz |
Port NEIm2ColKernel
Resolves: COMPMID-4510
Change-Id: Ia3e588f599449d975dabad4afafb2974dd44d0ad
Signed-off-by: Manuel Bottini <manuel.bottini@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5899
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'arm_compute')
-rw-r--r-- | arm_compute/runtime/NEON/functions/NEFullyConnectedLayer.h | 2 | ||||
-rw-r--r-- | arm_compute/runtime/NEON/functions/NEGEMMConvolutionLayer.h | 13 |
2 files changed, 11 insertions, 4 deletions
diff --git a/arm_compute/runtime/NEON/functions/NEFullyConnectedLayer.h b/arm_compute/runtime/NEON/functions/NEFullyConnectedLayer.h index e409a61ba1..43f1d4cc05 100644 --- a/arm_compute/runtime/NEON/functions/NEFullyConnectedLayer.h +++ b/arm_compute/runtime/NEON/functions/NEFullyConnectedLayer.h @@ -77,7 +77,7 @@ private: } // namespace weights_transformations /** Basic function to compute a Fully Connected layer. This function calls the following kernels: - * -# @ref NEIm2ColKernel (called when the input comes from a convolutional layer) + * -# @ref cpu::kernels::CpuIm2ColKernel (called when the input comes from a convolutional layer) * -# @ref NETranspose (if @p are_weights_reshaped is set to false and transpose_weights is set to true ) (called once) * -# @ref NEGEMM or @ref NEGEMMLowpMatrixMultiplyCore (if quantized asymmetric) * -# @ref cpu::kernels::CpuGemmMatrixAdditionKernel or @ref NEGEMMLowpOutputStage (if quantized asymmetric) (if @p biases is not equal to nullptr) diff --git a/arm_compute/runtime/NEON/functions/NEGEMMConvolutionLayer.h b/arm_compute/runtime/NEON/functions/NEGEMMConvolutionLayer.h index d334d518e2..655d733bd1 100644 --- a/arm_compute/runtime/NEON/functions/NEGEMMConvolutionLayer.h +++ b/arm_compute/runtime/NEON/functions/NEGEMMConvolutionLayer.h @@ -41,8 +41,14 @@ namespace arm_compute { class ITensor; class NECol2ImKernel; -class NEIm2ColKernel; class NEWeightsReshapeKernel; +namespace cpu +{ +namespace kernels +{ +class CpuIm2ColKernel; +} // namespace kernels +} // namespace cpu /** Function to reshape the weights. This function calls the following kernel: * -# @ref NEWeightsReshapeKernel @@ -152,7 +158,7 @@ private: /** Basic function to compute the convolution layer. This function calls the following kernels/functions: * - * -# @ref NEIm2ColKernel + * -# @ref cpu::kernels::CpuIm2ColKernel * -# @ref NEGEMM (if the data type is BFLOAT16/FP16/FP32) * -# @ref NEGEMMLowpMatrixMultiplyCore (if the data type is QASYMM8/QASYMM8_SIGNED) * -# @ref NEGEMMLowpOutputStage (if the data type is QASYMM8/QASYMM8_SIGNED) @@ -283,12 +289,13 @@ private: IWeightsManager *_weights_manager; NEConvolutionLayerReshapeWeights _reshape_weights; weights_transformations::NEConvolutionLayerReshapeWeightsTransform _reshape_weights_managed; - std::unique_ptr<NEIm2ColKernel> _im2col_kernel; + std::unique_ptr<cpu::kernels::CpuIm2ColKernel> _im2col_kernel; NEGEMM _mm_gemm; NEGEMMLowpMatrixMultiplyCore _mm_gemmlowp; std::unique_ptr<NECol2ImKernel> _col2im_kernel; NEReshapeLayer _reshape_layer; + const ITensor *_input; const ITensor *_original_weights; const ITensor *_original_output; |