aboutsummaryrefslogtreecommitdiff
path: root/src/backends
AgeCommit message (Collapse)Author
2023-04-03IVGCVSW-3808 Deprecation notices for old ElementwiseBinary layersMike Kelly
* Added Deprecation notices for old ElementwiseBinary layers. Signed-off-by: Mike Kelly <mike.kelly@arm.com> Change-Id: I5bd0f186aaed675885d667f47e1e210ee9ec84f8
2023-03-31Revert "IVGCVSW-3808 Deprecation notices for old ElementwiseBinary layers"Mike Kelly
This reverts commit 52e90bf59ecbe90d33368d8fc1fd120f07658aaf. Change-Id: I5a0d244593d8e760ee7ba0c9d38c02377e1bdc24 Signed-off-by: Mike Kelly <mike.kelly@arm.com>
2023-03-30IVGCVSW-7454 Enable NonConstWeights in CpuAccTeresa Charlin
Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com> Signed-off-by: Mike Kelly <mike.kelly@arm.com> Change-Id: I74a93b1e2e5c9f12ce4523df3f21e5c0967fddfb
2023-03-30IVGCVSW-3808 Deprecation notices for old ElementwiseBinary layersMike Kelly
* Added Deprecation notices for old ElementwiseBinary layers. Signed-off-by: Mike Kelly <mike.kelly@arm.com> Change-Id: Iebbbaff38cc9c347b25eb2f9054c914a4f931c68
2023-03-14IVGCVSW-3808 Add ElementwiseBinaryLayerMike Kelly
!android-nn-driver:9329 * Added ElementwiseBinaryLayer that can represent all ElementwiseBinary operations including Add, Div, Sub, Maximum, Mul and Minimum. * Updated Delegate to use ElementwiseBinaryLayer instead of the Add, Div, Sub, Maximum, Mul and Minimum layers. * Updated Deserializer to use ElementwiseBinaryLayer instead of the Add, Div, Sub, Maximum, Mul and Minimum layers. * Updated OnnxParser to use ElementwiseBinaryLayer instead of the Add layer. * Updated TfLiteParser to use ElementwiseBinaryLayer instead of the Add, Div, Sub, Maximum, Mul and Minimum layers. * Updated CL and Neon tests to use ElementwiseBinaryLayer. * Updated CL and Neon Backend Specific Optimizations to accept ElementBinaryLayers as well as Add, Div, Mul, Sub, Maximum and Minimum layers. Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com> Signed-off-by: Mike Kelly <mike.kelly@arm.com> Change-Id: I7cbb96b60eb01f0e2b57b0541016d48a08b86c75
2023-02-21Report errors when running LoadedNetwork in End to End testsTeresa Charlin
Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com> Change-Id: I8d65673580924907db51d903d9054d1b0914493c
2023-02-10IVGCVSW-7510 Delete temporary files created by DebugTestImpl.Colm Donelan
* The test cases that use DebugTestImpl were creating temporary files but not cleaning them up after running. * Refactored FileSystem to extract a common RemoveDirectoryAndContents function. Signed-off-by: Colm Donelan <colm.donelan@arm.com> Change-Id: I35b8d2eeed286742358a9abccbc078493d033902
2023-01-25Fix incorrect copyright noticesMatthew Sloyan
* Updated headers that were missing a copyright notice. * Reverted years that were incorrectly updated. Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com> Change-Id: I65842f1e9b9fd5654563edd5090133cb3c89fecc
2023-01-24IVGCVSW-7455 Workaround to allow CLBatchMatMul to parse some 4D modelsMike Kelly
* Added ability to reduce dimension sizes when calling BuildArmComputeTensorInfo or BuildArmComputeTensorShapes, this will attempt to remove leading 1s in order to squeeze the number of dimensions but retain the size. * Changed ClBatchMatMulWorkload to attempt to squeeze the number of dimensions to 3 as the CL Gemm Kernel can only support up to 3 dimensions. Signed-off-by: Mike Kelly <mike.kelly@arm.com> Change-Id: I6b3d0886c5b97fdb686838fc3dc292833ddc4643
2023-01-23Refactor TOSA Common to be built without enabling the TOSA Reference backendMatthew Sloyan
* The only way to build TOSA common was to enable ARMNNTOSAREF. * Only include and link the required headers/libraries for TOSA Common. * Remove duplicate include_directories calls. Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com> Change-Id: Ia5a19bf5b0bb903be0248ac550439df1e8ac5aa7
2023-01-18IVGCVSW-7405 Improving error handling around creating directories.Colm Donelan
The -F execute network option creates a directory to print intermediate tensors but minor problems caused serious failures. This attempts to clean up the error handling. Signed-off-by: Colm Donelan <colm.donelan@arm.com> Change-Id: Ia44c008919b1bee299b43a672235b1fcc25bf1bd
2023-01-16IVGCVSW-7435 Making optional some CL code in Acl Common.Colm Donelan
* Some code was moved to aclcommon to facilitate GpuFsa. It causes build problems when ACL is build without CL support. Signed-off-by: Colm Donelan <colm.donelan@arm.com> Change-Id: Ia49d1fb7e69aaa8a694f402968e9ae689c2a874c
2023-01-13IVGCVSW-6493 Bug Fix on RHS permute GpuAcc Batch MatMul workload Fp32Teresa Charlin
Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com> Change-Id: I60e9284b90467f58e0acd74d3f1493546b6f1b9b
2023-01-13IVGCVSW-7173 Add Rsqrt to Tosa Ref BackendDavid Monahan
* Added ElementwiseUnary support with a mapping for Rsqrt * Added unittests * Added Rsqrt EndtoEnd tests for all backends * Changed TosaRefLayerSupport to default to false on unsupported layers Signed-off-by: David Monahan <david.monahan@arm.com> Change-Id: I3eaa9c684647ead61520a563815581aa68bee51b
2023-01-12IVGCVSW-5128 Add EndToEnd test for REDUCE_SUMTeresa Charlin
* Call Reshape EndToEnd test from 3 backends * Tidy up some naming of tests. Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com> Change-Id: I5546af35e89d352d3f1529368518aecc0a4a534b
2023-01-12IVGCVSW-7418 Allow working copy SubgraphView to get Original SlotsFrancis Murtagh
* API to remove need for workaround so backend users can get slots * OutputSlots outside the SubgraphView needed to obtain TensorInfo * Fix a few Copyright headers * Add shared_ptr back to original subgraph view using std::enable_shared_from_this Signed-off-by: Francis Murtagh <francis.murtagh@arm.com> Change-Id: I033a00d6fc4020619d406ac06a156b7e380a426a
2023-01-11Move tuning and IClTensorHandle code from cl to aclCommon backend.Cathal Corbett
* Required to enable easier future merging and rebase into experimental/GpuFsa as part of IVGCVSW-7380. Signed-off-by: Cathal Corbett <cathal.corbett@arm.com> Change-Id: I066dcf00523ff430a0908666e452548ab848bd86
2023-01-09IVGCVSW-6493 Add GpuAcc Batch MatMul workload Fp32Teresa Charlin
* GpuAcc only supports up to 3D, so no 4D test have been added Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com> Change-Id: Ie926cd45c350be624cbdc6cb27c89d2d3f60884b
2023-01-09IVGCVSW-6632 Return INetwork* not INetworkPtr& from ↵Francis Murtagh
OptimizationViews::GetINetwork() * Also provide API to return reference via GetINetworkRef(). Signed-off-by: Francis Murtagh <francis.murtagh@arm.com> Change-Id: I80f4912cb7e22a2023e9bb880182ad4610c219e9
2023-01-06IVGCVSW-7031 Generate static execute networkRyan OShea
* Build ExecNet lib dependencies as object libs except libarmnn * Disable PIPE when building static ExecNet * Remove multiple definition from AsyncExecutionCallback * Disable DynamicBackend for ExecNet Static build * Disable inference tests for TfLiteParser and ONNX during static ExecNet * Remove Tensorflow Parser if condition * Add Disable thread macro to InferenceModel * Don't compile dynamic backend symbols in Runtime.cpp for Baremetal and Exenet Static Signed-off-by: Ryan OShea <ryan.oshea3@arm.com> Change-Id: If41c063eab5f05b3df0a6e064924a36a177f116a
2023-01-04Revert "IVGCVSW-7297 When creating multiple Executors only the last"TeresaARM
This reverts commit 21cf67af47a9cebbc10a98184c204fffa3722abd. Reason for revert: IVGCVSW-7397 Segmentation fault/Bus error in Backends CI job nightly Change-Id: I563e79700a857f8cf0fce0923a7040aeda29629b
2023-01-04Fix Npu main build issueNikhil Raj
* This fixes the build failure happening in nightly job running Arm NN and EthosN main branches Signed-off-by: Nikhil Raj <nikhil.raj@arm.com> Change-Id: I2b1f861fdfef2b6025dfdcc0725b00c82fac13a8
2023-01-04IVGCVSW-7211 Fix float16 operators being wrongly unsupported with ↵Cathal Corbett
android-nn-driver. * Not a concern with the delegate/parser as tflite builtin operators have little float16 support * Will also fix float16 workloads running on the support_library. Signed-off-by: Cathal Corbett <cathal.corbett@arm.com> Change-Id: Iec2033dbc8ece2140b188de1f193c344a68b9c36
2022-12-23IVGCVSW-7343 Add Transpose support to TOSA Reference BackendCathal Corbett
Signed-off-by: Cathal Corbett <cathal.corbett@arm.com> Change-Id: I11505f672349e1f04143edfdc2df8775f685372d
2022-12-23IVGCVSW-7172 Add ElementwiseBinary (Subtraction & Multiplication) support to ↵Nikhil Raj
TOSA Reference Backend * Removed AdditionOperator and moved to new ElementwiseBinaryOperator. Signed-off-by: Nikhil Raj <nikhil.raj@arm.com> Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com> Change-Id: I8ce20f7575d68334aadcd176827bca3db53d0052
2022-12-21Refactor, remove m_ImportFlags from ClTensorHandleFactoryMatthew Bentham
Signed-off-by: Matthew Bentham <matthew.bentham@arm.com> Change-Id: Ia7d714eb227a96ad9eeb1441afbc83e6ad2bb197
2022-12-15IVGCVSW-7170 Add Concat support to TOSA Reference BackendKevin May
* Change comment for the unique tensor names in all tosa common operators Signed-off-by: Kevin May <kevin.may@arm.com> Change-Id: I247b4b2365d5f0173218c5dfd11fba12d2399959
2022-12-15Small fixes in TOSA common and TOSA reference:Teresa Charlin
* alphabetical order, * specify floats * fix order of parameters in convolution operator * fix uninitiated variable in ConvertConstantTensorDataToBuffer Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com> Change-Id: Ic82e6127cac6b94da4c859a284893b838ab248bc
2022-12-15Change the semantics of RefTensorHandle::Import to 'overlay' existing memoryMatthew Bentham
This makes it possible to call Import on an Allocated() or memory-managed Tensor, which is needed for the current implementation of OptimizerOptions::m_ExportEnabled to work (as the last layer before the OutputLayer needs to be able to Import the user's OutputTensor, but this is done after other memory allocation). Signed-off-by: Matthew Bentham <matthew.bentham@arm.com> Change-Id: I1a885c2da7b1f0f3964ae53b8135b5e96a66614f
2022-12-15IVGCVSW-7168 Support simple model in the TOSA Reference BackendMatthew Sloyan
* Fixed issue where duplicate tensors where being created. * Fixed issue where output name could be generated with the wrong id. * Updated bias tensor for Conv2d, so the size matches the channel. Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com> Change-Id: I1de6947e036b3e629ec6446d24d69e50603a5593
2022-12-15IVGCVSW-7204 Add TransposeConv2d support to TOSA Reference BackendMatthew Sloyan
Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com> Change-Id: I9bfd597afd41468f304edfbe5d7141378ce60d4f
2022-12-14Update TOSA Reference Backend IsLayerSupportedMatthew Sloyan
* Replace current IsLayerSupported checks with ModelRunner for better validation. * Added options to be able to disable the output from the TOSA Reference Model during layer support. * Updated layer support tests to reflect actual support. Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com> Change-Id: Iaea17343d0ad51b495477024c44a34d9335d1438
2022-12-14Fix bug in EthosNAcc backend detection in unit testMatthew Bentham
Test was checking a freshly constructed BackendRegistry, rather than the single instance. Signed-off-by: Matthew Bentham <matthew.bentham@arm.com> Change-Id: I7c64cf089cb406ac4e5ceefedb17163f39801b07
2022-12-14Refactor: Remove m_ImportFlags from RefTensorHandleMatthew Bentham
The import flags for a RefTensorHandle shouldn't be a data member, as RefTensorHandle can only import from MemorySource::Malloc. Instead, use m_ImportEnabled to determine what to return from GetImportFlags(). Simplifies the code in Import and CanBeImported. Signed-off-by: Matthew Bentham <matthew.bentham@arm.com> Change-Id: Ic629858920f7dd32f99ee27f150b81d8b67144cf
2022-12-13Include armnn/IRuntime.hpp in TosaCommon OneToManyMappingTestsCathal Corbett
* Error thrown when building in CLion Signed-off-by: Cathal Corbett <cathal.corbett@arm.com> Change-Id: I533f11e7ce2d883e254472097fee3817584d2f49
2022-12-13IVGCVSW-7342 Add Slice support to TOSA Reference BackendCathal Corbett
Signed-off-by: Cathal Corbett <cathal.corbett@arm.com> Change-Id: I8be286b69bebd4cd36033e3145632bb043938d16
2022-12-13Specified Linker Language for Tosa Reference BackendMike Kelly
* Required for building within the IDE. Signed-off-by: Mike Kelly <mike.kelly@arm.com> Change-Id: Icbf1b7e24cc20f579bcb6f8d82666ed480378dd4
2022-12-12IVGCVSW-7174 Add Reshape support to TOSA Reference BackendCathal Corbett
* Spelling corrections and code refactors added to TosaCommon * TosaDTypeToString() implemented and used in TosaRef IsLayerSupported() instead of enum integer. * Using namespace armnn in TosaCommon OneToOneMappingTests and TosaReference TosaRefLayerSupportTests instead of armnn::ClassName. * Updated VerifyTosaAttribute() to also verify certain attributes from input and output shapes. Signed-off-by: Cathal Corbett <cathal.corbett@arm.com> Change-Id: I71dfca404d081a665f748ab724153c6dc36b7eca
2022-12-12IVGCVSW-7209 Remove deprecated code due to be removed in 23.02Mike Kelly
* Removed weights and bias from Convolution, DepthwiseConv & FullyConnected layers * Removed the weight and bias ConstTensorHandles from the QueueDescriptors * Updated Workloads to take tensors from WorkloadInfo rather than the QueueDescriptors * Removed unused RedirectMembersToConstantInputs optimization and tests. Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com> Signed-off-by: Mike Kelly <mike.kelly@arm.com> Change-Id: I9ffcdc4a1c0dff725539dd69fc435b700bd98a56
2022-12-12Updates following execution of Includewhatyouuse on armnn/include.Colm Donelan
This tool forces explicit includes of all dependencies and highlights unused dependencies. Signed-off-by: Colm Donelan <colm.donelan@arm.com> Change-Id: I92e449245246452a0227cbd13f9c082e2088bf8c
2022-12-08IVGCVSW-7168 Add Conv2d and Constant support to TOSA Reference BackendMatthew Sloyan
* Added TOSA Conv2d and Constant mappings. * Added unique naming to mappings based on previous and following layers, so they are connected correctly. * Updated existing mappings with new naming convention. * Added all mappings to one main block in OptimizeSubgraphView. * Removed isMain from mapping functions. * Added Conv2d EndToEnd test. Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com> Change-Id: I27c3e238407c32379ce25a1f01dad11523ef5d2b
2022-12-07IVGCVSW-6853 Rewrite BuildArmComputePermutationVector()Teresa Charlin
* Some pemutation vectors were not converted correctly. * Add Transpose end to end test. * Comments added with an example to clarify the differences betweeen Transpose and Permute Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com> Change-Id: I6c0954ca6ce00ef5f2a6f3625abe6f4fd27b5cdf
2022-12-05IVGCVSW-4926 Add support in CpuRef implementation for Gather for axis ↵Nikhil Raj
different to 0 !android-nn-driver:8727 Signed-off-by: Nikhil Raj <nikhil.raj@arm.com> Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com> Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com> Change-Id: I4336007ad5a8552f7893ce6253f93cf9d1f5474f
2022-12-01IVGCVSW-7272 Add Exception for handling Fp16 infinity valuesKevin May
* Float values which cannot fit in Half are converted as inf/-inf * Add an InvalidArgumentException for infinity displaying the value and data type Signed-off-by: Kevin May <kevin.may@arm.com> Change-Id: Iaa5671374364c531e29e37fdfe40732b4fdbcfcb
2022-11-23IVGCVSW-7297 When creating multiple Executors only the lastMike Kelly
one works fine * Each CLBackend created its own ClContextControlWrapper which invalidated the OpenCL context's from all CLBackends that were created before that one. * Now CLBackends will keep a shared_ptr to a ClContextControlWrapper which more closely matches the functionality within ACL. Signed-off-by: Mike Kelly <mike.kelly@arm.com> Change-Id: I0744c2cb6a2f0d6b0c5fa54d786f88cf97775559
2022-11-16IVGCVSW-7214 Disable BF16-Turbo-Mode and remove conversion layersRyan OShea
- Remove Bf16ToFp32 Conversion Layer - Remove Fp32ToBf16 Conversion Layer - Remove B16 Conversion tests * Throw exception if m_ReduceFp32ToBf16 optimzer option is set to true * Provide comments to enable fast math in order to use bf16 * Update docs to inform users to enable fast math for bf16 Execute Network Changes * Require bf16_turbo_mode to also have fast_math_enabled set to true - Remove setting m_ReduceFp32ToBf16 optimizer option Signed-off-by: Ryan OShea <ryan.oshea3@arm.com> Change-Id: Ibaa6da9d29c96a1ce32ff5196b0847fde9f04a1c
2022-11-16IVGCVSW-7345 Add Pooling2d support to TOSA Reference BackendCathal Corbett
Signed-off-by: Cathal Corbett <cathal.corbett@arm.com> Change-Id: I73a47e513fe2d064ef233b121a68ef2edf0396dc
2022-11-15Minor error formatting fixes.Colm Donelan
Signed-off-by: Colm Donelan <colm.donelan@arm.com> Change-Id: I17823fb8b6bbabc4da327187167ce9582ee29b32
2022-11-14Add additional data type support to TOSA Reference BackendMatthew Sloyan
* Added all data types to TosaRefPreCompiledWorkload::Execute(). * Generalised IsTosaLayerSupported and fixed Addition support. * Added Fp16 and Int32 Addition End to End tests. Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com> Change-Id: I1f89c310ede33615427343e89bcec7e7bb643fa1
2022-11-09IVGCVSW-7318 Support basic addition model in the TOSA Reference BackendRyan OShea
* Create Simple Addition EndtoEnd test * Create EndToEndTest file in TosaRef/test directory * Add AdditionEndToEnd test to CpuRef,CpuAcc,GpuAcc,TosaRef Signed-off-by: Ryan OShea <ryan.oshea3@arm.com> Change-Id: Ic44e2b457c25dcb41bb3b17c05cce0e74bf17a80