aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/NEON/functions/NEGEMMConvolutionLayer.cpp
diff options
context:
space:
mode:
authorManuel Bottini <manuel.bottini@arm.com>2021-07-01 18:13:33 +0100
committerGeorgios Pinitas <georgios.pinitas@arm.com>2021-07-09 09:42:34 +0000
commit24b892072a2bd8190ba63d09fb0082113d7d032a (patch)
tree6376c4449f0d2d7f146496ab32604b3835acf976 /src/runtime/NEON/functions/NEGEMMConvolutionLayer.cpp
parentda816752cad76c8e1b367e8e9c648994a1af599a (diff)
downloadComputeLibrary-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/functions/NEGEMMConvolutionLayer.cpp')
-rw-r--r--src/runtime/NEON/functions/NEGEMMConvolutionLayer.cpp15
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
{