aboutsummaryrefslogtreecommitdiff
path: root/src/backends/reference/RefLayerSupport.hpp
AgeCommit message (Collapse)Author
2021-08-10MLCE-530 Add support for UnidirectionalSequenceLstm to RefWorkloadexperimental/daves_custom_allocator_dmabufNarumol Prangnawarat
* Add implementation of IsUnidirectionalSequenceLstmSupported to RefLayerSupport * Add RefUnidirectionalSequenceLstmWorkload * Refactor Lstm to be able to use for Lstm and SequenceLstm * Unit tests Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Change-Id: Ibc066d213213a11b955dfefbe518de643298ba0c
2021-06-16MLCE-510 Add CpuRef Shape Operator to ArmNNKeith Davis
* Add front end * Add reference workload * Serialization/Deserialization * Add unit tests * Update ArmNN Versioning Signed-off-by: Keith Davis <keith.davis@arm.com> Change-Id: I6fcb1fa341d6f08dea4003b13544e6e9f53fefd3
2021-04-12IVGCVSW-5410 Add front-end support for CASTmathad01
IVGCVSW-5415 Add TfLiteParser support for CAST * Added front end support for CAST, including support in the Reference workload, Serialization, Deserializtion, Unit tests, and TfLiteParser. Signed-off-by: mathad01 <matthew.haddon@arm.com> Change-Id: Iaf670ca5912a21ed6bc84f7f83a68b42154846bb
2021-02-03backends/reference: Add ReduceSum operation supportSadik Armagan
This patch addes ReduceSum operation support for reference backend, which computes the sum of elements across dimensions of a tensor. Changelog v1: - Fix file header descriptions. Chagelog v2: - Fix line limit issue. - Fix type conversion issue. Changelog v3: - Remove tabs. - Modify newly added file headers. Changelog v4: - Symbol on header isn't allowed so drop it from newly added file headers. Changelog v5: - Remove tabs, fix the use of brackets and align lines correctly. Changelog v6: - Add serializer and deserializer support. Changelog v7: - Fix build error add missed code. Changelog v8: - Rename ReduceSumDecriptor to ReduceDescriptor - Update m_KeepDims field data type to bool on ReduceDescriptor - Add ReduceOperation field to ReduceDescriptor - Rename ReduceSumLayer to ReduceLayer - Update ReduceLayer to use ReduceDescriptor - Update ReduceLayer::ValidateTensorShapesFromInputs() function - Rename RefReduceSumWokload to RefReduceWorkload - Update workload to use ReduceDescriptor - Update workload to use Decoders and Encoders - Remove ReduceSum.hpp and ReduceSum.cpp - Added Reduce.hpp and Reduce.cpp - Move Mean.cpp (which is implementing REDUCE_MEAN) functionality to Reduce.cpp - Update RefMeanWorkload to call Reduce function with ReduceOperation::Mean argument - Remove Mean.hpp and Mean.cpp - Update the Serializer/Deserializer ArmnnSchema.fbs for ReduceLayer, ReduceDescriptor, and ReduceOperation - Update Serializer and Deserializer for serializing/parsing ReduceLayer - Added TfLiter parser Sum test for REDUCE_SUM operator - Make corresponding changes on front-end and Ref backend to support REDUCE_SUM operator Changelog v9: - Fixed build errors. Change-Id: I8c8e034f3df73f9565b3c18eff51ecca6c542195 Signed-off-by: Inki Dae <inki.dae@samsung.com> Signed-off-by: Sadik Armagan <sadik.armagan@arm.com>
2020-11-19IVGCVSW-5093 Remove redundant LogicalUnary functionsJames Conroy
* In favour of ElementwiseUnary functions which are the currently used code path. Signed-off-by: James Conroy <james.conroy@arm.com> Change-Id: I34964d2dcabd4b7ddf0b455df17c48e3c6812ee4
2020-11-09IVGCVSW-5091 Add Logical ops frontend and ref implJames Conroy
* Add frontend and reference implementation for logical ops NOT, AND, OR. * Unary NOT uses existing ElementwiseUnary layer and ElementwiseUnary descriptor. * Binary AND/OR uses new layer LogicalBinary and new LogicalBinary descriptor. * Add serialization/deserializion support and add missing ElementwiseUnary deserializer code. * Add additional Boolean decoder in BaseIterator.hpp. Signed-off-by: James Conroy <james.conroy@arm.com> Change-Id: Id343b01174053a166de1b98b6175e04a5065f720
2020-07-06IVGCVSW-4624 Add a RANK Reference ImplementationFinn Williams
* Add Rank front end * Add Rank reference implementation * Add Rank serialization support * Add Scalar serialization support Signed-off-by: Finn Williams <Finn.Williams@arm.com> Change-Id: I06e4a468c2a84e79bae2e6c5348596bbbf853b4b
2020-07-01IVGCVSW-4903 Connect axis parameter in Gather from android to ACL.Teresa Charlin
!android-nn-driver:3302 Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com> Change-Id: Ifbc49acb5272f8a36719bb68676e44817190537d
2020-06-15IVGCVSW-4620 Add Fill Reference ImplementationRyan OShea
* Add Fill Reference Implementation * Refactor FP converter to use static_cast Signed-off-by: Ryan OShea <Ryan.OShea2@arm.com> Signed-off-by: Keith Davis <keith.davis@arm.com> Change-Id: I532e2f982981d047690755fac43a0e9cf8b17dcd
2020-05-02IVGCVSW-4449 Add QLstm ref implementationJames Conroy
* Adds ref implemenation for new HAL 1.3 operator, QLstm. * Adds Layer and CreateWorkload unit tests. * Adds WorkloadData validate for QLstm. Signed-off-by: James Conroy <james.conroy@arm.com> Change-Id: I8a721f07ff06105e6495a1a0561b9503aa8146dc
2020-03-19IVGCVSW-4516 Add ConvertFp32ToBf16Layer and Ref workload supportNarumol Prangnawarat
Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Change-Id: I9099a4f840fb747336f77d20a0868b64e801a310
2020-03-17IVGCVSW-4515 Add ConvertBf16ToFp32Layer and Ref workload supportNarumol Prangnawarat
Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Change-Id: Ida6d7e1d2c9abe0618f8b711bab9d62c011090d6
2020-03-02IVGCVSW-4375 Add support for TransposeMike Kelly
* Added TransposeLayer * Added CL, Neon and Ref Workloads * Added Transpose utilities * Added Serializer and Deserializer support * Added Quantizer support Signed-off-by: Mike Kelly <mike.kelly@arm.com> Change-Id: I04c755ba7cb5b1edf72b3c9f3c0314878032e3c7
2020-01-24IVGCVSW-4262 Use ACL Permute and Reshape Validate function in Neon and CLKevin May
!android-nn-driver:2642 Signed-off-by: Kevin May <kevin.may@arm.com> Change-Id: Ibabb73c0ae0df2e530a68398f75c76e6b80c0701
2020-01-23IVGCVSW-4259 Add frontend and reference workload for UnaryOperationLayerjosh minor
* Added new layer named ElementwiseUnary * Deprecated existing Abs/Rsqrt layer functions * Updated existing Abs/Rsqrt test infrastructure to use new layer * Added boilerplate for new Exp,Neg,Sqrt elemwise op layers * AbsQuantize test removed pending future commit * Serialization support added !android-nn-driver:2550 Change-Id: Ic595c645925e17b45db568187fd05646daf2e87f Signed-off-by: josh minor <josh.minor@arm.com>
2019-12-09IVGCVSW-4227 Add CpuAcc backend support for DetectionPostProcessDerek Lamberti
Change-Id: I318bf92b8d1db593d9c30b9b4412bfecbe65bc12 Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
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-3975 Add reference workload for LOG_SOFTMAXAron Virginas-Tar
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: I10bb7133e0e2d6d7199abdf39562b1226bbbd3e7
2019-10-09IVGCVSW-3888 Add INSTANCE_NORMALIZATION Reference implementationKevin May
Signed-off-by: Kevin May <kevin.may@arm.com> Change-Id: I725022f86e990c482ea323fc90fd136fe493ed68
2019-09-24IVGCVSW-3885 Add reference workload for DepthToSpaceAron Virginas-Tar
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: Id937dc4425884ad1985dcdfaae8bf3fb64f0c766
2019-09-19IVGCVSW-3723 Adding reference workload support for ArgMinMaxNikhil Raj
Change-Id: I65209ecec4e3abf808163239748d6e830568c2e3 Signed-off-by: Nikhil Raj <nikhil.raj@arm.com>
2019-09-18IVGCVSW-3878 Add reference workload for SLICEAron Virginas-Tar
* Added reference workload implementation and layer tests for all supported tensor dimensions (1d, 2d, 3d, 4d) Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: I40eb300828933e9183027281105d1a7e597d1569
2019-09-06IVGCVSW-3740 Add Reference Workload support for ABSSadik Armagan
* Implemented RefAbsWorkload and unit tests Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: Ibfcdb2b37fd8d240c181f96856e2c997a4b88914
2019-07-17IVGCVSW-3419 Add reference workload support for the new Stack layerMatthew Jackson
* Added reference workload for the Stack layer * Added factory methods * Added validation support * Added unit tests Signed-off-by: Matthew Jackson <matthew.jackson@arm.com> Change-Id: Ib14b72c15f53a2a2ca152afc357ce2aa405ccc88
2019-07-09IVGCVSW-3397 Join lstm parameter infos in a struct for isLstmSupportedJan Eilers
!android-nn-driver:1461 Change-Id: I9d8fe7adf13832ed0cbcfe98b2353c2f37011d22 Signed-off-by: Jan Eilers <jan.eilers@arm.com>
2019-07-02IVGCVSW-3236 Extend Ref LSTM with layer normalization supportJan Eilers
* Add descriptor values * Update lstm queue descriptor validate function * Update lstm workload * Update isLstmSupported (Cl and Ref), LayerSupportBase, ILayerSupport * Update lstm layer * Add unit tests Signed-off-by: Jan Eilers <jan.eilers@arm.com> Change-Id: I932175d550facfb342325051eaa7bd2084ebdc18 Signed-off-by: Jan Eilers <jan.eilers@arm.com>
2019-07-01IVGCVSW-3365 Add reference workload support for ResizeLayerTeresa Charlin
Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com> Change-Id: Id551690065dca0686ce597d1f0c14fd73163481e
2019-06-27IVGCVSW-3324 Add end-to-end tests for TransposeConvolution2d on CpuRefAron Virginas-Tar
* Added one end-to-end test for all supported data types and data layout * Implemented RefLayerSupport::IsTransposeConvolution2dSupported() * Fixed formula used in TransposeConvolution2dLayer::InferOutputShapes() Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Change-Id: If1ba3c226ecfa17f7fceffae857f39297c6433f2
2019-06-19IVGCVSW-3231 Add reference workload support for SpaceToDepthKeith Davis
* Added reference workload for SpaceToDepth * Added unit tests for float32 & uint8 * Minor sort refactoring to RefWorkloads.hpp to alphabetical order Change-Id: I2e01f8101650e2aae102a8a32bc0064f067141ab Signed-off-by: Keith Davis <keith.davis@arm.com>
2019-06-19IVGCVSW-3268 Add Reference workload support for the new Prelu Activation layerMatteo Martincigh
* Added reference workload for the PReLU Activation layer * Added factory methods * Added validation support * Added Int16 support * Added unit tests Change-Id: Ic950d908c5e0a335dccd2960a3ffab0f8b599876 Signed-off-by: Matteo Martincigh <matteo.martincigh@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-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-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-01IVGCVSW-2871 Ref QuantizeLayer workloadDerek Lamberti
Change-Id: If048b2a053c542b31ae344fe0af04d9b4f40eb6d Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
2019-03-29IVGCVSW-2875 Reference implementation and unit tests for DequantizeNattapat Chaimanowong
Change-Id: Ie4ade0519cb0bbe35dc36be6c9cd749b9171c74b Signed-off-by: Nattapat Chaimanowong <nattapat.chaimanowong@arm.com>
2019-03-26IVGCVSW-2881 Remove DebugDescriptorNattapat Chaimanowong
* Also update Debug layer to use layer guid information Change-Id: I9ec1f639299c3f855b670ff031a0e88d685cfc6b Signed-off-by: Nattapat Chaimanowong <nattapat.chaimanowong@arm.com>
2019-02-04IVGCVSW-2557 Ref Workload Implementation for Detection PostProcessNarumol Prangnawarat
* implementation of DetectionPostProcessQueueDescriptor validate * add Uint8ToFloat32Workload * add implementation of Detection PostProcess functionalities * add ref workload implemenentation for float and uint8 * add layer support for Detection PostProcess in ref * unit tests Change-Id: I650461f49edbb3c533d68ef8700377af51bc3592
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-22IVGCVSW-2510 Ref workload implementation for Gather operatornarpra01
* add implemenentation for GatherQueueDescriptor validate function * add FirstInputTypedWorkload to allow type check on the first input tensor only * add ref workload implemenentation for float and uint8 * add Gather layer support in Ref * unit tests Change-Id: I4578a3211f11d24aa29d15bcf7f45b0445bcd1ee
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-07IVGCVSW-2371 Add Rsqrt Ref implementationMohamed Nour Abouelseoud
*Added Unit Tests Change-Id: I6cceb8e6dcda35ce08415f8e5ca86019a64d26e3
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-07IVGCVSW-2316 Add reference implementation and unit tests for DebugNattapat Chaimanowong
Change-Id: Ib2e5de2a057da57ef77a9f5c4367d699d4773294
2018-12-04IVGCVSW-2247 Adding a min Elementwise Workload and testsÉanna Ó Catháin
Change-Id: I017ca6c23b62a8978982de0ca4ad204cb8cf7c67
2018-11-29IVGCVSW-2254 Add Reference workload for Maximumsaoste01
Change-Id: Id7302c6b1df995ebe6eb8eb94bab38bee1b31b0b
2018-11-26IVGCVSW-2087 Reference implementation and unit tests for StridedSliceNattapat Chaimanowong
Change-Id: Ifeacc0adb4547c72537b9ea7a61bf3c4ec3673fa
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-12IVGCVSW-2054: BATCH_TO_SPACE_ND Reference implementation and Unit tests.Éanna Ó Catháin
Change-Id: I13c6728dbb60643d0e086d171225c5d802987f92