aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/test/SubgraphViewTests.cpp
diff options
context:
space:
mode:
authorDerek Lamberti <derek.lamberti@arm.com>2020-12-07 13:54:12 +0000
committerMatthew Bentham <matthew.bentham@arm.com>2020-12-11 09:02:52 +0000
commit161d29ca4091bb1ff79736a416978b49989fc622 (patch)
tree971ccca037dc6ac5eb0d45d7981f1a3feb19e023 /src/armnn/test/SubgraphViewTests.cpp
parent00f9d77625cec8c4191c1a85dffd6ec2019efc8d (diff)
downloadarmnn-161d29ca4091bb1ff79736a416978b49989fc622.tar.gz
Sort subgraphview layers on construction
Make it easier for backends to traverse the subgraph during optimization Change-Id: I140cb11f78bab5f19c801a5b55efffb38c63837f Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
Diffstat (limited to 'src/armnn/test/SubgraphViewTests.cpp')
-rw-r--r--src/armnn/test/SubgraphViewTests.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/armnn/test/SubgraphViewTests.cpp b/src/armnn/test/SubgraphViewTests.cpp
index a8cb797d17..73ef8bea91 100644
--- a/src/armnn/test/SubgraphViewTests.cpp
+++ b/src/armnn/test/SubgraphViewTests.cpp
@@ -1582,4 +1582,31 @@ BOOST_AUTO_TEST_CASE(SubgraphCycles)
}
}
+BOOST_AUTO_TEST_CASE(SubgraphOrder)
+{
+ Graph graph;
+
+ auto input = graph.AddLayer<InputLayer>(0, "Input");
+ auto activation = graph.AddLayer<ActivationLayer>(ActivationDescriptor{}, "Activation");
+ auto output = graph.AddLayer<OutputLayer>(1, "Output");
+
+ input->GetOutputSlot(0).Connect(activation->GetInputSlot(0));
+ activation->GetOutputSlot(0).Connect(output->GetInputSlot(0));
+
+ //Add in out of order
+ auto view = CreateSubgraphViewFrom({},
+ {},
+ {output, input, activation});
+
+ // Check the layers are sorted topologically in the view
+ int idx=0;
+ LayerType expectedSorted[] = {LayerType::Input, LayerType::Activation, LayerType::Output};
+ view->ForEachLayer([&idx, &expectedSorted](const Layer* l)
+ {
+ BOOST_TEST((expectedSorted[idx] == l->GetType()));
+ idx++;
+ }
+ );
+}
+
BOOST_AUTO_TEST_SUITE_END()