aboutsummaryrefslogtreecommitdiff
path: root/src/backends/cl/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/backends/cl/test')
-rw-r--r--src/backends/cl/test/ClCreateWorkloadTests.cpp75
-rw-r--r--src/backends/cl/test/ClLayerSupportTests.cpp9
-rw-r--r--src/backends/cl/test/ClOptimizedNetworkTests.cpp3
-rw-r--r--src/backends/cl/test/ClWorkloadFactoryHelper.hpp13
-rw-r--r--src/backends/cl/test/OpenClTimerTest.cpp3
5 files changed, 72 insertions, 31 deletions
diff --git a/src/backends/cl/test/ClCreateWorkloadTests.cpp b/src/backends/cl/test/ClCreateWorkloadTests.cpp
index 978b3bce9a..b243ca8007 100644
--- a/src/backends/cl/test/ClCreateWorkloadTests.cpp
+++ b/src/backends/cl/test/ClCreateWorkloadTests.cpp
@@ -27,7 +27,8 @@ template <armnn::DataType DataType>
static void ClCreateActivationWorkloadTest()
{
Graph graph;
- ClWorkloadFactory factory = ClWorkloadFactoryHelper::GetFactory();
+ ClWorkloadFactory factory =
+ ClWorkloadFactoryHelper::GetFactory(ClWorkloadFactoryHelper::GetMemoryManager());
auto workload = CreateActivationWorkloadTest<ClActivationWorkload, DataType>(factory, graph);
@@ -57,7 +58,9 @@ template <typename WorkloadType,
static void ClCreateArithmethicWorkloadTest()
{
Graph graph;
- ClWorkloadFactory factory = ClWorkloadFactoryHelper::GetFactory();
+ ClWorkloadFactory factory =
+ ClWorkloadFactoryHelper::GetFactory(ClWorkloadFactoryHelper::GetMemoryManager());
+
auto workload = CreateArithmeticWorkloadTest<WorkloadType, DescriptorType, LayerType, DataType>(factory, graph);
// Checks that inputs/outputs are as we expect them (see definition of CreateArithmeticWorkloadTest).
@@ -146,7 +149,8 @@ template <typename BatchNormalizationWorkloadType, armnn::DataType DataType>
static void ClCreateBatchNormalizationWorkloadTest(DataLayout dataLayout)
{
Graph graph;
- ClWorkloadFactory factory = ClWorkloadFactoryHelper::GetFactory();
+ ClWorkloadFactory factory =
+ ClWorkloadFactoryHelper::GetFactory(ClWorkloadFactoryHelper::GetMemoryManager());
auto workload = CreateBatchNormalizationWorkloadTest<BatchNormalizationWorkloadType, DataType>
(factory, graph, dataLayout);
@@ -195,7 +199,9 @@ BOOST_AUTO_TEST_CASE(CreateBatchNormalizationNhwcFloat16NhwcWorkload)
BOOST_AUTO_TEST_CASE(CreateConvertFp16ToFp32Workload)
{
Graph graph;
- ClWorkloadFactory factory = ClWorkloadFactoryHelper::GetFactory();
+ ClWorkloadFactory factory =
+ ClWorkloadFactoryHelper::GetFactory(ClWorkloadFactoryHelper::GetMemoryManager());
+
auto workload = CreateConvertFp16ToFp32WorkloadTest<ClConvertFp16ToFp32Workload>(factory, graph);
ConvertFp16ToFp32QueueDescriptor queueDescriptor = workload->GetData();
@@ -211,7 +217,9 @@ BOOST_AUTO_TEST_CASE(CreateConvertFp16ToFp32Workload)
BOOST_AUTO_TEST_CASE(CreateConvertFp32ToFp16Workload)
{
Graph graph;
- ClWorkloadFactory factory = ClWorkloadFactoryHelper::GetFactory();
+ ClWorkloadFactory factory =
+ ClWorkloadFactoryHelper::GetFactory(ClWorkloadFactoryHelper::GetMemoryManager());
+
auto workload = CreateConvertFp32ToFp16WorkloadTest<ClConvertFp32ToFp16Workload>(factory, graph);
ConvertFp32ToFp16QueueDescriptor queueDescriptor = workload->GetData();
@@ -228,7 +236,9 @@ template <typename Convolution2dWorkloadType, typename armnn::DataType DataType>
static void ClConvolution2dWorkloadTest(DataLayout dataLayout)
{
Graph graph;
- ClWorkloadFactory factory = ClWorkloadFactoryHelper::GetFactory();
+ ClWorkloadFactory factory =
+ ClWorkloadFactoryHelper::GetFactory(ClWorkloadFactoryHelper::GetMemoryManager());
+
auto workload = CreateConvolution2dWorkloadTest<ClConvolution2dWorkload, DataType>(factory,
graph,
dataLayout);
@@ -270,7 +280,8 @@ template <typename DepthwiseConvolutionWorkloadType, typename armnn::DataType Da
static void ClDepthwiseConvolutionWorkloadTest(DataLayout dataLayout)
{
Graph graph;
- ClWorkloadFactory factory = ClWorkloadFactoryHelper::GetFactory();
+ ClWorkloadFactory factory =
+ ClWorkloadFactoryHelper::GetFactory(ClWorkloadFactoryHelper::GetMemoryManager());
auto workload = CreateDepthwiseConvolution2dWorkloadTest<DepthwiseConvolutionWorkloadType, DataType>
(factory, graph, dataLayout);
@@ -300,7 +311,9 @@ template <typename Convolution2dWorkloadType, typename armnn::DataType DataType>
static void ClDirectConvolution2dWorkloadTest()
{
Graph graph;
- ClWorkloadFactory factory = ClWorkloadFactoryHelper::GetFactory();
+ ClWorkloadFactory factory =
+ ClWorkloadFactoryHelper::GetFactory(ClWorkloadFactoryHelper::GetMemoryManager());
+
auto workload = CreateDirectConvolution2dWorkloadTest<ClConvolution2dWorkload, DataType>(factory, graph);
// Checks that outputs and inputs are as we expect them (see definition of CreateDirectConvolution2dWorkloadTest).
@@ -330,7 +343,9 @@ template <typename FullyConnectedWorkloadType, typename armnn::DataType DataType
static void ClCreateFullyConnectedWorkloadTest()
{
Graph graph;
- ClWorkloadFactory factory = ClWorkloadFactoryHelper::GetFactory();
+ ClWorkloadFactory factory =
+ ClWorkloadFactoryHelper::GetFactory(ClWorkloadFactoryHelper::GetMemoryManager());
+
auto workload =
CreateFullyConnectedWorkloadTest<FullyConnectedWorkloadType, DataType>(factory, graph);
@@ -357,7 +372,9 @@ template <typename NormalizationWorkloadType, typename armnn::DataType DataType>
static void ClNormalizationWorkloadTest(DataLayout dataLayout)
{
Graph graph;
- ClWorkloadFactory factory = ClWorkloadFactoryHelper::GetFactory();
+ ClWorkloadFactory factory =
+ ClWorkloadFactoryHelper::GetFactory(ClWorkloadFactoryHelper::GetMemoryManager());
+
auto workload = CreateNormalizationWorkloadTest<NormalizationWorkloadType, DataType>(factory, graph, dataLayout);
// Checks that inputs/outputs are as we expect them (see definition of CreateNormalizationWorkloadTest).
@@ -398,7 +415,8 @@ template <typename armnn::DataType DataType>
static void ClPooling2dWorkloadTest(DataLayout dataLayout)
{
Graph graph;
- ClWorkloadFactory factory = ClWorkloadFactoryHelper::GetFactory();
+ ClWorkloadFactory factory =
+ ClWorkloadFactoryHelper::GetFactory(ClWorkloadFactoryHelper::GetMemoryManager());
auto workload = CreatePooling2dWorkloadTest<ClPooling2dWorkload, DataType>(factory, graph, dataLayout);
@@ -440,7 +458,8 @@ template <typename armnn::DataType DataType>
static void ClCreateReshapeWorkloadTest()
{
Graph graph;
- ClWorkloadFactory factory = ClWorkloadFactoryHelper::GetFactory();
+ ClWorkloadFactory factory =
+ ClWorkloadFactoryHelper::GetFactory(ClWorkloadFactoryHelper::GetMemoryManager());
auto workload = CreateReshapeWorkloadTest<ClReshapeWorkload, DataType>(factory, graph);
@@ -472,7 +491,8 @@ template <typename SoftmaxWorkloadType, typename armnn::DataType DataType>
static void ClSoftmaxWorkloadTest()
{
Graph graph;
- ClWorkloadFactory factory = ClWorkloadFactoryHelper::GetFactory();
+ ClWorkloadFactory factory =
+ ClWorkloadFactoryHelper::GetFactory(ClWorkloadFactoryHelper::GetMemoryManager());
auto workload = CreateSoftmaxWorkloadTest<SoftmaxWorkloadType, DataType>(factory, graph);
@@ -500,7 +520,8 @@ template <typename armnn::DataType DataType>
static void ClSplitterWorkloadTest()
{
Graph graph;
- ClWorkloadFactory factory = ClWorkloadFactoryHelper::GetFactory();
+ ClWorkloadFactory factory =
+ ClWorkloadFactoryHelper::GetFactory(ClWorkloadFactoryHelper::GetMemoryManager());
auto workload = CreateSplitterWorkloadTest<ClSplitterWorkload, DataType>(factory, graph);
@@ -541,7 +562,8 @@ static void ClSplitterMergerTest()
// of the merger.
Graph graph;
- ClWorkloadFactory factory = ClWorkloadFactoryHelper::GetFactory();
+ ClWorkloadFactory factory =
+ ClWorkloadFactoryHelper::GetFactory(ClWorkloadFactoryHelper::GetMemoryManager());
auto workloads =
CreateSplitterMergerWorkloadTest<ClSplitterWorkload, ClMergerWorkload, DataType>
@@ -590,7 +612,9 @@ BOOST_AUTO_TEST_CASE(CreateSingleOutputMultipleInputs)
// We create a splitter with two outputs. That each of those outputs is used by two different activation layers.
Graph graph;
- ClWorkloadFactory factory = ClWorkloadFactoryHelper::GetFactory();
+ ClWorkloadFactory factory =
+ ClWorkloadFactoryHelper::GetFactory(ClWorkloadFactoryHelper::GetMemoryManager());
+
std::unique_ptr<ClSplitterWorkload> wlSplitter;
std::unique_ptr<ClActivationWorkload> wlActiv0_0;
std::unique_ptr<ClActivationWorkload> wlActiv0_1;
@@ -625,7 +649,9 @@ BOOST_AUTO_TEST_CASE(CreateSingleOutputMultipleInputs)
BOOST_AUTO_TEST_CASE(CreateMemCopyWorkloadsCl)
{
- ClWorkloadFactory factory = ClWorkloadFactoryHelper::GetFactory();
+ ClWorkloadFactory factory =
+ ClWorkloadFactoryHelper::GetFactory(ClWorkloadFactoryHelper::GetMemoryManager());
+
CreateMemCopyWorkloads<IClTensorHandle>(factory);
}
@@ -633,7 +659,9 @@ template <typename L2NormalizationWorkloadType, typename armnn::DataType DataTyp
static void ClL2NormalizationWorkloadTest(DataLayout dataLayout)
{
Graph graph;
- ClWorkloadFactory factory = ClWorkloadFactoryHelper::GetFactory();
+ ClWorkloadFactory factory =
+ ClWorkloadFactoryHelper::GetFactory(ClWorkloadFactoryHelper::GetMemoryManager());
+
auto workload =
CreateL2NormalizationWorkloadTest<L2NormalizationWorkloadType, DataType>(factory, graph, dataLayout);
@@ -677,7 +705,9 @@ template <typename LstmWorkloadType>
static void ClCreateLstmWorkloadTest()
{
Graph graph;
- ClWorkloadFactory factory = ClWorkloadFactoryHelper::GetFactory();
+ ClWorkloadFactory factory =
+ ClWorkloadFactoryHelper::GetFactory(ClWorkloadFactoryHelper::GetMemoryManager());
+
auto workload = CreateLstmWorkloadTest<LstmWorkloadType>(factory, graph);
LstmQueueDescriptor queueDescriptor = workload->GetData();
@@ -696,7 +726,8 @@ template <typename ResizeBilinearWorkloadType, typename armnn::DataType DataType
static void ClResizeBilinearWorkloadTest(DataLayout dataLayout)
{
Graph graph;
- ClWorkloadFactory factory = ClWorkloadFactoryHelper::GetFactory();
+ ClWorkloadFactory factory =
+ ClWorkloadFactoryHelper::GetFactory(ClWorkloadFactoryHelper::GetMemoryManager());
auto workload = CreateResizeBilinearWorkloadTest<ResizeBilinearWorkloadType, DataType>(factory, graph, dataLayout);
@@ -742,7 +773,9 @@ template <typename MeanWorkloadType, typename armnn::DataType DataType>
static void ClMeanWorkloadTest()
{
Graph graph;
- ClWorkloadFactory factory = ClWorkloadFactoryHelper::GetFactory();
+ ClWorkloadFactory factory =
+ ClWorkloadFactoryHelper::GetFactory(ClWorkloadFactoryHelper::GetMemoryManager());
+
auto workload = CreateMeanWorkloadTest<MeanWorkloadType, DataType>(factory, graph);
// Checks that inputs/outputs are as we expect them (see definition of CreateMeanWorkloadTest).
diff --git a/src/backends/cl/test/ClLayerSupportTests.cpp b/src/backends/cl/test/ClLayerSupportTests.cpp
index 2218d821ef..acfd8c3483 100644
--- a/src/backends/cl/test/ClLayerSupportTests.cpp
+++ b/src/backends/cl/test/ClLayerSupportTests.cpp
@@ -23,19 +23,22 @@ BOOST_AUTO_TEST_SUITE(ClLayerSupport)
BOOST_FIXTURE_TEST_CASE(IsLayerSupportedFloat16Cl, ClContextControlFixture)
{
- armnn::ClWorkloadFactory factory = ClWorkloadFactoryHelper::GetFactory();
+ armnn::ClWorkloadFactory factory =
+ ClWorkloadFactoryHelper::GetFactory(ClWorkloadFactoryHelper::GetMemoryManager());
IsLayerSupportedTests<armnn::ClWorkloadFactory, armnn::DataType::Float16>(&factory);
}
BOOST_FIXTURE_TEST_CASE(IsLayerSupportedFloat32Cl, ClContextControlFixture)
{
- armnn::ClWorkloadFactory factory = ClWorkloadFactoryHelper::GetFactory();
+ armnn::ClWorkloadFactory factory =
+ ClWorkloadFactoryHelper::GetFactory(ClWorkloadFactoryHelper::GetMemoryManager());
IsLayerSupportedTests<armnn::ClWorkloadFactory, armnn::DataType::Float32>(&factory);
}
BOOST_FIXTURE_TEST_CASE(IsLayerSupportedUint8Cl, ClContextControlFixture)
{
- armnn::ClWorkloadFactory factory = ClWorkloadFactoryHelper::GetFactory();
+ armnn::ClWorkloadFactory factory =
+ ClWorkloadFactoryHelper::GetFactory(ClWorkloadFactoryHelper::GetMemoryManager());
IsLayerSupportedTests<armnn::ClWorkloadFactory, armnn::DataType::QuantisedAsymm8>(&factory);
}
diff --git a/src/backends/cl/test/ClOptimizedNetworkTests.cpp b/src/backends/cl/test/ClOptimizedNetworkTests.cpp
index 7e321470c1..f8c1a327ef 100644
--- a/src/backends/cl/test/ClOptimizedNetworkTests.cpp
+++ b/src/backends/cl/test/ClOptimizedNetworkTests.cpp
@@ -34,7 +34,8 @@ BOOST_AUTO_TEST_CASE(OptimizeValidateGpuDeviceSupportLayerNoFallback)
armnn::IOptimizedNetworkPtr optNet = armnn::Optimize(*net, backends, runtime->GetDeviceSpec());
BOOST_CHECK(optNet);
// validate workloads
- armnn::ClWorkloadFactory fact = ClWorkloadFactoryHelper::GetFactory();
+ armnn::ClWorkloadFactory fact =
+ ClWorkloadFactoryHelper::GetFactory(ClWorkloadFactoryHelper::GetMemoryManager());
for (auto&& layer : static_cast<armnn::OptimizedNetwork*>(optNet.get())->GetGraph())
{
BOOST_CHECK(layer->GetBackendId() == armnn::Compute::GpuAcc);
diff --git a/src/backends/cl/test/ClWorkloadFactoryHelper.hpp b/src/backends/cl/test/ClWorkloadFactoryHelper.hpp
index 7b60b8ad15..777bc84b8a 100644
--- a/src/backends/cl/test/ClWorkloadFactoryHelper.hpp
+++ b/src/backends/cl/test/ClWorkloadFactoryHelper.hpp
@@ -9,10 +9,9 @@
#include <backendsCommon/IMemoryManager.hpp>
#include <backendsCommon/test/WorkloadFactoryHelper.hpp>
+#include <cl/ClBackend.hpp>
#include <cl/ClWorkloadFactory.hpp>
-#include <arm_compute/runtime/CL/CLBufferAllocator.h>
-
#include <boost/polymorphic_pointer_cast.hpp>
namespace
@@ -21,11 +20,15 @@ namespace
template<>
struct WorkloadFactoryHelper<armnn::ClWorkloadFactory>
{
- static armnn::ClWorkloadFactory GetFactory()
+ static armnn::IBackendInternal::IMemoryManagerSharedPtr GetMemoryManager()
{
- armnn::IBackendInternal::IMemoryManagerSharedPtr memoryManager =
- std::make_shared<armnn::ClMemoryManager>(std::make_unique<arm_compute::CLBufferAllocator>());
+ armnn::ClBackend backend;
+ return backend.CreateMemoryManager();
+ }
+ static armnn::ClWorkloadFactory GetFactory(
+ const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager)
+ {
return armnn::ClWorkloadFactory(boost::polymorphic_pointer_downcast<armnn::ClMemoryManager>(memoryManager));
}
};
diff --git a/src/backends/cl/test/OpenClTimerTest.cpp b/src/backends/cl/test/OpenClTimerTest.cpp
index 6e55be6c3d..6f44cc4772 100644
--- a/src/backends/cl/test/OpenClTimerTest.cpp
+++ b/src/backends/cl/test/OpenClTimerTest.cpp
@@ -44,7 +44,8 @@ using FactoryType = ClWorkloadFactory;
BOOST_AUTO_TEST_CASE(OpenClTimerBatchNorm)
{
- ClWorkloadFactory workloadFactory = ClWorkloadFactoryHelper::GetFactory();
+ auto memoryManager = ClWorkloadFactoryHelper::GetMemoryManager();
+ ClWorkloadFactory workloadFactory = ClWorkloadFactoryHelper::GetFactory(memoryManager);
const unsigned int width = 2;
const unsigned int height = 3;