aboutsummaryrefslogtreecommitdiff
path: root/delegate/src/armnn_delegate.cpp
AgeCommit message (Collapse)Author
2022-06-22Revert "Revert "IVGCVSW-6873 Import inputs but don't export outputs fails.""Francis Murtagh
This reverts commit a0f8b15d4ddb5075f380003ff31b271d389d3b66. Reason for revert: <Test ClDmaBufInternalTests review > Change-Id: Ibc4a77fa008643849da7330391942e4c87b941e2
2022-06-21Revert "IVGCVSW-6873 Import inputs but don't export outputs fails."James Conroy
This reverts commit 03bf98a8bc51ad20eef4b9ca5fbf6ce15e063721. Reason for revert: Caused failures in tests located in internal repo. Change-Id: If35cb0ede349b270e4e7827324382e09455d8cfa
2022-06-20IVGCVSW-6873 Import inputs but don't export outputs fails.Colm Donelan
Only one bool is used to indicate whether inputs should be imported. However, its possible for the user to want to import inputs but not export outputs. In addition it's possible for a user to enabled import during optimize but then pass a memory source that does not require import. * Add m_ExportEnabled to INetwork.hpp. * Modify Network::dNetwork to consider both m_ImportEnabled and m_ExportEnabled. * Add ValidateSourcesMatchOptimizedNetwork to LoadedNetwork to validate import options between optimize and network load. * Update the TfLite delegate consider exportEnabled flag in the optimizer. !armnn-internal-tests:425350 Signed-off-by: Colm Donelan <colm.donelan@arm.com> Change-Id: I776eab81595898e43f91ab40306962eae61329f4
2022-06-15IVGCVSW-6946 Add Pool3D to tflite delegateRyan OShea
* Add new test and test helper for Pool3d * Add new custom operator to switch in armnn_delegate.cpp * Add new pool3d function to pooling.hpp * Update doxygen Signed-off-by: Ryan OShea <ryan.oshea3@arm.com> Change-Id: I77a541bf423b337c749e70c564cdd727efe2fd05
2022-05-18IVGCVSW-6929 Support for models with implicit expandedMike Kelly
dimensions * Added allow-expanded-dims to TFLite parser and ArmNN delegate * If true ArmNN will disregard dimensions with a size of 1 when validating tensor shapes. Tensor sizes must still match. * This allows us to support models where tensors have expanded dimensions (i.e. extra dimensions with a size of 1). * Fixed bug in Network where it assumed that only the first option could be ShapeInferenceMethod. * Fixed bug where m_ShapeInferenceMethod was lost when copying or moving Graphs. * Changed Delegate to pass "infer-output-shape", "allow-expanded-dims" and other BackendOptions through to the Network during construction. Signed-off-by: Mike Kelly <mike.kelly@arm.com> Change-Id: Ibe7c5ae6597796fc9164cb07bd372bd7f8f8cacf
2022-05-04IVGCVSW-6858 Add GATHERNd Support to the TfLite DelegateTeresa Charlin
Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com> Change-Id: I56418875b3bb2ae45b5c69bfeaafa1a6126b8085
2022-02-11MLCE-754 'Improve operator support error/warning from Arm NN Delegate'Sadik Armagan
* Improved error reporting on armnn_delegate Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: I1bd131fb56d64b32b1fafad0465256178720226c
2022-01-18MLCE-736 'Adding support for TfLite Models'Sadik Armagan
* Added constant input supports for Pack/Stack, Concatenation operators * Added Int32 support to Pack/Stack operator on CpuRef * Removed unsupported operator from TfLite Delegate Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: I64203e174300d23eedeb22bddefe07e931c4eff3
2021-12-08Add addition timing logging outputJan Eilers
* Adds ExecuteNetwork when building the delegate only * Adds timings to delegate subgraph creation * Adds executions times Signed-off-by: Jan Eilers <jan.eilers@arm.com> Change-Id: Ieff2f67ea8dbb6c2a708f8810e84a20485b7a631
2021-11-08IVGCVSW-6420: Constant flag in tensor info is not set correctlyCathal Corbett
!android-nn-driver:6532 !armnn-internal-tests:372451 * Made fix to 2 out of 3 ConstTensor() constructors in Tensor.hpp to throw InvalidArgumentException when TensorInfo isConstant parameter is false. * Added new ConstTensor() constructor in Tensor.cpp to accept vector<>.data() using template<typename MemoryType>. * Fixed runtime->GetOutputTensorInfo()/GetInputTensorInfo() methods and called submethods to return TensorInfo& rather than TensorInfo. * Fixed all failing unit tests for CpuRef/CpuAcc/GpuAcc to ensure any ConstTensor created has it's TensorInfo isConstant set to true. * Added unit tests in TensorTest.cpp to ensure ConstTensor constructors throw InvalidArgumentException when TensorInfo isConstat parameter is false. * Added unit test to ensure an empty ConstTensor constructor will set TensorInfo isConatant to true. * Indentation fixes. * Fix to arm_tensor.i to add isConstant parameter to TensorInfo constructor. Added methods IsConstant() and SetConstant(). * Fix to const_tensor.py to throw ValueError when TensorInfo isConstant is set to false when constructing a ConstTensor. * Fixed PyArmnn unit tests to set TensorInfo isConstant to True when ConstTensor is used. * Added unit tests in test_const_tensor.py to ensure ConstTensor constructors throw ValueError when TensorInfo isConstat parameter is false. Signed-off-by: Cathal Corbett <cathal.corbett@arm.com> Change-Id: I44e440dd0422c366d31bbdbc77ad2b4db0bde148
2021-11-01IVGCVSW-6457 Add FLOOR_DIV Support to the TfLiteDelegateJim Flynn
Change-Id: Ia4bf42b1f3f86b947825dff8e538d2d4343effab Signed-off-by: Jim Flynn <jim.flynn@arm.com>
2021-10-29Fix armnn_external_delegate option parsingJan Eilers
* Fixed the mechanism in armnn_delegate.cpp which creates the runtime options by moving it to DelegateOptions. BackendOptions are used in the runtime options as well as in the optimizer options but need to be processed separately. * Added runtime options to DelegateOptions to make it easier to differ between backend options of the runtime and the optimization * Updated armnn_external_delegate to use runtime options * Added explanations to OptimizerOptions Signed-off-by: Jan Eilers <jan.eilers@arm.com> Change-Id: I34235474147def261821e4576dd41a83ad492258
2021-10-27IVGCVSW-6469 Add MirrorPad TfLiteParser and TfLiteDelegate SupportMatthew Sloyan
Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com> Change-Id: Ia1c97adb401c5381341408ec1e4da287ef2d48fe
2021-10-27IVGCVSW-5879 Fix problems with using internal profiling from delegate.Colm Donelan
* Pass through the value of m_EnableProfiling from Executenetwork to DelegateOptions. * If internal profiling is enabled print it out from inside the delegate. * Remove an unnecessary ProfilerImpl instance from WorkingMemhandle.hpp * Remove an unnecessary parameter from TfLiteDelegateMainImpl in ExecuteNetwork. Signed-off-by: Colm Donelan <colm.donelan@arm.com> Change-Id: Ia1d4b1eb3a05ca5b4d80cc39e138c7fac182d948
2021-10-22IVGCVSW-6166 Add Support for Conv3d to TFLite DelegateMatthew Sloyan
* Conv3d is only correctly supported for external delegates from TF v2.6, as there was a breaking bug in v2.5. Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com> Change-Id: Ib7941307f4c7b0d3dbb7deaa5a90aceb63c1162f
2021-10-11IVGCVSW-5752 Add missing runtime parameters to TfLite delegate.Colm Donelan
* Adding Runtime parameter: dynamic-backends-path * Add profiling parameters: gpu-enable-profiling, enable-internal-profiling, internal-profiling-detail, enable-external-profiling, timeline-profiling, outgoing-capture-file, incoming-capture-file, file-only-external-profiling, counter-capture-period, profiling-file-format * Adding utility parameter "serialize-to-dot" Signed-off-by: Colm Donelan <Colm.Donelan@arm.com> Change-Id: Ibff4b9a85ff0f0da5d70e8aa0bb6cba96aaabbc3
2021-09-03IVGCVSW-6262 Add support for Reduce ProdTeresa Charlin
* Tflite parser * Tflite delegate * Serializer * Deserializer * Ref, CpuAcc and GpuAcc workloads Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com> Change-Id: I601a9ee1680b372c7955d9a628857d08c3cfd377
2021-08-31MLCE-530 Add support for UnidirectionalSequenceLstm to armnn delegateNarumol Prangnawarat
Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Change-Id: Ib04f8d6b9e60a4204c56eba4c2ecd2b316509dcc
2021-06-18MLCE-510 Add CpuRef Shape Operator to ArmNNKeith Davis
* Add TfLiteParser and delegate support Signed-off-by: Keith Davis <keith.davis@arm.com> Change-Id: Id3219ba7cc7128b5e73de2c7d8d076a40dcce9c5
2021-05-27IVGCVSW-6061 Add PRELU support to TF Lite delegateJames Conroy
* Alpha is supported both as a constant and as an input tensor. Signed-off-by: James Conroy <james.conroy@arm.com> Change-Id: I20f30d479b87dc5fbcf75a1ce5305d70ae9b0646
2021-05-10IVGCVSW-5970 TfLiteDelegate: Add UNPACK operator SupportKevin May
Signed-off-by: Kevin May <kevin.may@arm.com> Change-Id: I23731718236043b46c143eaf416cb375edd93983
2021-05-06IVGCVSW-5969 TfLiteDelegate: Add PACK operator SupportMatthew Sloyan
* Added support for PACK which is equivalent to Arm NN STACK Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com> Change-Id: I9ea134d0310eeea1caba30a8b9221712e9487c75
2021-04-29IVGCVSW-5819 5820 5821 Add MemorySourceFlags to ↵Francis Murtagh
TensorHandleFactoryRegistry::GetFactory * Modify Layer::CreateTensorHandles to include MemorySource * Modify INetworkProperties to add MemorySource * Disable Neon/Cl fallback tests until full import implementation complete Change-Id: Ia4fff6ea3d4bf6afca33aae358125ccaec7f9a38 Signed-off-by: Francis Murtagh <francis.murtagh@arm.com>
2021-04-23IVGCVSW-5430 'Add CAST Operator Support to Delegate'Sadik Armagan
Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: I6da711950b8e7d3c0d5cbd443e91eb36700ac4c8
2021-02-09MLCE-347 'REDUCE_MIN, REDUCE_MAX, REDUCE_SUM Support'Sadik Armagan
* Added TfLiteParser support for REDUCE_MIN and REDUCE_MAX operators * Added ACL workloads support for REDUCE_MIN, REDUCE_MAX, and REDUCE_SUM operators * Added TfLite Delegate support for REDUCE_MIN, REDUCE_MAX, and REDUCE_SUM operators Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: I8085d59946bfd4ab78a59a61f899031ae53371a8
2021-02-08IVGCVSW-4901 Add semantic versioning to Parsers and TfLite DelegateMatthew Sloyan
* Added Version.hpp to all Parsers * Added Version.hpp to TfLite Delegate * Updated CMakeLists to use new versions * Added GetVersion method to parsers and TfLite Delegate Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com> Change-Id: If29e1e6d9e615f9095ec1c01ad47acfff40b1dd5
2021-02-02IVGCVSW-5619 Enable OptimizerOptions for the python external delegateNarumol Prangnawarat
* Add reduce-fp32-to-fp16, reduce-fp32-to-bf16, debug-data, memory-import options to external delegate * Simplify DelegateOptions * Add test mock models * Unit tests * Configure lfs to manage tflite files Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Change-Id: I1e4db468862ba03d4cb031347bc307cf940b3cb1
2021-01-26IVGCVSW-5390 'TfLiteDelegate: Implement the Normalisation operators'Sadik Armagan
* Added L2_NORMALIZATION and LOCAL_RESPONSE_NORMALIZATION opertor support Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: Ic9e66879cf6469fa8761fb1c9dd5950771f629b0
2021-01-25IVGCVSW-5619 Add OptimizerOptions and NetworkProperties to ArmNN DelegateNarumol Prangnawarat
* Add OptimizerOptions, NetworkProperties, DebugCallbackFunction to DelegateOptions * Enable OptimizerOptions when the network is being optimized * Enable NetworkProperties when loading network * Enable DebugCallbackFunction * Add error message when loading network * Log warning instead of error when operator is not supported but could fallback to another backend * Improve uint16_t CompareData * Unit tests Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Change-Id: I353035afb442774bfeb1c62570a90755c2ceaf38
2021-01-22IVGCVSW-5571 Expose the TfLite Delegate to the TfLite python APIJan Eilers
* Implemented external delegate adaptor interface for TfLite * Activated armnn logging for delegate * Added logging info to indicate if gpu tuning is turned on * Added pytests to ensure functionality of the external delegate adaptor * Included the delegate directory into doxygen * Added documentation on how to use the external delegate in python Signed-off-by: Finn Williams <Finn.Williams@arm.com> Signed-off-by: Jan Eilers <jan.eilers@arm.com> Change-Id: Id3b4588fb0b9ac7e3f47ba2c19feead7beb58e18
2020-12-07IVGCVSW-5381 TfLiteDelegate: Implement the Logical operatorsMatthew Sloyan
* Implemented Logical AND, NOT and OR operators. * NOT uses existing ElementwiseUnary VisitLayer function & tests. * AND/OR uses new LogicalBinary VisitLayer function & tests. Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com> Change-Id: I5e7f1e78b30c36ac7f14c70a712b54f98d664b83
2020-11-30IVGCVSW-5393 'TfLiteDelegate: Implement the split operators'Sadik Armagan
* Added SPLIT and SPLIT_V support to armnn_delegate Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: I2def9b8be783b25ef17a997e521c6027553035d3
2020-11-16IVGCVSW-5508 Activate compiler warnings in ArmNN TfLite DelegateFinn Williams
Signed-off-by: Finn Williams <Finn.Williams@arm.com> Change-Id: I1a8e2aa618ff693c61010e6150f3ca41b8ab1201
2020-11-12IVGCVSW-5504 'TfLiteDelegate: Introduce FP16 and BackendOptions'Sadik Armagan
* Added BackendOptions creations of armnn_delegate * Included armnn/third-party the armnn_delegate unit tests * Updated the CreateConstTensor function Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: I8e2099a465766b905bff701413307e5850b68e42
2020-11-10IVGCVSW-5389 'TfLiteDelegate: Implement the FullyConnected operator'Sadik Armagan
* Added FullyConnected operator support to delegate Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: Iae9c0980a4bfd6aa4d90f107f329dfa782baeefe
2020-10-28IVGCVSW-5378 'TfLiteDelegate: Implement the ElementWiseUnary operators 'Sadik Armagan
* Moved ElementwiseUnary operators tests into single file * Implemented FP32 test for supported ElementwiseUnary operators Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: I4b7eab190c3c8edb50927b8e1e94dd353597efcb
2020-10-27IVGCVSW-5366 'Add a do nothing SubGraph class'Sadik Armagan
IVGCVSW-5373 'Implement the ABS operator in the Delegate' * Added a Switch statement into the VisitNode() function * Separated the Visit functions into the categorized source files * Implemented VisitElementwiseUnary() function * Added tests for ABS and SQRT Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: If9654d0a8d8ff7dcd6fb5cbe0dc312941772affb
2020-10-19IVGCVSW-5365 'Create the TfLite Delegate subdirectory in ArmNN'Sadik Armagan
* Created delegate sub-directory under armnn * Created Delegate, ArmnnSubgraph and DelegateOptions classes * Created cmake files. * Integrated doctest (under MIT license) as testing framework Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: If725ebd62c40a97c783cdad22bca48709d44338c