Age | Commit message (Collapse) | Author |
|
* Fixed an error encountered when building on GCC 9
error: moving a local object in a return statement prevents copy elision
* Fixed failures in unit tests due to std::initializer_list handling in GCC 9
Change-Id: I4bfdd2113dfedcecd29479ee556e4ae22278755d
Signed-off-by: Mike Kelly <mike.kelly@arm.com>
|
|
Change-Id: Ic08e38fe10ca1abd79c6e4b1a83dc9a929686b56
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com>
|
|
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com>
Change-Id: Id677e29a734f2b36483d939ad370079bdc11551e
|
|
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com>
Change-Id: I759aaeff4e543c36047698716bd99bac4e4092d3
|
|
* 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>
|
|
Change-Id: I4da3b390d60da76754bbab016a656fbaf37d7df5
Signed-off-by: Matthew Bentham <matthew.bentham@arm.com>
|
|
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>
|
|
Change-Id: Iea6edf90148773b12f361bfa4b1d572c5322d18b
Signed-off-by: nikraj01 <nikhil.raj@arm.com>
|
|
Change-Id: I117698ef6f96d250d55f0d9996319d45450e0c9b
Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
|
|
!android-nn-driver:1210
Change-Id: I940b3b9e421c92bfd55ae996f7bc54ac077f2604
Signed-off-by: Jim Flynn <jim.flynn@arm.com>
|
|
* 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>
|
|
* 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
|
|
* 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>
|
|
* 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>
|
|
* 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>
|
|
* 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>
|
|
!android-nn-driver:1183
Change-Id: Ia69995b7f09cb86b64611e8efd315413e3064ca1
Signed-off-by: Jim Flynn <jim.flynn@arm.com>
|
|
* 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>
|
|
Change-Id: Id836372c0e4ef0c3996085facc4da6263366abcf
Signed-off-by: Jim Flynn <jim.flynn@arm.com>
|
|
* 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
|
|
* 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>
|
|
!android-nn-driver:1120
Change-Id: I5192fa3deb4ea9766d38ad0bf4dfbfa0b4924c41
Signed-off-by: Jim Flynn <jim.flynn@arm.com>
|
|
Added support for dilation in DepthwiseConvolution2d in the
Neon and CL backends.
Change-Id: Ie1522b498c07f80d6efcf9dc79e926c8cfa06ca5
Signed-off-by: Pablo Tello <pablo.tello@arm.com>
|
|
Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com>
Change-Id: I309dd176fe6ce1216f4259c24c306c7592827841
|
|
* 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>
|
|
now works when substituting layers from another Graph
Signed-off-by: David Monahan <david.monahan@arm.com>
Change-Id: Iebd21a4975dd0ea1fc9d62708555dae4b1809623
|
|
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
|
|
* 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>
|
|
* 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>
|
|
input/output types
* Also add unit tests for new preserve type option
Signed-off-by: Nattapat Chaimanowong <nattapat.chaimanowong@arm.com>
Change-Id: I860759072f2e3546698118d1bcd5e79eb4e805ec
|
|
* 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>
|
|
Change-Id: Ic4423b8d21d794f44ddae291853e0e3b89d11bc0
Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
|
|
Change-Id: Iba91e3f3625639f01d66f81a9f3e419e0e285d66
Signed-off-by: Jim Flynn <jim.flynn@arm.com>
|
|
Change-Id: I4ac325e45f2236b8e0757d21046f117024ce3979
Signed-off-by: Éanna Ó Catháin <eanna.ocathain@arm.com>
|
|
Change-Id: I9b93bc81b97f3d89fa046ba001854f732040e63a
Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
|
|
* 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
|
|
Change-Id: I45f81aa4ca8a964e423594fe271825c4a52b21f4
Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
|
|
Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com>
Change-Id: I8d6474389376f715074bfa7a75613dbda35bcc6a
|
|
* 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>
|
|
* 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>
|
|
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>
|
|
Change-Id: Ie50aeccf053c20c3a01a75042bbc3acd824375af
Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
|
|
Signed-off-by: David Monahan <david.monahan@arm.com>
Change-Id: I0989ea843714ba1d5da756bb87ddefa3706b07eb
|
|
*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>
|
|
* 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
|
|
* 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>
|
|
+ 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>
|
|
!android-nn-driver:968
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com>
Change-Id: I03ccb4842b060a9893567542bfcadc180bbc7311
|
|
+ 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>
|
|
Change-Id: Ia3f4852e6ba1358c6798210ecf94105a130cb1b9
Signed-off-by: Matthew Bentham <matthew.bentham@arm.com>
|