From 3d2b4b2bff3be27f12a99e0e01284078870ee954 Mon Sep 17 00:00:00 2001 From: Francis Murtagh Date: Mon, 15 Feb 2021 18:23:17 +0000 Subject: IVGCVSW-4873 Implement Pimpl Idiom for INetwork and IOptimizedNetwork !android-nn-driver:5042 Signed-off-by: Kevin May Change-Id: Ia1ce8b839e81b46428ba0f78463e085e5906958d Signed-off-by: Francis Murtagh Signed-off-by: Finn Williams --- src/backends/neon/test/NeonFallbackTests.cpp | 27 ++++++++-------------- .../neon/test/NeonOptimizedNetworkTests.cpp | 9 +++++--- src/backends/neon/test/NeonTensorHandleTests.cpp | 8 +++---- 3 files changed, 19 insertions(+), 25 deletions(-) (limited to 'src/backends/neon') diff --git a/src/backends/neon/test/NeonFallbackTests.cpp b/src/backends/neon/test/NeonFallbackTests.cpp index fd7fbbc4d5..2d70cc2b1b 100644 --- a/src/backends/neon/test/NeonFallbackTests.cpp +++ b/src/backends/neon/test/NeonFallbackTests.cpp @@ -62,8 +62,7 @@ BOOST_AUTO_TEST_CASE(FallbackImportToCpuAcc) optOptions.m_ImportEnabled = true; IOptimizedNetworkPtr optNet = Optimize(*net, backends, runtime->GetDeviceSpec(), optOptions); - OptimizedNetwork* optNetObjPtr = PolymorphicDowncast(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"); @@ -200,8 +199,7 @@ BOOST_AUTO_TEST_CASE(FallbackPaddingCopyToCpuAcc) optOptions.m_ImportEnabled = true; IOptimizedNetworkPtr optNet = Optimize(*net, backends, runtime->GetDeviceSpec(), optOptions); - OptimizedNetwork* optNetObjPtr = PolymorphicDowncast(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"); @@ -331,8 +329,7 @@ BOOST_AUTO_TEST_CASE(FallbackImportFromCpuAcc) optOptions.m_ImportEnabled = true; IOptimizedNetworkPtr optNet = Optimize(*net, backends, runtime->GetDeviceSpec(), optOptions); - OptimizedNetwork* optNetObjPtr = PolymorphicDowncast(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"); @@ -469,8 +466,7 @@ BOOST_AUTO_TEST_CASE(FallbackPaddingCopyFromCpuAcc) optOptions.m_ImportEnabled = true; IOptimizedNetworkPtr optNet = Optimize(*net, backends, runtime->GetDeviceSpec(), optOptions); - OptimizedNetwork* optNetObjPtr = PolymorphicDowncast(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"); @@ -598,8 +594,7 @@ BOOST_AUTO_TEST_CASE(FallbackDisableImportFromCpuAcc) std::vector backends = { "MockRef", Compute::CpuAcc }; IOptimizedNetworkPtr optNet = Optimize(*net, backends, runtime->GetDeviceSpec()); - OptimizedNetwork* optNetObjPtr = PolymorphicDowncast(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"); @@ -723,8 +718,7 @@ BOOST_AUTO_TEST_CASE(NeonImportEnabledFallbackToCl) optOptions.m_ImportEnabled = true; IOptimizedNetworkPtr optNet = Optimize(*net, backends, runtime->GetDeviceSpec(), optOptions); - OptimizedNetwork* optNetObjPtr = PolymorphicDowncast(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"); @@ -849,8 +843,7 @@ BOOST_AUTO_TEST_CASE(NeonImportDisabledFallbackToCl) OptimizerOptions optOptions; IOptimizedNetworkPtr optNet = Optimize(*net, backends, runtime->GetDeviceSpec(), optOptions); - OptimizedNetwork* optNetObjPtr = PolymorphicDowncast(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"); @@ -979,8 +972,7 @@ BOOST_AUTO_TEST_CASE(NeonImportEnabledFallbackSubgraphToCl) optOptions.m_ImportEnabled = true; IOptimizedNetworkPtr optNet = Optimize(*net, backends, runtime->GetDeviceSpec(), optOptions); - OptimizedNetwork* optNetObjPtr = PolymorphicDowncast(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"); @@ -1121,8 +1113,7 @@ BOOST_AUTO_TEST_CASE(NeonImportDisableFallbackSubgraphToCl) OptimizerOptions optOptions; IOptimizedNetworkPtr optNet = Optimize(*net, backends, runtime->GetDeviceSpec(), optOptions); - OptimizedNetwork* optNetObjPtr = PolymorphicDowncast(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/neon/test/NeonOptimizedNetworkTests.cpp b/src/backends/neon/test/NeonOptimizedNetworkTests.cpp index 85f06174c7..4944c31d71 100644 --- a/src/backends/neon/test/NeonOptimizedNetworkTests.cpp +++ b/src/backends/neon/test/NeonOptimizedNetworkTests.cpp @@ -35,7 +35,8 @@ BOOST_AUTO_TEST_CASE(OptimizeValidateCpuAccDeviceSupportLayerNoFallback) armnn::NeonWorkloadFactory fact = NeonWorkloadFactoryHelper::GetFactory(NeonWorkloadFactoryHelper::GetMemoryManager()); - for (auto&& layer : static_cast(optNet.get())->GetGraph()) + armnn::Graph& graph = GetGraphForTesting(optNet.get()); + for (auto&& layer : graph) { BOOST_CHECK(layer->GetBackendId() == armnn::Compute::CpuAcc); BOOST_CHECK_NO_THROW( @@ -103,7 +104,7 @@ BOOST_AUTO_TEST_CASE(FastMathEnabledTestOnCpuAcc) BOOST_CHECK(optimizedNet); - auto modelOptionsOut = static_cast(optimizedNet.get())->GetModelOptions(); + auto modelOptionsOut = GetModelOptionsForTesting(optimizedNet.get()); BOOST_TEST(modelOptionsOut.size() == 1); BOOST_TEST(modelOptionsOut[0].GetOption(0).GetName() == "FastMathEnabled"); @@ -134,8 +135,10 @@ BOOST_AUTO_TEST_CASE(NumberOfThreadsTestOnCpuAcc) *net, backends, runtime->GetDeviceSpec(), optimizerOptions); BOOST_CHECK(optimizedNet); + std::unique_ptr graphPtr; + armnn::OptimizedNetworkImpl impl(std::move(graphPtr), optimizerOptions.m_ModelOptions); - auto modelOptionsOut = static_cast(optimizedNet.get())->GetModelOptions(); + auto modelOptionsOut = impl.GetModelOptions(); BOOST_TEST(modelOptionsOut.size() == 1); BOOST_TEST(modelOptionsOut[0].GetOption(0).GetName() == "NumberOfThreads"); diff --git a/src/backends/neon/test/NeonTensorHandleTests.cpp b/src/backends/neon/test/NeonTensorHandleTests.cpp index e6d740280d..0e24e9505b 100644 --- a/src/backends/neon/test/NeonTensorHandleTests.cpp +++ b/src/backends/neon/test/NeonTensorHandleTests.cpp @@ -128,7 +128,7 @@ BOOST_AUTO_TEST_CASE(ConcatOnXorYSubTensorsNoPaddingRequiredTest) std::vector backends = { armnn::Compute::CpuAcc }; armnn::IOptimizedNetworkPtr optimizedNet = armnn::Optimize(*net, backends, runtime->GetDeviceSpec()); - const armnn::Graph& theGraph = static_cast(optimizedNet.get())->GetGraph(); + const armnn::Graph& theGraph = GetGraphForTesting(optimizedNet.get()); // Load graph into runtime armnn::NetworkId networkIdentifier; @@ -211,7 +211,7 @@ BOOST_AUTO_TEST_CASE(ConcatonXorYPaddingRequiredTest) std::vector backends = { armnn::Compute::CpuAcc }; armnn::IOptimizedNetworkPtr optimizedNet = armnn::Optimize(*net, backends, runtime->GetDeviceSpec()); - const armnn::Graph& theGraph = static_cast(optimizedNet.get())->GetGraph(); + const armnn::Graph& theGraph = GetGraphForTesting(optimizedNet.get()); // Load graph into runtime armnn::NetworkId networkIdentifier; @@ -380,7 +380,7 @@ BOOST_AUTO_TEST_CASE(SplitteronXorYNoPaddingRequiredTest) std::vector backends = { armnn::Compute::CpuAcc }; armnn::IOptimizedNetworkPtr optimizedNet = armnn::Optimize(*net, backends, runtime->GetDeviceSpec()); - const armnn::Graph& theGraph = static_cast(optimizedNet.get())->GetGraph(); + const armnn::Graph& theGraph = GetGraphForTesting(optimizedNet.get()); // Load graph into runtime armnn::NetworkId networkIdentifier; @@ -555,7 +555,7 @@ BOOST_AUTO_TEST_CASE(SplitteronXorYPaddingRequiredTest) std::vector backends = { armnn::Compute::CpuAcc }; armnn::IOptimizedNetworkPtr optimizedNet = armnn::Optimize(*net, backends, runtime->GetDeviceSpec()); - const armnn::Graph& theGraph = static_cast(optimizedNet.get())->GetGraph(); + const armnn::Graph& theGraph = GetGraphForTesting(optimizedNet.get()); // Load graph into runtime armnn::NetworkId networkIdentifier; -- cgit v1.2.1