aboutsummaryrefslogtreecommitdiff
path: root/src/backends/neon/test/NeonCreateWorkloadTests.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/backends/neon/test/NeonCreateWorkloadTests.cpp')
-rw-r--r--src/backends/neon/test/NeonCreateWorkloadTests.cpp80
1 files changed, 52 insertions, 28 deletions
diff --git a/src/backends/neon/test/NeonCreateWorkloadTests.cpp b/src/backends/neon/test/NeonCreateWorkloadTests.cpp
index 07953bf86f..61160e2195 100644
--- a/src/backends/neon/test/NeonCreateWorkloadTests.cpp
+++ b/src/backends/neon/test/NeonCreateWorkloadTests.cpp
@@ -58,7 +58,9 @@ template <typename armnn::DataType DataType>
static void NeonCreateActivationWorkloadTest()
{
Graph graph;
- NeonWorkloadFactory factory = NeonWorkloadFactoryHelper::GetFactory();
+ NeonWorkloadFactory factory =
+ NeonWorkloadFactoryHelper::GetFactory(NeonWorkloadFactoryHelper::GetMemoryManager());
+
auto workload = CreateActivationWorkloadTest<NeonActivationWorkload, DataType>(factory, graph);
// Checks that inputs/outputs are as we expect them (see definition of CreateActivationWorkloadTest).
@@ -88,7 +90,9 @@ template <typename WorkloadType,
static void NeonCreateArithmethicWorkloadTest()
{
Graph graph;
- NeonWorkloadFactory factory = NeonWorkloadFactoryHelper::GetFactory();
+ NeonWorkloadFactory factory =
+ NeonWorkloadFactoryHelper::GetFactory(NeonWorkloadFactoryHelper::GetMemoryManager());
+
auto workload = CreateArithmeticWorkloadTest<WorkloadType, DescriptorType, LayerType, DataType>(factory, graph);
DescriptorType queueDescriptor = workload->GetData();
@@ -157,8 +161,10 @@ BOOST_AUTO_TEST_CASE(CreateMultiplicationFloatWorkload)
template <typename BatchNormalizationWorkloadType, typename armnn::DataType DataType>
static void NeonCreateBatchNormalizationWorkloadTest(DataLayout dataLayout)
{
- Graph graph;
- NeonWorkloadFactory factory = NeonWorkloadFactoryHelper::GetFactory();
+ Graph graph;
+ NeonWorkloadFactory factory =
+ NeonWorkloadFactoryHelper::GetFactory(NeonWorkloadFactoryHelper::GetMemoryManager());
+
auto workload = CreateBatchNormalizationWorkloadTest<BatchNormalizationWorkloadType, DataType>
(factory, graph, dataLayout);
@@ -199,10 +205,11 @@ BOOST_AUTO_TEST_CASE(CreateBatchNormalizationFloatNhwcWorkload)
template <typename armnn::DataType DataType>
static void NeonCreateConvolution2dWorkloadTest(DataLayout dataLayout = DataLayout::NCHW)
{
- Graph graph;
- NeonWorkloadFactory factory = NeonWorkloadFactoryHelper::GetFactory();
- auto workload = CreateConvolution2dWorkloadTest<NeonConvolution2dWorkload,
- DataType>(factory, graph, dataLayout);
+ Graph graph;
+ NeonWorkloadFactory factory =
+ NeonWorkloadFactoryHelper::GetFactory(NeonWorkloadFactoryHelper::GetMemoryManager());
+
+ auto workload = CreateConvolution2dWorkloadTest<NeonConvolution2dWorkload, DataType>(factory, graph, dataLayout);
TensorShape inputShape = (dataLayout == DataLayout::NCHW) ? TensorShape{2, 3, 8, 16} : TensorShape{2, 8, 16, 3};
TensorShape outputShape = (dataLayout == DataLayout::NCHW) ? TensorShape{2, 2, 2, 10} : TensorShape{2, 2, 10, 2};
@@ -241,7 +248,8 @@ template <typename armnn::DataType DataType>
static void NeonCreateDepthWiseConvolutionWorkloadTest(DataLayout dataLayout)
{
Graph graph;
- NeonWorkloadFactory factory = NeonWorkloadFactoryHelper::GetFactory();
+ NeonWorkloadFactory factory =
+ NeonWorkloadFactoryHelper::GetFactory(NeonWorkloadFactoryHelper::GetMemoryManager());
auto workload = CreateDepthwiseConvolution2dWorkloadTest<NeonDepthwiseConvolutionWorkload,
DataType>(factory, graph, dataLayout);
@@ -277,10 +285,11 @@ BOOST_AUTO_TEST_CASE(CreateDepthWiseConvolution2dFloat16NhwcWorkload)
template <typename FullyConnectedWorkloadType, typename armnn::DataType DataType>
static void NeonCreateFullyConnectedWorkloadTest()
{
- Graph graph;
- NeonWorkloadFactory factory = NeonWorkloadFactoryHelper::GetFactory();
- auto workload = CreateFullyConnectedWorkloadTest<FullyConnectedWorkloadType,
- DataType>(factory, graph);
+ Graph graph;
+ NeonWorkloadFactory factory =
+ NeonWorkloadFactoryHelper::GetFactory(NeonWorkloadFactoryHelper::GetMemoryManager());
+
+ auto workload = CreateFullyConnectedWorkloadTest<FullyConnectedWorkloadType, DataType>(factory, graph);
// Checks that outputs and inputs are as we expect them (see definition of CreateFullyConnectedWorkloadTest).
FullyConnectedQueueDescriptor queueDescriptor = workload->GetData();
@@ -306,7 +315,9 @@ template <typename NormalizationWorkloadType, typename armnn::DataType DataType>
static void NeonCreateNormalizationWorkloadTest(DataLayout dataLayout)
{
Graph graph;
- NeonWorkloadFactory factory = NeonWorkloadFactoryHelper::GetFactory();
+ NeonWorkloadFactory factory =
+ NeonWorkloadFactoryHelper::GetFactory(NeonWorkloadFactoryHelper::GetMemoryManager());
+
auto workload = CreateNormalizationWorkloadTest<NormalizationWorkloadType, DataType>(factory, graph, dataLayout);
// Checks that outputs and inputs are as we expect them (see definition of CreateNormalizationWorkloadTest).
@@ -347,10 +358,11 @@ BOOST_AUTO_TEST_CASE(CreateNormalizationFloatNhwcWorkload)
template <typename armnn::DataType DataType>
static void NeonCreatePooling2dWorkloadTest(DataLayout dataLayout = DataLayout::NCHW)
{
- Graph graph;
- NeonWorkloadFactory factory = NeonWorkloadFactoryHelper::GetFactory();
- auto workload = CreatePooling2dWorkloadTest<NeonPooling2dWorkload, DataType>
- (factory, graph, dataLayout);
+ Graph graph;
+ NeonWorkloadFactory factory =
+ NeonWorkloadFactoryHelper::GetFactory(NeonWorkloadFactoryHelper::GetMemoryManager());
+
+ auto workload = CreatePooling2dWorkloadTest<NeonPooling2dWorkload, DataType>(factory, graph, dataLayout);
TensorShape inputShape = (dataLayout == DataLayout::NCHW) ? TensorShape{3, 2, 5, 5} : TensorShape{3, 5, 5, 2};
TensorShape outputShape = (dataLayout == DataLayout::NCHW) ? TensorShape{3, 2, 2, 4} : TensorShape{3, 2, 4, 2};
@@ -393,9 +405,11 @@ BOOST_AUTO_TEST_CASE(CreatePooling2dUint8NhwcWorkload)
template <typename armnn::DataType DataType>
static void NeonCreateReshapeWorkloadTest()
{
- Graph graph;
- NeonWorkloadFactory factory = NeonWorkloadFactoryHelper::GetFactory();
- auto workload = CreateReshapeWorkloadTest<NeonReshapeWorkload, DataType>(factory, graph);
+ Graph graph;
+ NeonWorkloadFactory factory =
+ NeonWorkloadFactoryHelper::GetFactory(NeonWorkloadFactoryHelper::GetMemoryManager());
+
+ auto workload = CreateReshapeWorkloadTest<NeonReshapeWorkload, DataType>(factory, graph);
// Checks that outputs and inputs are as we expect them (see definition of CreateReshapeWorkloadTest).
ReshapeQueueDescriptor queueDescriptor = workload->GetData();
@@ -425,8 +439,10 @@ BOOST_AUTO_TEST_CASE(CreateReshapeUint8Workload)
template <typename SoftmaxWorkloadType, typename armnn::DataType DataType>
static void NeonCreateSoftmaxWorkloadTest()
{
- Graph graph;
- NeonWorkloadFactory factory = NeonWorkloadFactoryHelper::GetFactory();
+ Graph graph;
+ NeonWorkloadFactory factory =
+ NeonWorkloadFactoryHelper::GetFactory(NeonWorkloadFactoryHelper::GetMemoryManager());
+
auto workload = CreateSoftmaxWorkloadTest<SoftmaxWorkloadType, DataType>(factory, graph);
// Checks that outputs and inputs are as we expect them (see definition of CreateSoftmaxWorkloadTest).
@@ -452,7 +468,9 @@ BOOST_AUTO_TEST_CASE(CreateSoftmaxFloatWorkload)
BOOST_AUTO_TEST_CASE(CreateSplitterWorkload)
{
Graph graph;
- NeonWorkloadFactory factory = NeonWorkloadFactoryHelper::GetFactory();
+ NeonWorkloadFactory factory =
+ NeonWorkloadFactoryHelper::GetFactory(NeonWorkloadFactoryHelper::GetMemoryManager());
+
auto workload = CreateSplitterWorkloadTest<NeonSplitterWorkload, DataType::Float32>(factory, graph);
// Checks that outputs are as we expect them (see definition of CreateSplitterWorkloadTest).
@@ -479,7 +497,8 @@ BOOST_AUTO_TEST_CASE(CreateSplitterMerger)
// of the merger.
Graph graph;
- NeonWorkloadFactory factory = NeonWorkloadFactoryHelper::GetFactory();
+ NeonWorkloadFactory factory =
+ NeonWorkloadFactoryHelper::GetFactory(NeonWorkloadFactoryHelper::GetMemoryManager());
auto workloads =
CreateSplitterMergerWorkloadTest<NeonSplitterWorkload, NeonMergerWorkload,
@@ -510,7 +529,9 @@ BOOST_AUTO_TEST_CASE(CreateSingleOutputMultipleInputs)
// We created a splitter with two outputs. That each of those outputs is used by two different activation layers
Graph graph;
- NeonWorkloadFactory factory = NeonWorkloadFactoryHelper::GetFactory();
+ NeonWorkloadFactory factory =
+ NeonWorkloadFactoryHelper::GetFactory(NeonWorkloadFactoryHelper::GetMemoryManager());
+
std::unique_ptr<NeonSplitterWorkload> wlSplitter;
std::unique_ptr<NeonActivationWorkload> wlActiv0_0;
std::unique_ptr<NeonActivationWorkload> wlActiv0_1;
@@ -544,7 +565,8 @@ BOOST_AUTO_TEST_CASE(CreateSingleOutputMultipleInputs)
BOOST_AUTO_TEST_CASE(CreateMemCopyWorkloadsNeon)
{
- NeonWorkloadFactory factory = NeonWorkloadFactoryHelper::GetFactory();
+ NeonWorkloadFactory factory =
+ NeonWorkloadFactoryHelper::GetFactory(NeonWorkloadFactoryHelper::GetMemoryManager());
CreateMemCopyWorkloads<INeonTensorHandle>(factory);
}
@@ -552,7 +574,9 @@ template <typename L2NormalizationWorkloadType, typename armnn::DataType DataTyp
static void NeonCreateL2NormalizationWorkloadTest(DataLayout dataLayout)
{
Graph graph;
- NeonWorkloadFactory factory = NeonWorkloadFactoryHelper::GetFactory();
+ NeonWorkloadFactory factory =
+ NeonWorkloadFactoryHelper::GetFactory(NeonWorkloadFactoryHelper::GetMemoryManager());
+
auto workload =
CreateL2NormalizationWorkloadTest<L2NormalizationWorkloadType, DataType>(factory, graph, dataLayout);