aboutsummaryrefslogtreecommitdiff
path: root/src/armnn
AgeCommit message (Collapse)Author
2019-12-18IVGCVSW-4268 Print all Descriptors on dot graphJim Flynn
Change-Id: Ibc174f244bc72ff928879b0ea32f4f2c51f3a3b7 Signed-off-by: Jim Flynn <jim.flynn@arm.com> Signed-off-by: Kevin May <kevin.may@arm.com>
2019-12-18MLCE-143 Fixed driver crash during CTS testsMike Kelly
* Only apply the Optimization when the base ReshapeLayer is connected to the child ReshapeLayer and no other Layer. Signed-off-by: Mike Kelly <mike.kelly@arm.com> Change-Id: Iccd676d657f9e7c829813f1bec9c82db8745d069
2019-12-18IVGCVSW-4293 Fix multiple Concat issues.Derek Lamberti
* Fix issue with InputLayer or ConstantLayer being used as inputs to Concat. * Fix issue with same input being used multiple times for same Concat. * Fix issue where input is used by multiple concats. Change-Id: Id4819aeec5a40e2afa0351838ba082b9f74aba33 Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
2019-12-17IVGCVSW-4262 Use ACL Permute and Reshape Validate function in Neon and CLKevin May
!android-nn-driver:2487 Signed-off-by: Kevin May <kevin.may@arm.com> Change-Id: Ibabb73c0ae0df2e530a68398f75c76e6b80c0701
2019-12-17IVGCVSW-4267 Add missing layers to GetLayerTypeAsCStringJim Flynn
Change-Id: I5fc8804bb8d57077fd80dcc71e8e89d52d27b35b Signed-off-by: Jim Flynn <jim.flynn@arm.com>
2019-11-27IVGCVSW-4170 Also convert constants to FP16 when model convertedDerek Lamberti
Signed-off-by: Derek Lamberti <derek.lamberti@arm.com> Signed-off-by: Kevin May <kevin.may@arm.com> Change-Id: I6318a70bd6818db55401bc667c116596e4909673
2019-11-22Github #251 Surround local structs with anonymous namespaceMatthew Bentham
This fixes a one-definition-rule violation Change-Id: I0941ed21a04876009546b9b73f5fdfbf73c4110d Signed-off-by: Matthew Bentham <Matthew.Bentham@arm.com>
2019-11-19IVGCVSW-4077 Fix issue when NEON import disabledJames Conroy
* Removes workaround which handled null dstFactory when NEON import was disabled, and now handles this in the correct way. Signed-off-by: James Conroy <james.conroy@arm.com> Change-Id: Ief42b3c52d018f0fa71be4d4d37516f2caad1e0d
2019-11-19IVGCVSW-4068 Add Guid to WorkloadNarumol Prangnawarat
* Add Guid to Workload * Remove circular dependency Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Signed-off-by: janeil01 <jan.eilers@arm.com> Change-Id: I15342fa7481c6bdc050e057dce2d74bba07fe2dd
2019-11-18Fix quantizer crash by zero tensorTee Jung
Signed-off-by: Jung Tae-young <tee.ty.jung@openedges.com> Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com> Change-Id: I1f0dfa4ca76e1c85a2b8fb5de12039a260224951
2019-11-15IVGCVSW-4119 Fix FP16 to FP32 fallback mechanism in optimizer to work with ↵Aron Virginas-Tar
Dequantize * Check for output data type as well as input data type when determining whether we should attempt to fall back to FP32 if FP16 is not supported * Override output type for Dequantize in IsLayerSupported() instead of input type * Updated original input type from FP16 to FP32 in InsertConvertFp32ToFp16LayersAfter() Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: Ic6477fd17cea5a91bd8bf9ae0cf836520897d5b7
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-11-14Add SpaceToDepth to GetLayerTypeAsCString()Aron Virginas-Tar
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: I263c78e02238fa7c7f9ab6408fb197664e5fe048
2019-11-12IVGCVSW-4069 Add ProfilingGuid to NetworkJan Eilers
Added ProfilingGuid to * INetwork, * Network, * IOptimizedNetwork and * OptimizedNetwork !android-nn-driver:2234 !armnn:2250 Signed-off-by: Jan Eilers <jan.eilers@arm.com> Change-Id: I235116992cc47b4f385b7eb9da514c6350ca00f4
2019-11-08IVGCVSW-4067 Change LayerGuid to use ProfilingGuidjaneil01
* Refactoring to enable ProfilingGuid * Add profiling includes to Android.mk Signed-off-by: Jan Eilers <jan.eilers@arm.com> Change-Id: Ieb25e15e3dc302eb42817d824ad8411ac76dcfe8
2019-11-08IVGCVSW-4077 Disable NEON memory importJames Conroy
* Temporarily handles cases in CalculateEdgeStrategy where dstFactory pointer is null when import is disabled. * This patch is required for ensuring debug layer works correctly when executing a model on Neon. Signed-off-by: James Conroy <james.conroy@arm.com> Change-Id: I7304723246d362d6d9073c3d0b1224e194a8532c
2019-11-06IVGCVSW-3837 Add support for per-axis quantization to reference ↵Aron Virginas-Tar
Convolution2d workload Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: I0ac08ba4864d48e6f64c4ac645dad8ea850be112
2019-11-05Rename Optimize's errMessages to messagesRob Hughes
This parameter can contain both errors and warnings, so calling it errMessages is confusing as the user only expects to see errors here. Ideally this rename should be propagated to the lower layers of the implementation, but the public header change is the most useful part. Change-Id: I062564cf38d36f950adfa7c37c090b189e068134
2019-11-04IVGCVSW-3835 Create Encoder and Decoder for QSymm8PerAxisKeith Davis
* Add QuantizedSymm8PerAxis to armnn DataType (types.hpp) and * Add Quantize and Dequantize template for int8 in TypeUtils to be able to compute QSymm8 of the weight * Create PerAxisIterator for per-axis quantization * Create QSymm8PerAxisDecoder * Create QSymm8PerAxisEncoder Signed-off-by: Keith Davis <keith.davis@arm.com> Change-Id: Ibcfe0288a197b7ee50b543bdbd77b7edb8a547c2
2019-11-01Better error reporting for unconnected layersMatthew Bentham
Change-Id: I3c461e5449cf4bfa94d6d5e8dee03c210f2734e5 Signed-off-by: Matthew Bentham <Matthew.Bentham@arm.com>
2019-11-01GitHub #292 Build the ML-examples using only ArmNN's public frontend APIMatteo Martincigh
* Refactoring of some of the public API headers Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com> Change-Id: I9006fe49945b10a6b83908b05aa4a6556639b491
2019-10-31GitHub #292 Move BackendRegistry.hpp to the public APIMatteo Martincigh
* Moved to BackendRegistry.hpp include/armnn * Updated makefiles and sources accordingly Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com> Change-Id: I4d83abb581d523218a880c879fcf30c9611f7fd7
2019-10-30IVGCVSW-3831 Add support of per-axis quantization to TensorInfoAron Virginas-Tar
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: Iea09539c92d51e546fbad8b2903b59fc08d66618
2019-10-25IVGCVSW-4018 Move QuantizeHelper.hpp to armnnUtilsAron Virginas-Tar
* 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
2019-10-24IVGCVSW-4011 Add Unit tests for StandInLayerColm Donelan
* Added network level unit tests with different number of inputs and outputs. Signed-off-by: Colm Donelan <Colm.Donelan@arm.com> Change-Id: I251296ca98a34f459181fed32343e7c579938eab
2019-10-23IVGCVSW-4010 Add serialization support for StandInLayerAron Virginas-Tar
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: I2017c15b485b82437c6ffdac4d3112bcc2cbe9e9
2019-10-23IVGCVSW-4013 Test that the quantizer fails gracefullySadik Armagan
* Added Quantizer test for StandIn Layer Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: I48bb9cadb48e20ee8e5b3dcf9e2f9fdb3b68351d
2019-10-22IVGCVSW-3995 Add Quantizer support for ComparisonLayerAron Virginas-Tar
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: Iab9b234d233591391a8e8626b7e8df3b7b0770a0
2019-10-21IVGCVSW-4009 Get string name for StandInLayer typeDerek Lamberti
Change-Id: I6808937bd35a2419814d04016b780efa6bb8724c Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
2019-10-21IVGCVSW-4009 StandInLayer frontend APIDerek Lamberti
Change-Id: I058c57b554769799c6775813215070ef47790e3d Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
2019-10-21IVGCVSW-3993 Add frontend and reference workload for ComparisonLayerAron Virginas-Tar
* 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
2019-10-16IVGCVSW-3991 Make Descriptor objects comparable and refactor LayerVisitor testsAron Virginas-Tar
* 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
2019-10-15IVGCVSW-3948 Add Startup method to ProfilingJim Flynn
Change-Id: I591e84048775278bfc728e1b0c189ff4cf2d350b Signed-off-by: Jim Flynn <jim.flynn@arm.com>
2019-10-15IVGCVSW-3976 Add Quantizer support for LOG_SOFTMAXSadik Armagan
Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: I907f9b585f7ecd079c9cdd3c2edb6c473bf1d215
2019-10-11IVGCVSW-3973 Add frontend for LOG_SOFTMAXAron Virginas-Tar
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: Ic6acc7176deea3753b32ce6340f642d19dce0e9f
2019-10-10IVGCVSW-3944 Add ArgMinMax output shape validationJames Conroy
Signed-off-by: James Conroy <james.conroy@arm.com> Change-Id: I469895da158b062cd19248832525fa21527f7d41
2019-10-08IVGCVSW-3948 Add Profiling config to Runtime constructorJim Flynn
Change-Id: Ib5cb85e620ed2cd76a85d423b2674b5d80981be9 Signed-off-by: Jim Flynn <jim.flynn@arm.com>
2019-10-04IVGCVSW-3935 Add Quantizer support for INSTANCE_NORMALIZATIONAron Virginas-Tar
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: I175008c81da028fb5bdc71e0abff06bc6e58734c
2019-10-04IVGCVSW-3925 Add Backward compatibility for ITensorHandle CreateTensorHandle ↵David Monahan
functions Change-Id: I940b7ca706c9a8bc38743176eb7959aa629a6876 Signed-off-by: David Monahan <david.monahan@arm.com>
2019-10-03IVGCVSW-3932 Add frontend for INSTANCE_NORMALIZATIONKevin May
Signed-off-by: Kevin May <kevin.may@arm.com> Change-Id: Ib152148ccd8d2733c617d0cf9402661fc6b71316
2019-10-01IVGCVSW-3922 Fix Arm NN build issue - memory access violationKevin May
* Only run breaking test if Ref backend is available Signed-off-by: Kevin May <kevin.may@arm.com> Change-Id: I64850c902f7b900fe9f50d357c283c9a2bf73c19
2019-09-27NNXSW-1826 Add an optimization step which combines Permute and BatchToSpace ↵Rob Hughes
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>
2019-09-27IVGCVSW-3689 Support Import of Output Tensors for the Neon BackendFerran Balaguer
Change-Id: I6323c5f68248b54b3ed3b4cb92f1e8bf9c279b8d Signed-off-by: Ferran Balaguer <ferran.balaguer@arm.com>
2019-09-25NNXSW-1826 Move tests for Optimization classes to separate filesRob Hughes
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>
2019-09-24IVGCVSW-3900 Add deserialization test for DepthToSpaceAron Virginas-Tar
* Fixed bug in DepthToSpaceLayer::InferOutputShapes by removing leftover throw UnimplementedException * Added Deserializer/DepthToSpaceFloat32 deserialization test Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: I8fc31d0270b4de1dac45ee12c2b798df81f312a7
2019-09-24NNXSW-1826 OptimizeConsecutiveReshapes: remove unnecessary call to ↵Rob Hughes
MoveAllConnections This is called at a time when newReshape has nothing connected to its output slot (as it has just been created) and so is a no-op. The code comment indicated that the intention was to connect the newReshape to its *input*, but that has already been done in the InsertNewLayer() call above, so the comment was incorrect. There is a unit test covering this case ("OptimizeConsecutiveReshapesTest") Change-Id: I933d5d1c6eb32f5a8269fb5d7c809cd7c89680d1 Signed-off-by: Rob Hughes <robert.hughes@arm.com>
2019-09-24IVGCVSW-3623 Implement NeonTensorHandle::ImportDavid Monahan
Signed-off-by: David Monahan <david.monahan@arm.com> Change-Id: I7213788725fd4e4cf1176998604e999d0b7ed6cc
2019-09-23IVGCVSW-3887 Add Quantizer support for DepthToSpaceAron Virginas-Tar
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: I144c04f920ba3329886367f5e73fe758505ab96e
2019-09-20Fix some minor issues around SpaceToDepthAron Virginas-Tar
* Removed unnecessary code from SpaceToDepthLayer::InferOutputShapes() * Refactored SpaceToDepthQueueDescriptor::Validate() and added extra checks for block size and output depth Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: Ieeed3144e2589b2e8695ef65ce17752bc595332f
2019-09-20IVGCVSW-3883 Add frontend for DepthToSpace layerAron Virginas-Tar
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: I18d957af6e988ffb6b9ee46ac836d1f38600e10b