diff options
author | Derek Lamberti <derek.lamberti@arm.com> | 2019-05-29 15:24:52 +0100 |
---|---|---|
committer | Derek Lamberti <derek.lamberti@arm.com> | 2019-05-29 15:59:27 +0100 |
commit | aa949514c2fd72b61c9546c64da364e5ad0ff8b5 (patch) | |
tree | 6eb7ecf21bef9e8d57e0a5d12d503455885a88c6 /src | |
parent | 8ed4b8c34df929d29952f6b3f835bf61d57466e7 (diff) | |
download | armnn-aa949514c2fd72b61c9546c64da364e5ad0ff8b5.tar.gz |
Don't add redundant copies
Change-Id: I117698ef6f96d250d55f0d9996319d45450e0c9b
Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/armnn/Graph.cpp | 5 | ||||
-rw-r--r-- | src/armnn/test/GraphTests.cpp | 2 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/armnn/Graph.cpp b/src/armnn/Graph.cpp index be792a63a5..a5c85092b0 100644 --- a/src/armnn/Graph.cpp +++ b/src/armnn/Graph.cpp @@ -263,7 +263,10 @@ void Graph::AddCopyLayers() // All layers should have been associated with a valid compute device at this point. BOOST_ASSERT(layer.GetBackendId() != Compute::Undefined); // Does not need another copy layer if a copy layer is already present. - return layer.GetType() != LayerType::MemCopy; + return layer.GetType() != LayerType::MemCopy && + // Input and Output layers can perform their own copies internally. + layer.GetType() != LayerType::Input && + layer.GetType() != LayerType::Output; }; for (auto&& srcLayer : m_Layers) diff --git a/src/armnn/test/GraphTests.cpp b/src/armnn/test/GraphTests.cpp index 0777d98d3a..44cfa2eaec 100644 --- a/src/armnn/test/GraphTests.cpp +++ b/src/armnn/test/GraphTests.cpp @@ -545,7 +545,7 @@ BOOST_AUTO_TEST_CASE(CopyLayersAddedBetweenSameLayersHaveDifferentNames) graph.AddCopyLayers(); std::vector<Edge> edges = GetEdgeList(graph); - BOOST_CHECK(edges.size() == 7u); + BOOST_CHECK(edges.size() == 6u); std::sort(edges.begin(), edges.end()); auto last = std::unique(edges.begin(), edges.end()); BOOST_CHECK_MESSAGE(last == edges.end(), "Found duplicated edges after AddCopyLayers()"); |