aboutsummaryrefslogtreecommitdiff
path: root/src/backends/neon/NeonLayerSupport.cpp
AgeCommit message (Collapse)Author
2019-11-21IVGCVSW-4148 Report quant multiplier > 1 as unsupported for ACLJames Conroy
* This is a temporary measure that needs to be removed when quantization multiplier > 1.0f support has been added for NEON and CL. * Layers affected: convolution, depthwise convolution, dilated depthwise convolution and transpose convolution. Signed-off-by: James Conroy <james.conroy@arm.com> Change-Id: Ief1aec2ff0eedf8250f6a8675288e1c343dcfce4
2019-11-19IVGCVSW-3729 Added neon slice workload and supporting neon layer testsjosh minor
* Support added for ACL neon slice workload * Utility function created to translate ArmNN slice layer params to ACL neon slice layer equivalent * Neon slice layer tests added as per SliceTestImpl.hpp Signed-off-by: josh minor <josh.minor@arm.com> Change-Id: Id583465311879af139e8e977f16ed2280c937ac7
2019-11-15IVGCVSW-4140 Report per-axis quantization as unsupported for ↵Aron Virginas-Tar
DepthwiseConvolution on ACL backends * This is a temporary measure that needs to be removed as soon as the NEON and CL DepthwiseConvolution workloads will have added support for per-axis quantization Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: I24eb285230293392a6ed50aece1101e5aed7f90e
2019-11-11IVGCVSW-4104 Report Conv2d per-axis quantization unsupported on ACL backendsAron Virginas-Tar
* Teporarily return false from IsConvolution2dSupported() whenever the weights tensor has per-axis quantization in order to avoid exceptions being thrown from ACL during attempted execution * Should be reverted once per-axis quantization support will have been added to the ACL backends Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: Ie2e1a7f3f5550a4b43f7f007ee5c86a8760872eb
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-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-09IVGCVSW-3890 Add NEON INSTANCE_NORMALIZATION WorkloadSadik Armagan
Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: Ia3e55da6e6a7b9d46544466897e3b1635c90c297
2019-10-03IVGCVSW-3696 Add NEON ArgMinMax workload and testsJames Conroy
* Added layer tests and fixed WorkloadData validate. * Also enabled copy to/from NEON for Signed32. Signed-off-by: James Conroy <james.conroy@arm.com> Change-Id: I5e961f88434e18d5a8ebff956d20a1c2cf1b50bb
2019-09-30IVGCVSW-3734 Add NEON workload for DepthToSpaceAron Virginas-Tar
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: I4fa8cba57f3a2277112c02062f4d2790089d1eb5
2019-09-10IVGCVSW-3830 Add NEON workload for RSQRTAron Virginas-Tar
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: Ida590b7d28dbee40e496794c42b682d740427cca
2019-09-10IVGCVSW-3822 Add NEON workload support for ABSAron Virginas-Tar
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: I0c2ead004200e053d748ea39937f2f9ed35a636b
2019-08-20IVGCVSW-3163 Support Neon TransposeConv2dSadik Armagan
* NEON support for TransposeConolution2d * Indentation fix on SpaceToDepth LayerSupport method Signed-off-by: Keith Davis <keith.davis@arm.com> Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Signed-off-by: Aron Virginas-Tar <aron.virginas-tar@arm.com> Change-Id: Ie3a01a22e05f62f475f768dfe05ce561d2f3b0ad
2019-08-12IVGCVSW-3598 Add Neon backend support for Strided_SliceFinnWilliamsArm
Signed-off-by: FinnWilliamsArm <Finn.Williams@arm.com> Change-Id: Ia9bf55ca93e36ad7fa052b70e477cd46078e0a30
2019-08-09IVGCVSW-3474 Add end to end tests for Quantized_LSTMFrancis Murtagh
Change-Id: Iaec6956b5c459308d77d29f699ae4558bee66cd5 Signed-off-by: Francis Murtagh <francis.murtagh@arm.com>
2019-08-06IVGCVSW-3614 Remove limitation of axis=1 support for Softmax in Cl and NeonNarumol Prangnawarat
Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Change-Id: Id990ae7445080f6b4d5a0e6f942f871879a52f75
2019-08-05IVGCVSW-3341 Add Neon backend support for Quantized_LSTM (16bit cell state)Francis Murtagh
* Add Neon Workload * Update NeonWorkloads.hpp * Update NeonWorkloadFactory * Update NeonLayerSupport * Update backends.mk and CMakeLists.txt * Add NeonCreateWorkload test * Enable LayerTest !android-nn-driver:1685 Change-Id: Idd799bbf039acf0d59084d02c3b57766ce3691b5 Signed-off-by: Francis Murtagh <francis.murtagh@arm.com> Signed-off-by: Matthew Bentham <Matthew.Bentham@arm.com>
2019-08-05IVGCVSW-3277 Mem export/import suppor for TensorsDerek Lamberti
* Rename MemoryStrategy to EdgeStrategy * Add MemImportLayer * Import memory rather than copy when possible Change-Id: I1d3a9414f2cbe517dc2aae9bbd4fdd92712b38ef Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
2019-08-02IVGCVSW-3539 Add Neon support and tests for StackMatthew Jackson
* Added Neon backend support for Stack * Added unit tests for Stack on the Neon backend Signed-off-by: Matthew Jackson <matthew.jackson@arm.com> Change-Id: I21379966a6303285f8b65418d0d4ac7982cc9f04
2019-07-26IVGCVSW-3554 Update workloads to pass Softmax Axis Parameter to BackendsFrancis Murtagh
* Add check in CL and Neon to ensure axis is 1 otherwise return unsupported. * Edit CreateWorkload test and JsonPrinter test to ensure axis of 1. Change-Id: I499b405532e26fefc2dd1c18b6dc6005813b5604 Signed-off-by: Francis Murtagh <francis.murtagh@arm.com>
2019-07-17IVGCVSW-3297 Add Neon backend support for ResizeNearestNeighbourEllen Norris-Thompson
* Renamed NeonResizeBilinearWorkload.* to NeonResizeWorkload.* and added support for ResizeNearestNeighbour * Added CreateWorkload and LayerTests for Neon backend Signed-off-by: Ellen Norris-Thompson <ellen.norris-thompson@arm.com> Change-Id: I72f5340608a0928f8b32a41d1915ee2c35849f18
2019-07-10IVGCVSW-3337 Add Neon backend support for LSTM layer normalisationJan Eilers
* Update neon lstm workload * Add unit tests * Add isLstmSupported Change-Id: I493c159137f6544b0f2532d16d4fafd7a7e587e5 Signed-off-by: Jan Eilers <jan.eilers@arm.com>
2019-07-09IVGCVSW-3355 Add NeonSpaceToDepthWorkloadEllen Norris-Thompson
* Add Neon backend support for SpaceToDepth * Enabled Neon Unit, CreateWorkload and EndToEnd tests for SpaceToDepth. * Added QSymm16 support to NeonTensorHandle. Signed-off-by: Ellen Norris-Thompson <ellen.norris-thompson@arm.com> Change-Id: Ibbb0bce5ad77dace2bf4c4c111006d2fadf844e8
2019-07-05IVGCVSW-3294 Add Neon backend support for PReLUNikhil Raj
Change-Id: I2f92f7336d3b4188962a9d08b0e7c6372b1c648f Signed-off-by: Nikhil Raj <nikhil.raj@arm.com>
2019-07-02IVGCVSW-3382 Deprecate ResizeBilinear and use Resize with Bilinear methodAron Virginas-Tar
!android-nn-driver:1451 Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: Ieedbce1f6e95891137a250fdd07e2f7e4e1f4828
2019-05-31IVGCVSW-3148 Add Neon backend support for DequantizeNarumol Prangnawarat
* Add NeonDequantizeWorkload * Add IsDequantizeSupported to call validate from ACL function * Add CreateDequantize to NeonWorkloadFactory * Unit tests Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Change-Id: I96a216ef78cc3f6a57aa439a16ae6aafd783ff93
2019-05-31IVGCVSW-3185 Add NeonQuantizeWorkloadSadik Armagan
* Added NeonQuantizeWorkload to ArmNN Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: I41f8707dda35c894841eddae2d3b78f088038c8e
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-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-20IVGCVSW-3117 Rename NeonMergerWorkload to NeonConcatWorkloadJim Flynn
Change-Id: I9a373a31bfabbe0f691d7f9e240ac08e072b2c7d Signed-off-by: Jim Flynn <jim.flynn@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-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-03-11IVGCVSW-2792 Update Neon Mul/Sub workload for latest CL masterConor Kennedy
* Update Neon Subtraction/Multiplication to use BaseWorkload * Add Uint8 tests for Subtraction/Multiplication Change-Id: Ied2aa048924817a4db0025b9bd9e54151667bd74 Signed-off-by: Conor Kennedy <conor.kennedy@arm.com>
2019-02-01IVGCVSW-2603 The macros ARMCOMPUTECL_ENABLED and ARMCOMPUTENEON_ENABLEDMatteo Martincigh
no longer work * Added two master variables ARMNN_COMPUTE_CL_ENABLED and ARMNN_COMPUTE_NEON_ENABLED to android-nn-driver/Android.mk to easily control backend support * Setting either of those two new variables then properly sets the corresponding build macro * If a specific backend gets disabled, the corresponding source files will be excluded from the build * Unified the usage of the pre-compile macros !android-nn-driver:613 Change-Id: I582ff73493b70ba9e22ca2e38d875a0f19566c8a Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
2019-01-29IVGCVSW-2447 Add Greater Workload to Neonkevmay01
Change-Id: Ic165061cc61534e7e391a398ea7c2918240e2d3b
2019-01-25MLCE-84 Add Neon Pad support and unit testsÉanna Ó Catháin
Change-Id: I0d949a9f23a61af5013efdd18572b29fae585f2a
2019-01-24IVGCVSW-2503 Refactor RefElementwiseWorkload around Equal and Greaterkevmay01
* Remove Equal and Greater from RefElementwiseWorkload * Create RefComparisonWorkload and add Equal and Greater * Update ElementwiseFunction for different input/output types * Update TfParser to create Equal/Greater with Boolean output * Update relevant tests to check for Boolean comparison Change-Id: I299b7f2121769c960ac0c6139764a5f3c89c9c32
2019-01-23IVGCVSW-2511 Add end to end Gather layer testnarpra01
* Add end to end test for Gather operator * Add Support for int32 to Constant layer for Ref * Add Int32Workload * Add RefConstantWorkload as template for float, uint8, int32 * Remove unused RefBaseConstantWorkload * Remove unused RefConstantFloat32Workload * Remove unused RefConstantUint8Workload * Add support check for int32 in LayerSupport functions Change-Id: Ic970588a49ebe2aafb12be8adef52371feacaa7b
2019-01-23IVGCVSW-1048 RESIZE_BILINEAR NEON operatorSadik Armagan
* Implemented NeonResizeBilinearWorkload * Enable ResizeBilinear Operator unit tests for Neon !android-nn-driver:405 Change-Id: Iec3100ccaf7d246e8eaf683d1f3ec9191df5241e
2019-01-11IVGCVSW-2454 Refactor ArmNN to support pluggable backends from a separateMatteo Martincigh
code base * Made the virtual functions in ILayerSupport.hpp pure * Created a LayerSupportBase class with the default implementation of the interface * Made the backend layer support classes inherit from the base class, instead of directly from the interface * Refactored the profiler and the profiling event classes to use the BackendId instead of the Compute * Implemented a proper MemCopy support method * Changed Compute to BackendId in the profiling API and objects * Removed static references to pluggable backends !android-nn-driver:492 Change-Id: Id6332b5f48c980819e0a09adc818d1effd057296
2019-01-09IVGCVSW-2441 Add Minimum operator support (NEON)Conor Kennedy
Change-Id: I0bc48f118aba419abb659657b83224401fac0715
2019-01-04IVGCVSW-2383: code cleanup, remove unnecessary isSupported implementations,Nina Drozd
default cases are handled by DefaultLayerSupport Change-Id: I31942a5e8515d6fdce9a0adf20906eaabc2b9aa6
2019-01-02MLCE-82 Add Neon Mean support and unit testsMatthew Bentham
Factor out new BuildArmComputeReductionCoordinates function from CL backend into ArmComputeTensorUtils. Update NEON LayerSupport and WorkloadFactory objects Change-Id: Icc975ec699199bffafbdb207323df509d35e1e04
2018-12-31MLCE-80 Remove strong typing from NeonBatchNormalizationMatthew Bentham
Technical debt work towards adding some new Neon workloads Change-Id: I08ab6dd14d0e89d4ebc8a878fb69caa5681012bf
2018-12-20IVGCVSW-2212 Add Neon support for Maximum operatorNattapat Chaimanowong
Change-Id: Iddae3486641d2d195827ae4e0a9dfa3f7ccd65e3
2018-12-19IVGCVSW-2379 Add Greater Ref workload implementationFrancisMurtagh
* Added the Greater operation as an element-wise workload * Added the unit tests Change-Id: Ie00ee30e47a5f5e17a728032eeb11a085d06c8f2
2018-12-18IVGCVSW-2365 Add Reference Equal Workload ImplementationFrancisMurtagh
* Add reference equal workload * Add Reference Workload Unit Test Change-Id: If2848e7dde4248566b99d91726d08143c40ff80d
2018-12-10MLCE-79 NEON QASYMM8 Addition SupportMatthew Bentham
Unit tests not yet added as need Compute Library a84faffd. Change-Id: Ica16df493e8d6a76da9d1f74bf43b8403f9dff62
2018-11-19IVGCVSW-2043 - Merger using ACL for innermost concat axisNikhil Raj
* Add ClMergerWorkload and NeonMergerWorkload to call ACL for innermost concat axis * Modify layer support to call ClMergerWorkloadValidate and NeonMergerWorkloadValidate when concat axis is inner most * Add m_ConcatAxis to MergerDescriptor * Modify MergerQueueDescriptor::Validate to check sub tensor only when using subtensor !android-nn-driver:166 Change-Id: I56676b43964c8d6d726387b41b3cc34a512c0f0a
2018-11-16IVGCVSW-2155 - Always call NEConvolutionLayer in NeonConvolution2dWorkloadnarpra01
* Remove check for preferDirectConvolution * Remove IsNeonDirectConvolutionPreferred * Remove unused tests and functions Change-Id: I3f0868f41403ec5fa740889e7bdcb4415ad77bda