aboutsummaryrefslogtreecommitdiff
path: root/src/armnn
AgeCommit message (Collapse)Author
2019-06-12IVGCVSW-3261 Add Quantizer support for SpaceToDepth layerAron Virginas-Tar
Change-Id: Ic08e38fe10ca1abd79c6e4b1a83dc9a929686b56 Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com>
2019-06-12IVGCVSW-3258 Add front end support for new SpaceToDepth layerAron Virginas-Tar
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: Id677e29a734f2b36483d939ad370079bdc11551e
2019-06-11IVGCVSW-3253 Refactor MonotonicClockRaw in WallClockTimerAron Virginas-Tar
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: I759aaeff4e543c36047698716bd99bac4e4092d3
2019-06-07IVGCVSW-3228 Fix bias quantization to be INT32 not QAsymm8Francis Murtagh
* Add function to calculate bias tensor quantization scale from input and weights scales. * Change visitor method of Conv2d, DepthwiseConv and FullyConnected to use the new function. * Fix Unit tests to expect correctly calculated quantization parameters. Change-Id: Ic36f47ceea81243c813d74ccf791e984c819cc71 Signed-off-by: Francis Murtagh <francis.murtagh@arm.com>
2019-06-07Github #140 Use snprintf instead of strncpyMatthew Bentham
Change-Id: I4da3b390d60da76754bbab016a656fbaf37d7df5 Signed-off-by: Matthew Bentham <matthew.bentham@arm.com>
2019-06-04IVGCVSW-3212 Refactor the Reference BatchNormalization workloads toMatteo Martincigh
handle Float32 and QAsymm8 types * Removed the type-specific workload implementations * Added type-independent RefBatchNormalizationWorkload implementation * Reworked BachNormImpl to use decoders/encoders * Improved the validation of the BatchNorm queue descriptor * Fixed unit tests where necessary Change-Id: Icf3fa1332292d38ec2fa0b1cb984cab78426034b Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
2019-06-04IVGCVSW-3215 Add CreateWorkload test for Rsqrt Fp32nikraj01
Change-Id: Iea6edf90148773b12f361bfa4b1d572c5322d18b Signed-off-by: nikraj01 <nikhil.raj@arm.com>
2019-05-29Don't add redundant copiesDerek Lamberti
Change-Id: I117698ef6f96d250d55f0d9996319d45450e0c9b Signed-off-by: Derek Lamberti <derek.lamberti@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-23IVGCVSW-3082 Fix layer execution order after a subgraph substitutionMatteo Martincigh
* Moved the topological sort after the replacement of the subgraph connections (during a subgraph substitution), as the correct connections are required when sorting the graph Change-Id: I7c7ce542068a05b9b5ca36f5bd3f460a5eb97afd Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
2019-05-23IVGCVSW-2771 Fix SubTensor error in vgg16 ExecuteNetwork NEONNarumol Prangnawarat
* Add check if Sub-tensors cannot be used, call ACL function * Add computation of SplitAxis from SplitterDescriptor * Add NeonSplitterWorkload functions * Modify IsSplitterSupported to call ACL validate function if sub-tensor cannot be used * Also check if quantization parameters match when using sub-tensors * Add more unit tests for Splitter in TfParser and TfLiteParser Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Change-Id: I31e4c7d055117c83c65b598c4125442173242226
2019-05-22IVGCVSW-3132 Reintroduce SubGraph definition, but deprecatedMatteo Martincigh
* Restored old SubGraph class definition as an alias of SubgraphView for backward compatibility * Restored SubGraphUniquePtr * Restored CreateSubGraphConverter method (and the corresponding ISubGraphConverterPtr type) as a deprecated method that's been removed from the backend interface * Chaged the defautl implementation of OptimizeSubgraphView to call the deprecated OptimizeSubGraph * Changed the default implementation of OptimizeSubgraphView in the backends Change-Id: If69903926bf5ff2aae52c9b64b4572b355662757 Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
2019-05-22IVGCVSW-3081 Quantizer min>=max error & missing layersLes Bell
* relaxed the check to min > max in the quantization schemes * added missing layer support for resnet_v2_50 model * Pad, Rsqrt, Multipilcation, Subtraction, Mean * sorted methods alphabetically in Quantizerlayer & LayerVisitorBase Change-Id: I003401ff7ac89b60580c959ea8fd9d6fef66b88e Signed-off-by: Les Bell <les.bell@arm.com>
2019-05-22IVGCVSW-3088 Update the backends README fileMatteo Martincigh
* Updated the src/backends/README.md file with details on the new OptimizeSubgraphView method * Added section describing the new OptimizationViews class * Deprecated GetOptimizations in the code Change-Id: Icb1a9aa015394e56fb4b5120b0645a752f44134e Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
2019-05-21IVGCVSW-3015 Fix duplicate input/output slots in sub-graphMatteo Martincigh
* Avoid collecting duplicate input/output slots during the sub-graph selection process * Fixes the InceptionV3 quantized run Change-Id: I737ec8576d57184d3d25bda436a7776ec7243a0d Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
2019-05-20IVGCVSW-3125 Deprecate CreateMergerDescriptorForConcatenation functionJim Flynn
!android-nn-driver:1183 Change-Id: Ia69995b7f09cb86b64611e8efd315413e3064ca1 Signed-off-by: Jim Flynn <jim.flynn@arm.com>
2019-05-20IVGCVSW-3030 Add unit testing for the Optimization APIMatteo Martincigh
* Added OptimizeSubgraphViewTests file covering a number of use cases for the Optimization API * Fixed a bug in the sub-graph selector algorithm that skipped the first layer in a sub-graph if it wasn't an input layer * Changed the graph splitting logic to make use of maps instead of unordered_maps to keep the split sub-graphs in consistent order between executions * Added more common unit test utils * Minor fixes to comply to the include file conventions Change-Id: Iad464eaedd004109e5ef41aa487cea3ad86177d3 Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
2019-05-20IVGCVSW-3124 Rename workloadFactory CreateMerger to CreateConcatJim Flynn
Change-Id: Id836372c0e4ef0c3996085facc4da6263366abcf Signed-off-by: Jim Flynn <jim.flynn@arm.com>
2019-05-20IVGCVSW-2967 Support QSymm16 for Constant workloadsNina Drozd
* Validate that output is any of supported types in WorkloadData * Validate that output is any of supported types in RefLayerSupport * Add test for constant with QuantisedSymm16 in LayerTests * Add test for creating constant workload in RefCreateWorkloadTests * Add test for constant with QuantisedSymm16 in RefLayerTests * Refactor RefConstantWorkload - BaseWorkload instead of TypedWorkload * Refactor RefConstantWorkload - remove m_RanOnce, use PostAllocationConfigure() Signed-off-by: Nina Drozd <nina.drozd@arm.com> Change-Id: Ic30e61319ef4ff9c367689901f7c6d498142a9c5
2019-05-14Use the new deprecation APIMatteo Martincigh
* Used the new ARMNN_DEPRECATED_MSG macro instead of @deprecated * Refactored the code to no longer use the deprecated methods where applicable !android-nn-driver:1126 Change-Id: Ib0578d3d6fc5a763f5fb922f67ba91fafc7796f6 Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
2019-05-14IVGCVSW-3076 Add ConcatLayer methods to public APIJim Flynn
!android-nn-driver:1120 Change-Id: I5192fa3deb4ea9766d38ad0bf4dfbfa0b4924c41 Signed-off-by: Jim Flynn <jim.flynn@arm.com>
2019-05-13MLCE-101: Adding dilation support in conv and dconvPablo Tello
Added support for dilation in DepthwiseConvolution2d in the Neon and CL backends. Change-Id: Ie1522b498c07f80d6efcf9dc79e926c8cfa06ca5 Signed-off-by: Pablo Tello <pablo.tello@arm.com>
2019-05-13IVGCVSW-3035 Correct gamma variable nameNarumol Prangnawarat
Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Change-Id: I309dd176fe6ce1216f4259c24c306c7592827841
2019-05-13IVGCVSW-3058 Segmentation fault running Resnetv2.50 tfite int8 modelMatteo Martincigh
* The execution crashed because the weights of a convolution were null during the network execution * Copied the weights and bias when folding a pad layer into a convolution Change-Id: I3ae72143d04cac90d4f878cdf3b1a08b2f2a5c90 Signed-off-by: Matteo Martincigh <matteo.martincigh@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-10IVGCVSW-3034 Updates to SubstituteSubGraph andDavid Monahan
ReplaceSubgraphConnections to support Graphs instead of SubGraphViews * Added layer iteration function to SubgraphView similar to the Graph's one * Updated SubstituteSubgraph to reparent the layers to the calling graph Signed-off-by: David Monahan <david.monahan@arm.com> Change-Id: Ib2f8e70decca4a59c53ceb127e07ef5a430d1005
2019-05-10IVGCVSW-3030 Refactor code and fix OptimizeSubgraphViewMatteo Martincigh
* Refactored the Optimizer code for readibility, in view of upcoming changes * Rename one of the ISubgraphViewConverter interface methods to give it a more meaningful name * Improved the OptimizationViews class, added comments and useful funtion overloads * Fixed an error in the default implementationof the new OptimizeSubgraphView method in IBackendInternal Change-Id: I683a56d562aa093bac06f0e83fb13e144ed81485 Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
2019-05-10IVGCVSW-3030 Added move operators to the Graph classMatteo Martincigh
* Updated the LayerInGraph class to properly support the new Reparent operation * Improved the Graph class destruction process to take into account eventual reparent layer operations * Added new ForEachLayerInGraph utility function to safely loop through all the layers in the graph Change-Id: Ie67cbdee0c3c8625662ebfa00f860ae0d2fac59c Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
2019-05-10IVGCVSW-3061 Modify NetworkQuantizer to support option to preserve ↵Nattapat Chaimanowong
input/output types * Also add unit tests for new preserve type option Signed-off-by: Nattapat Chaimanowong <nattapat.chaimanowong@arm.com> Change-Id: I860759072f2e3546698118d1bcd5e79eb4e805ec
2019-05-09IVGCVSW-3030 Make the OptimizationViews class move-assignableMatteo Martincigh
* Added move-constructors and move-assigment operators to both the OptimizationViews and Graph classes Change-Id: I3f923dc58e849479ff6589dcd39dece2790172cb Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
2019-05-09IVGCVSW-3031 Reparent layer to new graphDerek Lamberti
Change-Id: Ic4423b8d21d794f44ddae291853e0e3b89d11bc0 Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
2019-05-08IVGCVSW-2833 Add Dynamic QuantizationJim Flynn
Change-Id: Iba91e3f3625639f01d66f81a9f3e419e0e285d66 Signed-off-by: Jim Flynn <jim.flynn@arm.com>
2019-05-08IVGCVSW-2900 Adding the Accuracy Checker Tool and testsÉanna Ó Catháin
Change-Id: I4ac325e45f2236b8e0757d21046f117024ce3979 Signed-off-by: Éanna Ó Catháin <eanna.ocathain@arm.com>
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-3067 Fix issue with QuantizerVisior not setting TensorShape correctlyNattapat Chaimanowong
* Also update unit tests for the quantizer to check the input and output shape of the network Signed-off-by: Nattapat Chaimanowong <nattapat.chaimanowong@arm.com> Change-Id: Ie804d852f2a4770d98dfb4dab6415f3d0fdd2ce4
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-3014 Add GetSupportedBackends to IDeviceSpecNarumol Prangnawarat
Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Change-Id: I8d6474389376f715074bfa7a75613dbda35bcc6a
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-05-03IVGCVSW-2834 Add dynamic quantization via datasetsNina Drozd
* Add QuantizationDataSet class for quantization data parsed from CSV file * Add QuantizationInput for retrieving quantization data for each layer ID * Add unit tests for command line processor and QuantizationDataSet Change-Id: Iaf0a747b5f25a59a766ac04f7158e8cb7909d179 Signed-off-by: Nina Drozd <nina.drozd@arm.com>
2019-04-30IVGCVSW-3021 Add end-to-end flow control integration testMatthew Bentham
Currently asserts that the net fails to optimise as that is the expected behaviour, but it's complete enough to exercise most of the code in SwitchLayer.cpp and MergeLayer.cpp Also, fix a bug in SwitchLayer::ValidateTensorShapesFromInputs found by the new test. Also, make topological sort slightly more robust to missing connections as it should not be the job of the sorter to validate the graph. Change-Id: I30b9e2d4769ab14a6820284871a79a5bb3eef1ef Signed-off-by: Matthew Bentham <matthew.bentham@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>
2019-04-29IVGCVSW-2657: Fix to force correct quantisation parameters for QASYMM8 SoftmaxDavid Monahan
Signed-off-by: David Monahan <david.monahan@arm.com> Change-Id: I0989ea843714ba1d5da756bb87ddefa3706b07eb
2019-04-23IVGCVSW-2918 Implement ExecutionFrame.Teresa Charlin
*Add interface IExecutionFrame. *Add basic implementation ExecutionFrame. *Add Unit Test Change-Id: I960ac84a05c0c9b03735ec5e9c63f6f8f95b57b5 Signed-off-by: Kevin May <kevin.may@arm.com> Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com> Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com>
2019-04-19IVGCVSW-2925: Combine Pad with Convolution2d in the OptimizerNina Drozd
* Added new optimization for folding pad layer into convolution2d layer following it * Added new test in OptimizerTests.cpp * Added new optimization into All optimizations * Added call to new optimization in Optimize in Network.cpp * Updated CMakeLists.txt Signed-off-by: Nina Drozd <nina.drozd@arm.com> Change-Id: I682e07c71bbd42c49c02dda30a848a9ab2b16e7e
2019-04-18IVGCVSW-2980 Build ArmNN with the latest version of the driver stack libraryMatteo Martincigh
* Changed the pre-compiled object held by the pre-compiled layer into a unique pointer, so that now the layer has the ownership of it * Changed the pre-compiled object held by the descriptor and the workload into a naked pointer, to leave the ownership to the layer Change-Id: I4a582e45ca0aa3978e8e40b786c743a6eddce852 Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
2019-04-16IVGCVSW-2957 MergerLayer subtensor optimization now backend agnosticDerek Lamberti
+ Update clframework pin + Cl and Neon Merger workloads updated to use MemoryLayout agnostic API + Workloads only use sub-tensor optimization if ALL input tensors are sub-tensors + Refactor LayerSupportCommon code to be a bit more succinct Change-Id: Ib61ad4ccbd767e924dff07e61022e0cda4069828 Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
2019-04-10IVGCVSW-2947 Remove boost dependency from include/TypesUtils.hppAron Virginas-Tar
!android-nn-driver:968 Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: I03ccb4842b060a9893567542bfcadc180bbc7311
2019-04-10IVGCVSW-2946 RefElementwiseWorkload configures prior to first executeDerek Lamberti
+ Added PostAllocationConfigure() method to workload interface + Elementwise function now deduces types based on Functor - Replaced RefComparisonWorkload with RefElementwiseWorkload specialization + Fixed up unit tests and minor formatting Change-Id: I33d08797767bba01cf4efb2904920ce0f950a4fe Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
2019-04-08IVGCVSW-2927 Fix Streamline annotationsMatthew Bentham
Change-Id: Ia3f4852e6ba1358c6798210ecf94105a130cb1b9 Signed-off-by: Matthew Bentham <matthew.bentham@arm.com>
2019-04-05IVGCVSW-2914 Add Switch Layer and no-op factory methodSadik Armagan
Change-Id: I6a6ece708a49e8a97c83a3e7fec11c88af1e1cfa Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com>