IVGCVSW-4873 Implement Pimpl Idiom for INetwork and IOptimizedNetwork
!android-nn-driver:5042
Signed-off-by: Kevin May <kevin.may@arm.com>
Change-Id: Ia1ce8b839e81b46428ba0f78463e085e5906958d
Signed-off-by: Francis Murtagh <francis.murtagh@arm.com>
Signed-off-by: Finn Williams <Finn.Williams@arm.com>
diff --git a/src/backends/cl/test/ClFallbackTests.cpp b/src/backends/cl/test/ClFallbackTests.cpp
index 5885cbe..4384ae5 100644
--- a/src/backends/cl/test/ClFallbackTests.cpp
+++ b/src/backends/cl/test/ClFallbackTests.cpp
@@ -51,8 +51,7 @@
optOptions.m_ImportEnabled = true;
IOptimizedNetworkPtr optNet = Optimize(*net, backends, runtime->GetDeviceSpec(), optOptions);
- OptimizedNetwork* optNetObjPtr = PolymorphicDowncast<OptimizedNetwork*>(optNet.get());
- Graph& graph = optNetObjPtr->GetGraph();
+ Graph& graph = GetGraphForTesting(optNet.get());
armnn::Layer* const layer0 = GetFirstLayerWithName(graph, "input0");
armnn::Layer* const layer1 = GetFirstLayerWithName(graph, "input1");
@@ -177,8 +176,7 @@
OptimizerOptions optOptions;
IOptimizedNetworkPtr optNet = Optimize(*net, backends, runtime->GetDeviceSpec(), optOptions);
- OptimizedNetwork* optNetObjPtr = PolymorphicDowncast<OptimizedNetwork*>(optNet.get());
- Graph& graph = optNetObjPtr->GetGraph();
+ Graph& graph = GetGraphForTesting(optNet.get());
armnn::Layer* const layer0 = GetFirstLayerWithName(graph, "input0");
armnn::Layer* const layer1 = GetFirstLayerWithName(graph, "input1");
@@ -307,8 +305,7 @@
optOptions.m_ImportEnabled = true;
IOptimizedNetworkPtr optNet = Optimize(*net, backends, runtime->GetDeviceSpec(), optOptions);
- OptimizedNetwork* optNetObjPtr = PolymorphicDowncast<OptimizedNetwork*>(optNet.get());
- Graph& graph = optNetObjPtr->GetGraph();
+ Graph& graph = GetGraphForTesting(optNet.get());
armnn::Layer* const layer0 = GetFirstLayerWithName(graph, "input0");
armnn::Layer* const layer1 = GetFirstLayerWithName(graph, "input1");
@@ -445,8 +442,7 @@
OptimizerOptions optOptions;
IOptimizedNetworkPtr optNet = Optimize(*net, backends, runtime->GetDeviceSpec(), optOptions);
- OptimizedNetwork* optNetObjPtr = PolymorphicDowncast<OptimizedNetwork*>(optNet.get());
- Graph& graph = optNetObjPtr->GetGraph();
+ Graph& graph = GetGraphForTesting(optNet.get());
armnn::Layer* const layer0 = GetFirstLayerWithName(graph, "input0");
armnn::Layer* const layer1 = GetFirstLayerWithName(graph, "input1");
diff --git a/src/backends/cl/test/ClOptimizedNetworkTests.cpp b/src/backends/cl/test/ClOptimizedNetworkTests.cpp
index dddc5aa..a41c5f8 100644
--- a/src/backends/cl/test/ClOptimizedNetworkTests.cpp
+++ b/src/backends/cl/test/ClOptimizedNetworkTests.cpp
@@ -39,7 +39,9 @@
// validate workloads
armnn::ClWorkloadFactory fact =
ClWorkloadFactoryHelper::GetFactory(ClWorkloadFactoryHelper::GetMemoryManager());
- for (auto&& layer : static_cast<armnn::OptimizedNetwork*>(optNet.get())->GetGraph())
+
+ const armnn::Graph& theGraph = GetGraphForTesting(optNet.get());
+ for (auto&& layer : theGraph)
{
BOOST_CHECK(layer->GetBackendId() == armnn::Compute::GpuAcc);
BOOST_CHECK_NO_THROW(
@@ -59,17 +61,17 @@
// if there are inverse conversion layers remove them with optimization
// at the moment FloorLayer is not supported in Fp16 so it rolls back to Fp32
// and inverse conversion layers are removed by the optimizer
- armnn::Network net;
+ armnn::INetworkPtr net(armnn::INetwork::Create());
// Defines layers.
- auto input = net.AddInputLayer(0, "input layer");
+ auto input = net->AddInputLayer(0, "input layer");
// ReLu1
armnn::ActivationDescriptor activation1Descriptor;
activation1Descriptor.m_Function = armnn::ActivationFunction::BoundedReLu;
activation1Descriptor.m_A = 1.f;
activation1Descriptor.m_B = -1.f;
- auto activation = net.AddActivationLayer(activation1Descriptor, "activation layer");
- auto output = net.AddOutputLayer(0, "output layer");
+ auto activation = net->AddActivationLayer(activation1Descriptor, "activation layer");
+ auto output = net->AddOutputLayer(0, "output layer");
// Connects layers.
input->GetOutputSlot(0).Connect(activation->GetInputSlot(0));
@@ -89,9 +91,9 @@
optimizerOptions.m_ReduceFp32ToFp16 = true;
armnn::IOptimizedNetworkPtr optimizedNet = armnn::Optimize(
- net, backends, runtime->GetDeviceSpec(), optimizerOptions);
+ *net, backends, runtime->GetDeviceSpec(), optimizerOptions);
- const armnn::Graph& graph = static_cast<armnn::OptimizedNetwork*>(optimizedNet.get())->GetGraph();
+ const armnn::Graph& graph = GetGraphForTesting(optimizedNet.get());
// Tests that all layers are present in the graph.
BOOST_TEST(graph.GetNumLayers() == 5);
@@ -127,7 +129,7 @@
BOOST_CHECK(optimizedNet);
- auto modelOptionsOut = static_cast<armnn::OptimizedNetwork*>(optimizedNet.get())->GetModelOptions();
+ auto modelOptionsOut = GetModelOptionsForTesting(optimizedNet.get());
BOOST_TEST(modelOptionsOut.size() == 1);
BOOST_TEST(modelOptionsOut[0].GetOption(0).GetName() == "FastMathEnabled");