aboutsummaryrefslogtreecommitdiff
path: root/src/backends/cl
AgeCommit message (Collapse)Author
2019-06-17IVGCVSW-3221 Refactor Mean ref workload and testsJames Conroy
* Renamed RefMeanFloat32Workload and RefMeanUint8Workload to RefMeanWorkload, updated references to reflect this change. * Refactored RefFloorWorkload to use Decoders/Encoders, to support the use of multiple data types. * Deleted reference Unit8 Mean tests as they were duplicates of the Float32 tests. Refactored these tests to support multiple data types and updated references. * Adjusted the values used in the tests' input tensors so that they are more like floating point numbers e.g. change 1.0f to 1.5f. * Replace size_t with unsigned int in Mean ref workload, for better compatibility with the Encoder/Decoder, removed some unnecessary casts after this. * Added ValidateTensorDataTypesMatch() function to WorkloadData.cpp, added CreateIncorrectDimensionsErrorMsg function to RefLayerSupport.cpp. * Added passing and failing tests for ref IsMeanSupported. Signed-off-by: James Conroy <james.conroy@arm.com> Change-Id: Id3d44463d1385255c727a497d4026d21a49e7eb2
2019-06-14IVGCVSW-3278 Cl and Neon TensorHandles inherit from common base interfaceDerek Lamberti
Change-Id: Ia68da09d8f0fb0a04af9cb61062d7edaa5f1b887 Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
2019-06-14MLCE-121 Github: Build error on GCC 9Mike Kelly
* 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>
2019-06-12IVGCVSW-3217 Refactor the Layer tests for ResizeBilinear to make them genericEllen Norris-Thompson
* Refactored the ResizeBilinear tests so can be used for both Float32 and Uint8. * Moved to .hpp file and renamed tests accordingly. Signed-off-by: Ellen Norris-Thompson <ellen.norris-thompson@arm.com> Change-Id: Icf79b0616db0c307cfcf94747fe0a6d4343588bd
2019-06-04Update the CL pin to the latest masterMatteo Martincigh
* Updated the pinned CL revision * Changed the type for axis in L2Norm workloads !clframework:d7dd15c445397ab879439de6659859db09f4b752 !android-nn-driver:1268 Change-Id: Ib568869ae8259c4c7d62fc8b434c74a7f8242988 Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
2019-06-03IVGCVSW-3148 Add end to end test for Dequantize layer to Ref, Cl, NeonNarumol Prangnawarat
Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Change-Id: Iaf9c290c093b7d84949993439568e55433938b4e
2019-05-31IVGCVSW-3177 Refactor Floor reference workloadJames Conroy
* Renamed RefFloorFloat32Workload to RefFloorWorkload and updated references to reflect this change. * RefFloorWorkload now uses Decoders/Encoders and supports the use of multiple data types. * Deleted FloorTestImpl.hpp and moved its contents into LayerTests.hpp. Change-Id: Ie079d05f2f6a578172f0fe3024f9607c030bce64 Signed-off-by: James Conroy <james.conroy@arm.com>
2019-05-31IVGCVSW-3147 Add CL Dequantization workloadJim Flynn
Change-Id: I9baf6af3d98a26005a31075cd9c4e1f40938789b Signed-off-by: Jim Flynn <jim.flynn@arm.com>
2019-05-31IVGCVSW-3165 Added accidentally removed CreateFakeQuantization FunctionSadik Armagan
Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: I50a1a364f13df03dea0833023ec0f2c2794f24db
2019-05-31IVGCVSW-3186 Add ClQuantizeWorkloadSadik Armagan
* Added ClQuantizeWorkload to enable quantization on CL backend Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: Id49d5ec29514f6f853c2500a34b1a12444c49168
2019-05-30IVGCVSW-2771 Add more end to end tests for splitter on Cl, Neon, RefNarumol Prangnawarat
to cover different number of dimensions and split axis Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Change-Id: Ia9a111c8dcfc08d04b54aa770d1ae5312c6b1c93
2019-05-29IVGCVSW-3172 Add QSymm16 support for reshape workloadNina Drozd
* Added QSymm16 to supported types in WorkloadData * Added QSymm16 to supported types in RefLayerSupport * Created templated SimpleReshapeTest in LayerTests * Updated ClLayerTests to use templated SimpleReshapeTest * Updated NeonLayerTests to use templated SimpleReshapeTest * Added test for QSymm16 to RefCreateWorkloadTests, RefLayerTests * Removed ReshapeTestImpl as all reshape test methods were moved * Added FloorTestImpl for existing SimpleFloorTest Change-Id: I78efede8aab74c2d4cb0841dd426b8e06186133d Signed-off-by: Nina Drozd <nina.drozd@arm.com>
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-28IVGCVSW-2771 Add end to end tests for splitter on Cl, Neon, RefNarumol Prangnawarat
Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Change-Id: I44f8f1799f6182721751b1d117c9ada5b91f52e1
2019-05-28IVGCVSW-2970 Support QSymm16 for FullyConnected workloadsFrancis Murtagh
* Add support for QSymm16 for FullyConnected * Add templating to Uint8 RefLayerTest to test QSymm16 Change-Id: Ie6e989daf2ca966d6c6805b8017126eb77ebfec4 Signed-off-by: Francis Murtagh <francis.murtagh@arm.com>
2019-05-23IVGCVSW-2771 Fix SubTensor error in vgg16 ExecuteNetwork CLNarumol Prangnawarat
* Add check if Sub-tensors cannot be used, call ACL function * Add ClSplitterWorkload functions * Modify IsSplitterSupported to call ACL validate function if sub-tensor cannot be used * Also check if quantization parameters match when using sub-tensors Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Change-Id: I5dfd0e422b7d485dd4421a664add83d870bec5d6
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-22IVGCVSW-3132 Reintroduce SubGraph definition, but deprecatedMatteo Martincigh
* 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>
2019-05-20IVGCVSW-3124 Rename workloadFactory CreateMerger to CreateConcatJim Flynn
Change-Id: Id836372c0e4ef0c3996085facc4da6263366abcf Signed-off-by: Jim Flynn <jim.flynn@arm.com>
2019-05-20IVGCVSW-2967 Support QSymm16 for Constant workloadsNina Drozd
* 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
2019-05-20IVGCVSW-3117 Rename ClMergerWorkload to ClConcatWorkloadJim Flynn
Change-Id: Ie0394336a772afa7b075eb562ac5191c8b3ec9f3 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-14MLCE-101 Add dilation support for DepthWiseConv workloadBruno Goncalves
Adds unit tests for dilated depthwise conv Change-Id: Iad0a1b33d07fb0ef8f9f6edf0fd0f83a5800a36d Signed-off-by: Bruno Goncalves <bruno.slackware@gmail.com> Signed-off-by: Matthew Bentham <matthew.bentham@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-05-03IVGCVSW-3030 Update the backend code to create also a list ofMatteo Martincigh
non-optimized SubgraphViews * Removed pointless CreateSubgraphViewConverter method in the IBackendInternal interface Change-Id: Ie2d3c0e74fb3d53e67f76924ac6d05050a5e6e2e Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
2019-05-03IVGCVSW-3003 Fix the bug in setting the same tuningLevel in the constructorRuomei Yan
Change-Id: I53bd3a8e8f846edbebb1598559f3541698e647e5 Signed-off-by: Ruomei Yan <ruomei.yan@arm.com>
2019-04-30IVGCVSW-2773 Integrate new CL tuner into ArmNNRuomei Yan
!android-nn-driver:1038 Change-Id: Ia94743a64109b5eddcd44b03cf6ba5b3a4de4e53 Signed-off-by: Ruomei Yan <ruomei.yan@arm.com>
2019-04-30IVGCVSW-2405 Rename SubGraph to SubgraphViewDerek Lamberti
Change-Id: Ie50aeccf053c20c3a01a75042bbc3acd824375af Signed-off-by: Derek Lamberti <derek.lamberti@arm.com> Signed-off-by: Matteo Martincigh <matteo.martincigh@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-04-10IVGCVSW-2947 Remove boost dependency from include/TypesUtils.hppAron Virginas-Tar
!android-nn-driver:968 Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: I03ccb4842b060a9893567542bfcadc180bbc7311
2019-03-15IVGCVSW-2354 Caffe SqueezeNet through armnn Cl and NeonNarumol Prangnawarat
* Compute Softmax Acl axis for Cl and Neon * Add unittests for Softmax in 3D and 4D * Correct input and output layer names in CaffeSqueezeNet inference test Change-Id: I2d369d9a2db19c40f2af3341039dd33f0c5637b1 Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com>
2019-02-26IVGCVSW-2756 Fix bug in ClSpaceToBatchNdWorkloadNattapat Chaimanowong
*Padding was not in format expected by Cl Change-Id: Id0de3fd2b306e31d555e2d67bc4406e5302dcd3b Signed-off-by: Nattapat Chaimanowong <nattapat.chaimanowong@arm.com>
2019-02-21IVGCVSW-2424 Add LOGISTIC Operator Support (CL)Finn Williams
* Added Logistic tests in ClLayerTests * Removed check for QuantisedAsymm8 in CLActivationWorkload Change-Id: I6950e18109504d8426b727cb6b7d19898c899024 Signed-off-by: Finn Williams <finn.williams@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-30IVGCVSW-2458 Refactor the Optimize function (Network.cpp) so thatMatteo Martincigh
subgraphs are optimized by the backends * Added a new method OptimizeSubGraph to the backend interface * Refactored the Optimize function so that the backend-specific optimization is performed by the backend itself (through the new OptimizeSubGraph interface method) * Added a new ApplyBackendOptimizations function to apply the new changes * Added some new convenient constructors to the SubGraph class * Added AddLayer method and a pointer to the parent graph to the SubGraph class * Updated the sub-graph unit tests to match the changes * Added SelectSubGraphs and ReplaceSubGraphConnections overloads that work with sub-graphs * Removed unused code and minor refactoring where necessary Change-Id: I46181794c6a9e3b10558944f804e06a8f693a6d0
2019-01-29IVGCVSW-2443 Add Cl support for Greater operatorNattapat Chaimanowong
Change-Id: I7eb3b2e712dbaa5c13f6cf3a1da63df4d2bd4de5
2019-01-24IVGCVSW-2555 Add no-op implementation for Detection PostProcessNarumol Prangnawarat
* Added DetectionPostProcessQueueDescriptor to WorkloadData * Added CreateDetectionPostProcess function in WorkloadFactory.hpp * Added stub implementation of the CreateDetectionPostProcess in workload factories * Added DetectionPostProcessLayer stub implementation * Added AddDetectionPostProcessLayer to Network * Added IsDetectionPostProcessSupported to LayerSupportBase Change-Id: Ifc071b3b6b12877c997bdcc43d769c8f891d5c6c
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-23IVGCVSW-2455 Move the extra backend code to a new git repoMatteo Martincigh
* Refactored all the workload factories to use "virtual" properly * Removed the precompiled layer support from the optimizer * Disabled compiler optimization for debug build to ease debugging Change-Id: I6ab83abd78f422771359295e25b79bb9be613cfd
2019-01-23IVGCVSW-2467 Update Boolean type supportNattapat Chaimanowong
Change-Id: I0ab3339e8803a3e4e700d8fec9883eccc524b31e
2019-01-22IVGCVSW-2467 Remove GetDataType<T> functionNattapat Chaimanowong
Change-Id: I7359617a307b9abb4c30b3d5f2364dc6d0f828f0
2019-01-16IVGCVSW-2508 Add no-op factory implementations and layer for Gather operatornarpra01
* Added GatherQueueDescriptor to WorkloadData * Added CreateGather function in WorkloadFactory.hpp * Added stub implementation of the CreateGreater function in workload factories * Added GatherLayer stub implementation * Added AddGatherLayer to Network * Added IsGatherSupported to LayerSupportBase Change-Id: I0408fd54e88a7d4e3d9e1c2811a9323f0da52a04
2019-01-15IVGCVSW-2454 Merge together the pluggable backends work (was in aMatteo Martincigh
separate branch) and master * Brings in all the changes done for the pluggable backends * Added sub-graph support and tests * Added precompiled layer support and tests * Moved BackendSettings to a separate file * Removed the backend-specific code * Ported DebugLayer and associated functionality * Included fixes to make those changes work with master Change-Id: Id7028fa7917527b844628d5aff5732e3d94c0488
2019-01-14MLCE-86 Reversing the pad list in the ClPadValidate function similarly to ↵Éanna Ó Catháin
whats done in the constructor. Change-Id: I9488cebd63767c0c51d9ee6333d5aaf0e4a85847
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-10MLCE-82 Add IsLayerSupported tests for MEANMatthew Bentham
Change-Id: I43be451f490db0154021f47a2fd49d1269cf5b95
2019-01-09IVGCVSW-2438 Add Minimum operator support (CL)saoste01
* Added CL unit tests Change-Id: Ia4af49b133774141384a177f5b042e65764bf682
2019-01-07IVGCVSW-2371 Add Rsqrt Ref implementationMohamed Nour Abouelseoud
*Added Unit Tests Change-Id: I6cceb8e6dcda35ce08415f8e5ca86019a64d26e3