aboutsummaryrefslogtreecommitdiff
path: root/src/backends/neon/workloads
diff options
context:
space:
mode:
authorJan Eilers <jan.eilers@arm.com>2019-07-11 10:22:36 +0100
committerJan Eilers <jan.eilers@arm.com>2019-07-12 10:22:41 +0100
commit59c6670cac0aac1fedf426fb19ccd578da6f9f55 (patch)
tree733d85d3812d022940c60a12de9a6e76a28bcab7 /src/backends/neon/workloads
parent974e5b60a4d6e3147ce7869940d1e291bf9af95a (diff)
downloadarmnn-59c6670cac0aac1fedf426fb19ccd578da6f9f55.tar.gz
IVGCVSW-3300 Add Neon backend support for dilated Convolution2d
* Update NeonConvolution2dWorkload * Enable unit tests Signed-off-by: Jan Eilers <jan.eilers@arm.com> Change-Id: I1709e71e4944c5cbdcc99a003479c1fce45a612a
Diffstat (limited to 'src/backends/neon/workloads')
-rw-r--r--src/backends/neon/workloads/NeonConvolution2dWorkload.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/backends/neon/workloads/NeonConvolution2dWorkload.cpp b/src/backends/neon/workloads/NeonConvolution2dWorkload.cpp
index a8137a27ad..564ba0310f 100644
--- a/src/backends/neon/workloads/NeonConvolution2dWorkload.cpp
+++ b/src/backends/neon/workloads/NeonConvolution2dWorkload.cpp
@@ -29,6 +29,9 @@ arm_compute::Status NeonConvolution2dWorkloadValidate(const TensorInfo& input,
const arm_compute::TensorInfo aclOutputInfo = BuildArmComputeTensorInfo(output, descriptor.m_DataLayout);
const arm_compute::TensorInfo aclWeightsInfo = BuildArmComputeTensorInfo(weights, descriptor.m_DataLayout);
+ const arm_compute::Size2D aclDilationInfo = BuildArmComputeSize2D(descriptor.m_DilationX,
+ descriptor.m_DilationY);
+
arm_compute::TensorInfo aclBiasesInfo;
arm_compute::TensorInfo *optionalAclBiasesInfo = nullptr;
@@ -46,7 +49,9 @@ arm_compute::Status NeonConvolution2dWorkloadValidate(const TensorInfo& input,
&aclWeightsInfo,
optionalAclBiasesInfo,
&aclOutputInfo,
- layerInfo);
+ layerInfo,
+ arm_compute::WeightsInfo(),
+ aclDilationInfo);
}
NeonConvolution2dWorkload::NeonConvolution2dWorkload(
@@ -84,12 +89,18 @@ NeonConvolution2dWorkload::NeonConvolution2dWorkload(
m_Data.m_Parameters.m_PadBottom,
arm_compute::DimensionRoundingType::FLOOR);
+ const arm_compute::Size2D aclDilationInfo = BuildArmComputeSize2D(m_Data.m_Parameters.m_DilationX,
+ m_Data.m_Parameters.m_DilationY);
+
auto convolutionLayer = std::make_unique<arm_compute::NEConvolutionLayer>(memoryManager);
convolutionLayer->configure(&input,
m_KernelTensor.get(),
m_BiasTensor.get(),
&output,
- padStrideInfo);
+ padStrideInfo,
+ arm_compute::WeightsInfo(),
+ aclDilationInfo);
+
m_ConvolutionLayer.reset(convolutionLayer.release());
BOOST_ASSERT(m_ConvolutionLayer);