aboutsummaryrefslogtreecommitdiff
path: root/src/backends/neon
AgeCommit message (Collapse)Author
2019-11-29IVGCVSW-4070 Implement "send post-optimized network structure"Narumol Prangnawarat
* Send post-optimisation network structure if profiling service is enabled * Refactor TimelineUtilityMethods * Fix RecordEvent to link eventGuid with eventClassGuid * Add common types and guid to LabelsAndEventClasses * Add CreateRelationship to TimelineUtilityMethods * Add CreateTypedEntity to TimelineUtilityMethods * Add MarkEntityWithType to TimelineUtilityMethods * Move VerifyTimeline functions to ProfilingTestUtils * Post-optimisation network structure unit tests to Ref, Cl, Neon Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Change-Id: I0194f2037c236450c912f4c3cb11e46b80c0f512
2019-11-29IVGCVSW-4209 Create a public API for the ArmNN UtilsMatteo Martincigh
* Moved the relevant armnnUtils headers to the new location: include/armnnUtils * Update the header usage throughout the source code !android-nn-driver:2387 Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com> Change-Id: I2ba15cebcacafad2b5a1a7b9c3312ffc585e09d6
2019-11-29IVGCVSW-3864 Add support for per-channel QSymm8 DepthwiseConvolution2d to ↵Aron Virginas-Tar
Neon backend Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: I6dadb36abc2e71f4d4309dcce6072c4a66384cf9
2019-11-27IVGCVSW-4148 Extend reporting of quant multiplier > 1 as unsupported on ACL ↵Aron Virginas-Tar
to per-axis case Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: I66a8360b6d86e95325dee58927dcbe62ccf6ad58
2019-11-26IVGCVSW-3866 Add support for per-channel QSymm8 Convolution2d to Neon backendAron Virginas-Tar
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: If7d366b2894050c53a651016165f34be1a2ce7a6
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-3697 Add check for ArgMinMax QAsymm8 to ClLayerSupportFrancis Murtagh
* Enable Neon EndToEnd tests for ArgMinMax QAsymm8 * Enable Neon Layer tests for ArgMinMax QAsymm8 Signed-off-by: Francis Murtagh <francis.murtagh@arm.com> Change-Id: Ifa7463ded4397cacb82fb3667006f08ecbe3cd32
2019-11-19IVGCVSW-4068 Add Guid to WorkloadNarumol Prangnawarat
* Add Guid to Workload * Remove circular dependency Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Signed-off-by: janeil01 <jan.eilers@arm.com> Change-Id: I15342fa7481c6bdc050e057dce2d74bba07fe2dd
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-15Print CMake messages on stdout rather than stderrRob Hughes
The default version of message("...") print to stderr, which is inappropriate for informational messages such as the ones we are printing in these cases. Using message(STATUS "...") makes these messages appear on stdout instead which is more appropriate. Change-Id: I02f41e6b4948e6938566f06d7164444bd5b8199e Signed-off-by: Robert Hughes <robert.hughes@arm.com>
2019-11-14Fix redundancy in call to configure() in ACL DepthwiseConvolution workloadsAron Virginas-Tar
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: I8f698c6ec9826ce1188bc43bd59fbf7b83455c1a
2019-11-14CL & Neon workload factories inherit from WorkloadFactoryBaseDerek Lamberti
Change-Id: I1f694be7ef1d333b5ef9b60ea7029454ade02628 Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
2019-11-13IVGCVSW-4053 Enable ArgMinMax EndToEndTest for NEON/CLJames Conroy
* Enabled for Float32 only, as per support in ACL. Signed-off-by: James Conroy <james.conroy@arm.com> Change-Id: I251fc832e3058d389ee9bef96856baff89ba6f9a
2019-11-13IVGCVSW-3695 Add CL ArgMinMax workloadJames Conroy
* Also enabled copy to/from CL for Signed32. Signed-off-by: James Conroy <james.conroy@arm.com> Change-Id: I0113182891f9767de73f04dcd81252c84c996eda
2019-11-12IVGCVSW-4051 Update ACL pin to 94e0cf960ea6116eb57fa88d9b951f859b52c602James Conroy
* Add is_initalised() check to CLScheduler in ClContextControl. * Now use CLDepthwiseConvolutionLayer instead of CLDepthwiseConvolutionLayer3x3. * Now use NEDepthwiseConvolutionLayer instead of NEDepthwiseConvolutionLayerOptimized. !android-nn-driver:2212 Signed-off-by: James Conroy <james.conroy@arm.com> Change-Id: I509af65315a4322dc820a5cc1bbd36ed6999b4a7
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-11-08IVGCVSW-4077 Disable NEON memory importJames Conroy
* Temporarily handles cases in CalculateEdgeStrategy where dstFactory pointer is null when import is disabled. * This patch is required for ensuring debug layer works correctly when executing a model on Neon. Signed-off-by: James Conroy <james.conroy@arm.com> Change-Id: I7304723246d362d6d9073c3d0b1224e194a8532c
2019-11-06IVGCVSW-4038 Convert Strided_Slice Shrink_Axis_Mask Parameter to ACL formatFrancis Murtagh
* Add conversion method to reverse bits in Shrink_Axis_Mask * Add Unit tests for Neon, CL and Reference backends * Fix supportedness of constant layer which is causing error in DeepSpeech Uint8 * Also convert the Begin_Mask and End_Mask Change-Id: I448b083c3463558e8fb5204923ab554cd43264ba Signed-off-by: Francis Murtagh <francis.murtagh@arm.com>
2019-11-04Add fp16 support for dequantizeJan Eilers
* Changed RefDequantizeWorkload to use Encoder/Decoder * Added related unit tests for Cl, Neon and Ref Signed-off-by: Jan Eilers <jan.eilers@arm.com> Change-Id: Ic2fd4103090dd2127c6859b49305736f7b2dfb05
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-25IVGCVSW-3962 Return 0 for Neon GetExportFlags()James Conroy
* Fixes issue where MemImport workload was being inserted into a graph when changing from a NEON to Ref workload. A MemCopy will now be performed instead. * Improves existing ImportAlignedPointerTest by adding check for expected output. Signed-off-by: James Conroy <james.conroy@arm.com> Change-Id: I606dbbe0166731c62fbe4cc1966c558ade66d6bb
2019-10-21IVGCVSW-3999 Add unit tests for new comparison operationsAron Virginas-Tar
* Refactored existing tests for Equal and Greater and moved them to ComparisonTestImpl.cpp * Removed EqualTestImpl.cpp and GreaterTestImpl.cpp * Added new unit tests for GreaterOrEqual, Less, LessOrEqual and NotEqual Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: I25013200beb1acb88e83b813c5382cb277c74cd7
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-15IVGCVSW-3892 Add EndToEnd Layer test for INSTANCE_NORMALIZATIONSadik Armagan
Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: Ia646446d52a7b597c3021f1e235465a96ce2beed
2019-10-10IVGCVSW-3944 Add ArgMinMax output shape validationJames Conroy
Signed-off-by: James Conroy <james.conroy@arm.com> Change-Id: I469895da158b062cd19248832525fa21527f7d41
2019-10-09IVGCVSW-3890 Add NEON INSTANCE_NORMALIZATION WorkloadSadik Armagan
Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: Ia3e55da6e6a7b9d46544466897e3b1635c90c297
2019-10-04IVGCVSW-3925 Add Backward compatibility for ITensorHandle CreateTensorHandle ↵David Monahan
functions Change-Id: I940b7ca706c9a8bc38743176eb7959aa629a6876 Signed-off-by: David Monahan <david.monahan@arm.com>
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-10-02IVGCVSW-3738 Add end-to-end layer test for DepthToSpaceAron Virginas-Tar
* Added end-to-end layer test implementation for DepthToSpace * Added test to reference, CL and NEON backends for all supported data types and data layouts * Extracted common data permutation code into new utility file and refactored some existing tests to reduce code duplication * Fixed EndToEndLayerTestImpl template to work with Float16 data Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: Iaf7a0012c520451052b20c37e36dc05fa8314ff6
2019-10-01IVGCVSW-3734 Enable FLoat16 unit tests for DepthToSpace on NEONAron Virginas-Tar
* Added Float16 support to NeonTensorHandle::CopyInFrom() and NeonTensorHandle::CopyOutTo() * Added Float16 unit tests for DepthToSpace to NeonLayerTests.cpp Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: Iffbcea699194ea56d5bd43d5e10b0303f07b0933
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-27IVGCVSW-3689 Support Import of Output Tensors for the Neon BackendFerran Balaguer
Change-Id: I6323c5f68248b54b3ed3b4cb92f1e8bf9c279b8d Signed-off-by: Ferran Balaguer <ferran.balaguer@arm.com>
2019-09-24IVGCVSW-3623 Implement NeonTensorHandle::ImportDavid Monahan
Signed-off-by: David Monahan <david.monahan@arm.com> Change-Id: I7213788725fd4e4cf1176998604e999d0b7ed6cc
2019-09-16IVGCVSW-3660 Add SQRT unit tests for Neon and CL backendsSadik Armagan
Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: Iaaff33f578c4d88f6c03c8de4af71d5347178eaa
2019-09-12IVGCVSW-3857 Add Reference FP16 workload support to remaining layersMatthew Jackson
* Adds Reference FP16 support and unit tests for layers not already supported !referencetests:202156 Signed-off-by: Matthew Jackson <matthew.jackson@arm.com> Change-Id: I6fc9b9ce2809e163f72e27e877025c8fb85d9fbe
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-3824 Implement Float 16 Encoder and DecoderMatthew Jackson
* Implement Float 16 Encoder and Decoder * Add Stack Float 16 layer and create workload tests Signed-off-by: Matthew Jackson <matthew.jackson@arm.com> Change-Id: Ice4678226f4d22c06ebcc6db3052d42ce0c1bd67
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-30IVGCVSW-3381 Break up LayerTests.hpp into more manageable filesAron Virginas-Tar
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: Icf39434f09fd340ad664cb3b97b8bee6d9da4838
2019-08-29IVGCVSW-3656 Fix wrong rename of the reference backend control macroMatteo Martincigh
* Renamed ARMNN_COMPUTE_REF_ENABLED to ARMNN_REF_ENABLED in the Android makefiles Change-Id: I12af2ca00c719568274585482d428b035674737c Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
2019-08-27IVGCVSW-3656 Rename ARMCOMPUTEREF to ARMNNREFMatteo Martincigh
* Renamed ARMCOMPUTEREF to ARMNNREF (and relative symbols) as the previous name was misleading !android-nn-driver:1819 Change-Id: I912e9f521750b91539e48f8a2fb4de73fb6f7425 Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
2019-08-27IVGCVSW-3605 Add direct compatibility between Cl and Neon backendsJan Eilers
* Adds compatibility between Cl and Neon * Adds related unit test Signed-off-by: Jan Eilers <jan.eilers@arm.com> Signed-off-by: Mike Kelly <mike.kelly@arm.com> Change-Id: Iaa454ea2a6392c89c0a83836c3156d4ddb354879
2019-08-26IVGCVSW-3575 Fix DepthwiseConvolution VTS Test FailuresKevin May
Failing VTS tests were "NeuralnetworksHidlTest.depthwise_conv2d_*" In depthwise convolution there was a difference in weight tensor channel order between the reference and ACL implementations. This specifically related to NCHW. This commit: * Adds ReorderWeightChannelsForAcl to WorkloadUtils which will correct the weight tensor channel order. * Add unit tests to detect this problem. Signed-off-by: Colm Donelan <Colm.Donelan@arm.com> Change-Id: Icaeac08e14b3d5da9e222ad2f118db55ebb15d09
2019-08-22IVGCVSW-3656 Make the reference backend optionalMatteo Martincigh
* Made the build of the reference backend depend on a new ARMCOMPUTEREF macro * Made the relevant targets dependent on the ref backend * Moved Cl and Neon static registry initializers to separate files * Wrapped some of the unit tests into proper ifdefs where necessary Change-Id: I7f2c42699682630233a4c4b6aed2f005083de189 Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
2019-08-21IVGCVSW-3661 Add multi-channel TransposeConvolution2d unit tests to NEON backendAron Virginas-Tar
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: I9d19ae4559a98b9e740c1d4d05add0c5788093d6
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-20IVGCVSW-3606 Support memory import for Reference backendFerran Balaguer
Signed-off-by: Ferran Balaguer <ferran.balaguer@arm.com> Change-Id: I94bd191f88e0911ad4e4727610e81cd7afa95512
2019-08-20IVGCVSW-3617 Add CL TensorHandleFactoryJan Eilers
* Adds ClTensorHandleFactory * Includes some refactoring of NeonTensorHandleFactory Signed-off-by: Jan Eilers <jan.eilers@arm.com> Change-Id: I9f0874b1945050267c5ece970e6d9b200ed8a865
2019-08-16IVGCVSW-3620 Fix Hal 1.2 Softmax test failures on GpuAcc and CpuAccColm Donelan
The following NeuralNetworkTests tests were failing on GpuAcc and CpuAcc: GeneratedTests.softmax_v1_2_relaxed GeneratedTests.softmax_v1_2_quant8 GeneratedTests.softmax_v1_2_2 GeneratedTests.softmax_v1_2_relaxed_2 GeneratedTests.softmax_v1_2_quant8_2 The default value for Softmax axis parameter in Android is -1 but is 1 in ACL. Detect and handle this in ArmComputeUtils.ComputeSoftmaxAclAxis. Signed-off-by: Colm Donelan <Colm.Donelan@arm.com> Change-Id: Ibb0660e4cb0dc6bd4c804c4397fbd61f38acdd9c