Age | Commit message (Collapse) | Author |
|
Signed-off-by: Matthew Bentham <Matthew.Bentham@arm.com>
Change-Id: I78c389148fbb733115e97f40d5271f47d3750c75
|
|
This fixes a one-definition-rule violation
Change-Id: I0941ed21a04876009546b9b73f5fdfbf73c4110d
Signed-off-by: Matthew Bentham <Matthew.Bentham@arm.com>
|
|
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>
|
|
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com>
Change-Id: Iea09539c92d51e546fbad8b2903b59fc08d66618
|
|
* Moved QuntizeHelper.hpp to armnnUtils
* Reordered parameters for QuantizedVector and added default
values for qScale and qOffset to make life easier when
using the function for non-quantized types such as Float16
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com>
Change-Id: I28c263dfa425f1316feccb4116839a84f5d568e5
|
|
* Added network level unit tests with different number of inputs
and outputs.
Signed-off-by: Colm Donelan <Colm.Donelan@arm.com>
Change-Id: I251296ca98a34f459181fed32343e7c579938eab
|
|
* Added Quantizer test for StandIn Layer
Signed-off-by: Sadik Armagan <sadik.armagan@arm.com>
Change-Id: I48bb9cadb48e20ee8e5b3dcf9e2f9fdb3b68351d
|
|
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com>
Change-Id: Iab9b234d233591391a8e8626b7e8df3b7b0770a0
|
|
* Added frontend for ComparisonLayer
* Added RefComparisonWorkload
* Deprecated and removed Equal and Greater layers and workloads
* Updated tests to ensure backward compatibility
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com>
Change-Id: Id50c880be1b567c531efff919c0c366d0a71cbe9
|
|
* Implemented operator==() for Descriptor structs
* Refactored TestNameAndDescriptorLayerVisitor to eliminate code duplication
by using templates and taking advantage of the fact that descriptor objects
can now all be compared the same way using ==
* Cleaned up TestNameOnlylayerVisitor by moving all test cases for layers
that require a descriptor to TestNameAndDescriptorLayerVisitor
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com>
Change-Id: Iee38b04d68d34a5f4ec7e5790de39ecb7ab0fb80
|
|
Signed-off-by: Sadik Armagan <sadik.armagan@arm.com>
Change-Id: I907f9b585f7ecd079c9cdd3c2edb6c473bf1d215
|
|
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com>
Change-Id: Ic6acc7176deea3753b32ce6340f642d19dce0e9f
|
|
Signed-off-by: James Conroy <james.conroy@arm.com>
Change-Id: I469895da158b062cd19248832525fa21527f7d41
|
|
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com>
Change-Id: I175008c81da028fb5bdc71e0abff06bc6e58734c
|
|
functions
Change-Id: I940b7ca706c9a8bc38743176eb7959aa629a6876
Signed-off-by: David Monahan <david.monahan@arm.com>
|
|
Signed-off-by: Kevin May <kevin.may@arm.com>
Change-Id: Ib152148ccd8d2733c617d0cf9402661fc6b71316
|
|
* Only run breaking test if Ref backend is available
Signed-off-by: Kevin May <kevin.may@arm.com>
Change-Id: I64850c902f7b900fe9f50d357c283c9a2bf73c19
|
|
into DepthToSpace
This is only possible in some limited cases, but removes an extra
layer from the graph and so should improve performance in all cases.
Change-Id: I7b3e6ba5dacb4fdb816ad270edaecda1436ab4cf
Signed-off-by: Rob Hughes <robert.hughes@arm.com>
|
|
This splits up the >1000 line OptimizerTests.cpp file.
Each Optimization class now has its own test file, all of which are in a
subfolder of tests called "optimizations".
The original OptimizerTests.cpp now contains mostly (completely?) tests
for validating output shapes, which perhaps should be moved to
test files specific to the layer types they are testing.
Change-Id: Icd1196cad8b720abcb156921aab1adbd4026756b
Signed-off-by: Rob Hughes <robert.hughes@arm.com>
|
|
Signed-off-by: David Monahan <david.monahan@arm.com>
Change-Id: I7213788725fd4e4cf1176998604e999d0b7ed6cc
|
|
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com>
Change-Id: I144c04f920ba3329886367f5e73fe758505ab96e
|
|
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com>
Change-Id: I18d957af6e988ffb6b9ee46ac836d1f38600e10b
|
|
Change-Id: I7582a9ee36b4d1764a5a137cefe9b7b7dfe30254
Signed-off-by: Nikhil Raj <nikhil.raj@arm.com>
|
|
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com>
Change-Id: I72bc00888d416fee177ea2e6e5006f8ff04f612e
|
|
* Defined macros for common class structure and near-identical
test cases
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com>
Change-Id: I47a2ece3e1797496c196f63c7fcd71e5748295c6
|
|
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com>
Change-Id: Iebe675a0cee02db6f133d48ce58cbc1e233061db
|
|
This prevents unintended conversions that could lead to incorrect code
compiling, e.g. Optional<a> == Optional<b>
Also add comparison (==) operator to compare two Optionals.
Update unit tests accordingly
Change-Id: I6f975de7e666ba1ffe16c3ab50643116c6317135
Signed-off-by: Rob Hughes <robert.hughes@arm.com>
|
|
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com>
Change-Id: Idf40ed0ebf2af3170137bf3a3cb5a9635a203d4a
|
|
Signed-off-by: FinnWilliamsArm <Finn.Williams@arm.com>
Change-Id: I3f8e716ae432737bb314e26792d18aa518aa1952
|
|
* Renamed ARMCOMPUTEREF to ARMNNREF (and relative symbols) as the
previous name was misleading
!android-nn-driver:1819
Change-Id: I912e9f521750b91539e48f8a2fb4de73fb6f7425
Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
|
|
* Made the build of the reference backend depend on a new ARMCOMPUTEREF
macro
* Made the relevant targets dependent on the ref backend
* Moved Cl and Neon static registry initializers to separate files
* Wrapped some of the unit tests into proper ifdefs where necessary
Change-Id: I7f2c42699682630233a4c4b6aed2f005083de189
Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
|
|
Signed-off-by: Ferran Balaguer <ferran.balaguer@arm.com>
Change-Id: I94bd191f88e0911ad4e4727610e81cd7afa95512
|
|
* Increased MaxNumOfTensorDimensions and fixed issues related to its use
* Fixed issues caused by assuming 5d tensors are invalid
* Updated ArmComputeTensorUtils for 5d tensors
* Added 5d tensor unit tests for add, mul, stack and reshape (needed by IVGCVSW-3527)
Signed-off-by: Matthew Jackson <matthew.jackson@arm.com>
Change-Id: I5bcd64942d0d04efcc6c5acb240ad4b88e010743
|
|
Signed-off-by: James Conroy <james.conroy@arm.com>
Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com>
Change-Id: I9f24f7d97c1e7d37ee7d58ff85c6c3f8496e52ec
|
|
Change-Id: Ide5acbf993c2bcff5265b72fc979caa6f183bb22
Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
|
|
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com>
Change-Id: I10b8d5e2e95eb8f48a6be29005136459c3da2957
|
|
* Rename MemoryStrategy to EdgeStrategy
* Add MemImportLayer
* Import memory rather than copy when possible
Change-Id: I1d3a9414f2cbe517dc2aae9bbd4fdd92712b38ef
Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
|
|
!android-nn-driver:1685
Signed-off-by: Ferran Balaguer <ferran.balaguer@arm.com>
Signed-off-by: Matthew Bentham <matthew.bentham@arm.com>
Change-Id: I17278562f72d4b77e22c3af25bf7199b9150a765
|
|
TransposeConvolution2dLayer::InferOutputShapes
Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com>
Change-Id: I2e3d5922bb89c8f3b84ff5458fda981ff177c3ce
|
|
* Added Layer and Create Workload tests
for the new Quantized LSTM layer.
* Tests to be enabled on NEON and CL in
their respective patches.
Signed-off-by: James Conroy <james.conroy@arm.com>
Change-Id: I7e9e9768dd63010ab58367c45fffcff452377cfb
|
|
* Added CL backend support for Stack
* Added unit tests for Stack on the CL backend
* Refactored unit tests to support generic data types
Signed-off-by: Matthew Jackson <matthew.jackson@arm.com>
Change-Id: I38ee3e9d8947ea98a3104c982698001e704d7d89
|
|
Take a copy of the MemoryStrategies for a layer before inserting
new connections. Use the copy when looking up the original MemoryStrategies
during the graph transformation.
Fix the unit tests for AddCopyLayers to have cases where copies are needed.
Fix the validation for clarity and correctness - was previously comparing
Layers by pointer when it should have been by name (as it was comparing
with a cloned graph).
Change-Id: Ie282dc11913e977b8151ce1ad8bfba5e11617d40
Signed-off-by: Matthew Bentham <Matthew.Bentham@arm.com>
|
|
* Add check in CL and Neon to ensure axis is 1 otherwise
return unsupported.
* Edit CreateWorkload test and JsonPrinter test to ensure axis of 1.
Change-Id: I499b405532e26fefc2dd1c18b6dc6005813b5604
Signed-off-by: Francis Murtagh <francis.murtagh@arm.com>
|
|
* Added new layer QuantizedLstm (Android Q)
* Made necessary changes to APIs
* Added unit tests
Change-Id: I3b9f16b0e7e49f51932cf204c87cb7118798123a
Signed-off-by: James Conroy <james.conroy@arm.com>
|
|
* Convolution2d, DepthwiseConvolution2d & TransposeConvolution2d
Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com>
Change-Id: I2490c684765d8c7349183572f46e86c201b8eefd
|
|
* Replace u_int32_t with uint32_t
* Replace size_t with uint32_t for initializer list of TensorInfo
* Replace variable size arrays with std::vector
* Replace reference to local variable during its initialisation
Change-Id: I298b3995f1525f90a1ab2416d7e270315698fae3
|
|
* Added reference workload for the Stack layer
* Added factory methods
* Added validation support
* Added unit tests
Signed-off-by: Matthew Jackson <matthew.jackson@arm.com>
Change-Id: Ib14b72c15f53a2a2ca152afc357ce2aa405ccc88
|
|
* Evaluate model accuracy using category names instead of numerical
labels.
* Add blacklist support
* Add range selection support
Signed-off-by: SiCong Li <sicong.li@arm.com>
Change-Id: I7b1d2d298cfcaa56a27a028147169404b73580bb
|
|
* Implemented VisitStackLayer
* Added unit test for Stack layer quantization
Signed-off-by: Matthew Jackson <matthew.jackson@arm.com>
Change-Id: I6f708543711c3600fa6c78d6d1f41ef14bbb90bb
|
|
Change-Id: I08640891a206b40da478fdaa7634e7a2f76784af
Signed-off-by: Matthew Bentham <matthew.bentham@arm.com>
|