From 71d9b57aac146ae3ad5648c1308a872cea90070d Mon Sep 17 00:00:00 2001 From: Anthony Barbier Date: Fri, 6 Jul 2018 17:05:59 +0100 Subject: COMPMID-1381: Cleaned up the AssemblyHelper interface Introduced a new IFunction for when we'll fork the arm_gemm functions Increased encapsulation and abstraction of which method is used Change-Id: I5fd8b14b5c77e7f8ecb09029b5e2eccd10dbdcf4 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/139108 Tested-by: Jenkins Reviewed-by: Georgios Pinitas Reviewed-by: Pablo Tello --- src/runtime/NEON/functions/NEWinogradConvolutionLayer.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/runtime/NEON/functions/NEWinogradConvolutionLayer.cpp') diff --git a/src/runtime/NEON/functions/NEWinogradConvolutionLayer.cpp b/src/runtime/NEON/functions/NEWinogradConvolutionLayer.cpp index 31e17e5cf9..a1d801e574 100644 --- a/src/runtime/NEON/functions/NEWinogradConvolutionLayer.cpp +++ b/src/runtime/NEON/functions/NEWinogradConvolutionLayer.cpp @@ -24,16 +24,15 @@ #include "arm_compute/runtime/NEON/functions/NEWinogradConvolutionLayer.h" #include "arm_compute/core/Error.h" +#include "arm_compute/core/NEON/kernels/NEWinogradConvolutionLayerKernel.h" #include "arm_compute/core/Utils.h" #include "arm_compute/core/Validate.h" #include "arm_compute/core/Validate.h" #include "arm_compute/core/utils/misc/ShapeCalculator.h" -#include "arm_compute/runtime/NEON/AssemblyHelper.h" #include "arm_compute/runtime/NEON/NEScheduler.h" +#include "arm_compute/runtime/NEON/functions/NEGEMMAssemblyDispatch.h" #include "support/ToolchainSupport.h" -#include "arm_compute/core/NEON/kernels/NEWinogradConvolutionLayerKernel.h" - #include "arm_compute/core/NEON/kernels/convolution/winograd/winograd_gemm.hpp" namespace arm_compute @@ -292,7 +291,7 @@ void NEWinogradConvolutionLayer::configure(const ITensor *input, const ITensor * _arm_gemm->set_arrays(reinterpret_cast(_input_workspace.buffer()), input_matrix_row_stride, 0, input_matrix_stride, reinterpret_cast(_kernel_storage.buffer()), kernel_matrix_row_stride, kernel_matrix_stride, reinterpret_cast(_output_workspace.buffer()), output_matrix_row_stride, 0, output_matrix_stride); - auto acl_gemm_wrapper = support::cpp14::make_unique>>(); + auto acl_gemm_wrapper = support::cpp14::make_unique>(); acl_gemm_wrapper->configure(_arm_gemm.get()); const size_t workspace_size = _arm_gemm->get_working_size(); @@ -302,7 +301,8 @@ void NEWinogradConvolutionLayer::configure(const ITensor *input, const ITensor * const unsigned int alignment = 4096; // TODO (COMPMID-1248) : Add support for memory manager in NEWinogradConvolutionLayer // Warning : Do not set a memory group in allocate_workspace, should be done under COMPMID-1248 - allocate_workspace(workspace_size, _workspace, nullptr, alignment); + _workspace.allocator()->init(TensorInfo(TensorShape{ (workspace_size + alignment /* FIXME: remove alignment after COMPMID-1088 */) }, 1, DataType::S8), alignment); + _workspace.allocator()->allocate(); _arm_gemm->set_working_space(reinterpret_cast(_workspace.buffer())); } -- cgit v1.2.1