diff options
author | Manuel Bottini <manuel.bottini@arm.com> | 2021-07-01 18:13:33 +0100 |
---|---|---|
committer | Georgios Pinitas <georgios.pinitas@arm.com> | 2021-07-09 09:42:34 +0000 |
commit | 24b892072a2bd8190ba63d09fb0082113d7d032a (patch) | |
tree | 6376c4449f0d2d7f146496ab32604b3835acf976 /src/runtime/NEON | |
parent | da816752cad76c8e1b367e8e9c648994a1af599a (diff) | |
download | ComputeLibrary-24b892072a2bd8190ba63d09fb0082113d7d032a.tar.gz |
Port NECol2ImKernel
Resolves: COMPMID-4511
Change-Id: Id6335cb23ef22bba02083498025da0ecb1647714
Signed-off-by: Manuel Bottini <manuel.bottini@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5898
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'src/runtime/NEON')
-rw-r--r-- | src/runtime/NEON/functions/NEGEMMConvolutionLayer.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/runtime/NEON/functions/NEGEMMConvolutionLayer.cpp b/src/runtime/NEON/functions/NEGEMMConvolutionLayer.cpp index f333364289..7c06b0adf5 100644 --- a/src/runtime/NEON/functions/NEGEMMConvolutionLayer.cpp +++ b/src/runtime/NEON/functions/NEGEMMConvolutionLayer.cpp @@ -30,8 +30,8 @@ #include "arm_compute/core/utils/quantization/AsymmHelpers.h" #include "arm_compute/runtime/NEON/NEScheduler.h" -#include "src/core/NEON/kernels/NECol2ImKernel.h" #include "src/core/NEON/kernels/NEWeightsReshapeKernel.h" +#include "src/core/cpu/kernels/CpuCol2ImKernel.h" #include "src/core/cpu/kernels/CpuIm2ColKernel.h" #include <set> @@ -388,8 +388,8 @@ void NEGEMMConvolutionLayer::configure(const ITensor *input, const ITensor *weig if(_data_layout == DataLayout::NCHW) { // Configure col2im - _col2im_kernel = std::make_unique<NECol2ImKernel>(); - _col2im_kernel->configure(gemm_output_to_use, output, Size2D(conv_w, conv_h)); + _col2im_kernel = std::make_unique<cpu::kernels::CpuCol2ImKernel>(); + _col2im_kernel->configure(gemm_output_to_use->info(), output->info(), Size2D(conv_w, conv_h)); } else { @@ -546,7 +546,7 @@ Status NEGEMMConvolutionLayer::validate(const ITensorInfo *input, const ITensorI // Validate Col2Im/ReshapeLayer if(!skip_col2im && (data_layout == DataLayout::NCHW)) { - ARM_COMPUTE_RETURN_ON_ERROR(NECol2ImKernel::validate(gemm_output_to_use, output, Size2D(conv_w, conv_h))); + ARM_COMPUTE_RETURN_ON_ERROR(cpu::kernels::CpuCol2ImKernel::validate(gemm_output_to_use, output, Size2D(conv_w, conv_h))); } return Status{}; @@ -594,7 +594,12 @@ void NEGEMMConvolutionLayer::run() { if(_data_layout == DataLayout::NCHW) { - NEScheduler::get().schedule(_col2im_kernel.get(), Window::DimY); + ITensorPack pack = + { + { TensorType::ACL_SRC, &_gemm_output }, + { TensorType::ACL_DST, _original_output } + }; + NEScheduler::get().schedule_op(_col2im_kernel.get(), Window::DimY, _col2im_kernel->window(), pack); } else { |