aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/test/SubgraphViewTests.cpp
AgeCommit message (Collapse)Author
2022-02-09Fix some build failuresRob Hughes
* Add ARMNN_DLLEXPORT to static symbol that needs to be exported from armnn * Add missing <numeric> header for std::iota Change-Id: Ica0211ed0065e9723bcb8e9dff511acb4ea50288 Signed-off-by: Rob Hughes <robert.hughes@arm.com>
2022-02-03IVGCVSW-6634 SubgraphView: Add method of returning a GetSubgraphWorkingCopyFrancis Murtagh
* Add pointer to SubgraphView allowing it to store a working copy implementation of its own representation of graph. * Make SubgraphView a friend of Graph to allow access to layers. * Add constructor to SubgraphView taking SubgraphViewWorkingCopyPtr * Rewrite Graph::SubstituteSubgraph for use on SubgraphView * Add GetWorkingCopy() method * Add tests for replacement of multiplication with DepthwiseConv2d * Check GetBackendHint() has value before passing to PrecompiledLayer * Add GetOwningIConnectableLayer to IInputSlot to allow traversing from IConnectableLayer->IOutputSlot->IInputSlot->IConnectableLayer Signed-off-by: Francis Murtagh <francis.murtagh@arm.com> Change-Id: Iaaef14448d8b73867eaee9d69f4f98d5d1bf171c
2022-01-19IVGCVSW-6712 Move SubgraphView to backends include folderFrancis Murtagh
* Make subgraphview a public interface for backends. Change-Id: I615a29ffec41e947215c3d29c2d7d214e327fb90 Signed-off-by: Francis Murtagh <francis.murtagh@arm.com>
2022-01-14IVGCVSW-6633 SubgraphView uses IConnectableLayer rather than Layer in its ↵Francis Murtagh
m_Layers * Added IInputSlot, IOutputSlot and IConnectableLayer to SubgraphView * Deprecated old member functions * Removed deprecated calls in ArmNN * Added GetOwningIConnectableLayer function to IOutputSlot * Updates ArmNN Core Major version for IOutputSlot ABI break * Updated Minor version of TfliteParser, OnnxParser and Delegate Signed-off-by: Francis Murtagh <francis.murtagh@arm.com> Change-Id: I2a8611bfabf5ae09d3602fe6a4bef166e18117b9
2022-01-12Fix INetwork::AddPrecompiledLayer to take the CompiledBlobPtr by value ↵Cathal Corbett
rather than reference. Signed-off-by: Cathal Corbett <cathal.corbett@arm.com> Change-Id: I4057d2d6055220bb0d415a934ac09688b699b77c
2021-12-23IVGCVSW-6632 OptimizationViews: has INetwork rather than Graph for holding ↵Cathal Corbett
layers * Deprecate the GetGraph() function in OptimizationViews & remove/fix occurances where OptimizationViews.GetGraph() is called. * OptimizationViews has member INetworkPtr. * OptimizationViews has GetINetwork() method. * Unit test added to OptimizationViewsTests.cpp. Signed-off-by: Cathal Corbett <cathal.corbett@arm.com> Change-Id: Ifc1e53f1c34d786502279631942f0472f401038e
2021-12-15IVGCVSW-6626 Promote backend headers in backendCommon to armnn/backendsColm Donelan
Move the following header files from backendsCommon to armnn/backends. * MemCopyWorkload.hpp * TensorHandle.hpp * Workload.hpp * WorkloadData.hpp * WorkloadFactory.hpp Replace them with forwarding headers and a pragma deprecation message. Resolve the deprecation messages in Arm NN code. Signed-off-by: Colm Donelan <colm.donelan@arm.com> Change-Id: I47f116b30f86e478c9057795bc518c391a8ae514
2021-12-14IVGCVSW-6630 Add new method AddPrecompiledLayer() to INetworkCathal Corbett
* Add new method AddPrecompiledLayer() to INetwork with Comments noting it is for backend users. * Added unit test to SubgraphViewTests.cpp. * Bug fix and code refactor in Graph.cpp specifically around Graph::SubstituteSubgraph(SubgraphView& subgraph, IConnectableLayer* substituteLayer) Change-Id: If2d816e5109e48ce920bf92d8823b39130c23a16 Signed-off-by: Cathal Corbett <cathal.corbett@arm.com>
2021-06-11IVGCVSW-5963 'Move unit tests to new framework'Sadik Armagan
* Used doctest in ArmNN unit tests Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: Ia9cf5fc72775878885c5f864abf2c56b3a935f1a
2021-05-06IVGCVSW-5815 Generalise ConstCpuTensorHandleJames Conroy
* Generalises ConstCpuTensorHandle and inherited classes by removing 'Cpu' from aliases. * New renamed classes: ConstTensorHandle, TensorHandle, ScopedTensorHandle, PassthroughTensorHandle, ConstPassthroughTensorHandle. Signed-off-by: James Conroy <james.conroy@arm.com> Change-Id: I1824e0e134202735fb77051f20a7252f161dfe16
2020-12-11Sort subgraphview layers on constructionDerek Lamberti
Make it easier for backends to traverse the subgraph during optimization Change-Id: I140cb11f78bab5f19c801a5b55efffb38c63837f Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
2020-09-17IVGCVSW-5303 Remove some boost::numeric_cast from rest of ArmNNMatthew Sloyan
* Replaced with armnn/utility/NumericCast.hpp * Exclusions in TypeUtils.cpp and QuantizerVisitor.cpp * Excluded as requires float implementation in NumericCast.hpp Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com> Change-Id: I5c4c60e7028e1a51bf9379457278d253fd37bc70
2020-01-20Remove inclusion of ArmNN.hpp where it is unnecessary.Matthew Bentham
Signed-off-by: Matthew Bentham <Matthew.Bentham@arm.com> Change-Id: Idb583f8de4470eefb47c90189cd3c90e74e0440a
2019-12-31IVGCVSW-4246 Clean build of ArmNN API with -WextraFrancis Murtagh
Change-Id: I6003d2f82ca02d926dd95abee712337783eacfc7 Signed-off-by: Derek Lamberti <derek.lamberti@arm.com> Signed-off-by: Francis Murtagh <francis.murtagh@arm.com>
2019-11-15NNXSW-1853 Change SubgraphViewSelector algorithmRob Hughes
The current algorithm in SubgraphViewSelector has a bug that can lead to it producing subgraphs which have a dependency cycle (see the newly added test case 'ValidMerge' for a repro). It also fails to merge subgraphs in some cases where it could, which leads to smaller subgraphs. In the case of FSRCNN, the NPU cannot support these smaller subgraphs and so this is blocking us from supporting that network. This commit changes the algorithm to fix the dependency bug and also make it so that subgraphs are merged in the cases that were missed before. It also adds some unit tests to cover cases that were problematic before, and to extend coverage for the new algorithm. The new algorithm has two downsides compared to the previous one: 1. Disjoint subgraphs are not merged. This can never lead to a failed compilation by the NPU and so I believe this is less of an issue than the previous algorithm's "missed merges". This could however lead to a runtime performance loss in some cases as the NPU will be unable to parallelise as many operations. There are some unit tests that cover this which I have disabled. 2. The performance is worse. I have spent some time analysing this and for a graph with ~1000 layers the new algorithm takes 20ms vs. the old algorithm's 4ms (on my desktop PC). I believe the performance is still within acceptable limits. I also compared inception V3 (which was the network which caused performance issues with the original version of the splitting algorithm) and this new algorithm has not regressed there (200-300us in both cases). Change-Id: I1dd64a779f272723621e04d203b5a2752a6af2ef Signed-off-by: Robert Hughes <robert.hughes@arm.com>
2019-05-28IVGCVSW-3119 Rename MergerLayer to ConcatLayerJim Flynn
!android-nn-driver:1210 Change-Id: I940b3b9e421c92bfd55ae996f7bc54ac077f2604 Signed-off-by: Jim Flynn <jim.flynn@arm.com>
2019-05-10IVGCVSW-3034 Adding a unit test to check substituteSubGraphDavid Monahan
now works when substituting layers from another Graph Signed-off-by: David Monahan <david.monahan@arm.com> Change-Id: Iebd21a4975dd0ea1fc9d62708555dae4b1809623
2019-05-08IVGCVSW-3031 Finer grained backend optimization APIDerek Lamberti
Change-Id: I9b93bc81b97f3d89fa046ba001854f732040e63a Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
2019-05-07IVGCVSW-2989 Generate subgraphs without cyclic dependenciesDerek Lamberti
Change-Id: I45f81aa4ca8a964e423594fe271825c4a52b21f4 Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
2019-05-03IVGCVSW-3029 Remove any AddLayer capabilities from SubgraphViewMatteo Martincigh
* Removed the reference to the parent graph in SubgraphView * Removed the AddLayer method in SubgraphView * Updated the code where necessary to adapt to the new changes in SubgraphView * Fixed a check in the CreatePreCompiledWorkloadTest test function Change-Id: I4d3af87f11ec3cd8f18a21b250a2d295da56e1a0 Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
2019-04-30IVGCVSW-2405 Rename SubGraph to SubgraphViewDerek Lamberti
Change-Id: Ie50aeccf053c20c3a01a75042bbc3acd824375af Signed-off-by: Derek Lamberti <derek.lamberti@arm.com> Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>