diff options
author | Teresa Charlin <teresa.charlinreyes@arm.com> | 2024-02-01 17:36:48 +0000 |
---|---|---|
committer | TeresaARM <teresa.charlinreyes@arm.com> | 2024-02-07 13:24:09 +0000 |
commit | a52bca23d225144e92f521341718a70489d5c217 (patch) | |
tree | 2dc88b168900ec89e51dafe564856736ce88f277 /src/backends/gpuFsa/layers/GpuFsaConvolution2d.cpp | |
parent | cf9622f84e22dfb4af1835f02780eb0d8310a624 (diff) | |
download | armnn-a52bca23d225144e92f521341718a70489d5c217.tar.gz |
IVGCVSW-7623: GpuFsa Op: Add Pool2d operator
* Add Pool2d EndToEnd tests to all backends
* Add utility functions for the attributes in a separate file
* Remove some unnecessary includes
Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com>
Change-Id: I0f82ebbf7b3301c6368462fb4fb4d4d02b246fc6
Diffstat (limited to 'src/backends/gpuFsa/layers/GpuFsaConvolution2d.cpp')
-rw-r--r-- | src/backends/gpuFsa/layers/GpuFsaConvolution2d.cpp | 45 |
1 files changed, 10 insertions, 35 deletions
diff --git a/src/backends/gpuFsa/layers/GpuFsaConvolution2d.cpp b/src/backends/gpuFsa/layers/GpuFsaConvolution2d.cpp index 90b0ddc78c..e9409634ed 100644 --- a/src/backends/gpuFsa/layers/GpuFsaConvolution2d.cpp +++ b/src/backends/gpuFsa/layers/GpuFsaConvolution2d.cpp @@ -4,29 +4,23 @@ // #include "GpuFsaConvolution2d.hpp" - -//#include <armnn/Types.hpp> +#include "UtilsGpuFsa.hpp" #include <aclCommon/ArmComputeTensorUtils.hpp> -//#include <arm_compute/core/ITensorInfo.h> -//#include <arm_compute/core/TensorInfo.h> -//#include <arm_compute/core/TensorShape.h> -//#include <arm_compute/core/CL/CLKernelLibrary.h> -//#include <arm_compute/core/CL/CLCompileContext.h> - -//#include <arm_compute/dynamic_fusion/runtime/gpu/cl/ClWorkloadRuntime.h> #include <arm_compute/dynamic_fusion/sketch/gpu/GpuWorkloadContext.h> +#include <arm_compute/dynamic_fusion/sketch/gpu/GpuWorkloadSketch.h> #include <arm_compute/dynamic_fusion/sketch/gpu/operators/GpuConv2d.h> #include <arm_compute/dynamic_fusion/sketch/gpu/operators/GpuOutput.h> #include <vector> +using namespace arm_compute::experimental::dynamic_fusion; +using namespace armnn::armcomputetensorutils; + namespace armnn { -using namespace armcomputetensorutils; - arm_compute::Status GpuFsaConvolution2dValidate(const TensorInfo& input, const Convolution2dDescriptor& descriptor, const TensorInfo& weights, @@ -61,23 +55,14 @@ arm_compute::Status GpuFsaConvolution2dValidate(const TensorInfo& input, biasSketchInfoPtr = workloadContext.create_tensor_info(aclBiasInfo); } - // Set Conv2d attributes using descriptor - const arm_compute::Size2D aclDilationInfo = BuildArmComputeSize2D(descriptor.m_DilationX, - descriptor.m_DilationY); - const arm_compute::Padding2D aclPadInfo = BuildArmComputePaddingInfo(descriptor); - const arm_compute::Size2D aclStrideInfo = BuildArmComputeSize2D(descriptor.m_StrideX, descriptor.m_StrideY); - - Conv2dAttributes conv2DAttributes{}; - conv2DAttributes.dilation(aclDilationInfo); - conv2DAttributes.pad(aclPadInfo); - conv2DAttributes.stride(aclStrideInfo); + Conv2dAttributes conv2dAttributes = CreateConv2dAttributes(descriptor); // Validate operator, check status and update reasonIfUnsupported arm_compute::Status aclStatus = GpuConv2d::validate_op(sketch, inputInfo, weightInfo, biasSketchInfoPtr, - conv2DAttributes); + conv2dAttributes); return aclStatus; } @@ -99,7 +84,6 @@ void GpuFsaConvolution2dCreateOp(GpuFsaPreCompiledBlob* blob, * as the TensorInfos used when creating the Tensors must match those used to create the Sketch. Otherwise the runtime * doesn't know which Tensors to use. */ - using namespace arm_compute::experimental::dynamic_fusion; GpuWorkloadSketch* sketch = blob->sketch.get(); GpuWorkloadContext* workloadContext = blob->workloadContext.get(); std::vector<arm_compute::ITensorInfo*> inputTensorInfos = {}; @@ -130,23 +114,14 @@ void GpuFsaConvolution2dCreateOp(GpuFsaPreCompiledBlob* blob, biasSketchInfoPtr = inputTensorInfos[2]; } - // Set Conv2d attributes using descriptor - const arm_compute::Size2D aclDilationInfo = BuildArmComputeSize2D(descriptor.m_DilationX, - descriptor.m_DilationY); - const arm_compute::Padding2D aclPadInfo = BuildArmComputePaddingInfo(descriptor); - const arm_compute::Size2D aclStrideInfo = BuildArmComputeSize2D(descriptor.m_StrideX, descriptor.m_StrideY); - - Conv2dAttributes conv2DAttributes{}; - conv2DAttributes.dilation(aclDilationInfo); - conv2DAttributes.pad(aclPadInfo); - conv2DAttributes.stride(aclStrideInfo); + Conv2dAttributes conv2dAttributes = CreateConv2dAttributes(descriptor); // Validate operator, check status and update reasonIfUnsupported arm_compute::Status aclStatus = GpuConv2d::validate_op(*sketch, inputTensorInfos[0], inputTensorInfos[1], biasSketchInfoPtr, - conv2DAttributes); + conv2dAttributes); const bool supported = (aclStatus.error_code() == arm_compute::ErrorCode::OK); if (!supported) @@ -159,7 +134,7 @@ void GpuFsaConvolution2dCreateOp(GpuFsaPreCompiledBlob* blob, inputTensorInfos[0], inputTensorInfos[1], biasSketchInfoPtr, - conv2DAttributes); + conv2dAttributes); // Create the Output outputTensorInfos.emplace_back(workloadContext->create_tensor_info()); |