aboutsummaryrefslogtreecommitdiff
path: root/src/armnn
AgeCommit message (Collapse)Author
2019-02-13IVGCVSW-2617 Add static quantization of SpaceToBatchJim Flynn
* Some refactor of the existing QuantizePermute test for reuse Change-Id: Ifaf1afc476bad348f260fa5340c0153e7ade2703 Signed-off-by: Jim Flynn <jim.flynn@arm.com>
2019-02-12IVGCVSW-2614 Support static quantization of PermuteFrancisMurtagh
Change-Id: I4f208d18f7ac6bb04423cc26ecf61adf0ccc5d26 Signed-off-by: FrancisMurtagh <francis.murtagh@arm.com>
2019-02-12IVGCVSW-2607 Refactor range tracking into own classDerek Lamberti
Change-Id: I1b409e5dac7922859e04a554893b982afc5ad1e7 Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
2019-02-12IVGCVSW-2623 Support static quantization of DepthwiseConv2dFrancisMurtagh
Change-Id: Iab0d5aed243aca921661e4d39770fe02b1330442 Signed-off-by: FrancisMurtagh <francis.murtagh@arm.com>
2019-02-11IVGCVSW-2531 Serialize a simple ArmNN NetworkMike Kelly
Change-Id: I68cf5072aca6e3a8b3b8c57e19b6d417cd5813fc Signed-off-by: Mike Kelly <mike.kelly@arm.com>
2019-02-11IVGCVSW-2625 Support static quantization of softmaxruoyan01
Change-Id: I216344ee10bbffadb648d4aef1d9a0d9dbb4a341 Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> Signed-off-by: ruoyan01 <ruomei.yan@arm.com>
2019-02-11IVGCVSW-2676 Make biases optional in ILayerVisitor for Convolution2D, ↵Aron Virginas-Tar
DepthwiseConvolution2D and FullyConnected Change-Id: I3048504ff699fdb266488e7c07b7262e5843d4b0 Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com>
2019-02-11IVGCVSW-2622 Add static quantization of 2DConvolutionJim Flynn
Change-Id: If7985a54eba97f7c61413e0804879e4afbf65c4d Signed-off-by: Jim Flynn <jim.flynn@arm.com>
2019-02-11IVGCVSW-2624 Support static quantization of FullyConnectedFrancisMurtagh
Change-Id: Ib18085e7e4b2e9d55e29b14122410732e3bdd088 Signed-off-by: FrancisMurtagh <francis.murtagh@arm.com>
2019-02-08IVGCVSW-2672 Code cleanup after changesMatteo Martincigh
* Minor code cleanup and refactoring Change-Id: I9c6390c15944686134ddf4b47839762f2bb13922 Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
2019-02-08IVGCVSW-2607 Implement Input range override mechanismMatteo Martincigh
* Added the OverrideInputRange method to the Quantizer API * Created OverrideInputRangeVisitor to implement the override mechanism * Moved the quantizer utility functions to the new NetworkQuantizerUtils files * Moved the map of quantization ranges out of the StaticRangeVisitor and into the NetworkQuantizer * Added unit tests * Code refactoring and cleanup Change-Id: I9c1d006c1b6a35fbc04584a832fbe489f8f9276d Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
2019-02-08Github #123 Catch exceptions by referenceMatthew Bentham
Change-Id: Ie664cb7127434ad9c7a03c4a31f3c71fdebd49b9 Signed-off-by: Matthew Bentham <Matthew.Bentham@arm.com>
2019-02-08IVGCVSW-2559 End to end tests for Detection PostProcessNarumol Prangnawarat
* end to end tests for Detection PostProcess float and uint8 * add anchors to AddDetectionPostProcessLayer * add anchors to VisitDetectionPostProcessLayer * refactor code Change-Id: I3c5a9a4a60b74c2246b4a27692bbf3c235163f90 Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com>
2019-02-07IVGCVSW-2553 Change BOOST_TEST to BOOST_CHECK_MESSAGE in CheckConstTensorPtrsJim Flynn
Change-Id: I13614fe3d29eb1040b5927dd69992aab6c136bb6 Signed-off-by: Jim Flynn <jim.flynn@arm.com>
2019-02-07IVGCVSW-2608: support static quantization of ActivationNina Drozd
Change-Id: Ia9afd15d002d4454ec72f219c5cf214704f6ae31 Signed-off-by: Nina Drozd <nina.drozd@arm.com>
2019-02-07IVGCVSW-2553 Add Unit Test for ConstTensor layer visitorsjimfly01
Change-Id: I20a67135e4af7aa1f28f5000d73122f4e5e3acd5 Signed-off-by: Jim Flynn <jim.flynn@arm.com>
2019-02-07IVGCVSW-2609 Quantize BatchNormalizationLayerDerek Lamberti
Change-Id: I7b847112a0322ffc8b88a0708d8439bfb97cfe2c Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
2019-02-06IVGCVSW-2654 Test quantization of addition, input and outputDerek Lamberti
Change-Id: I6c61df213278e6ba65807932548bb2eaa159deba Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
2019-02-06IVGCVSW-2606 Produce quantized InputNetwork from simple FP32 InputNetworkDerek Lamberti
Change-Id: I2140a7af5961ddf8267fbb127202de3900ea79e3 Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
2019-02-04IVGCVSW-2551 Add Descriptor and name only unit tests for VisitorFrancisMurtagh
* Add concrete subclasses for layers taking descriptor as argument * Add unit test cases for all layers Change-Id: Ie0135b34a5a41e5ce654b7c3186eccea392ab919 Signed-off-by: FrancisMurtagh <francis.murtagh@arm.com>
2019-02-01IVGCVSW-2552 Add unit tests for the input and output layers for VisitorFrancisMurtagh
Change-Id: I73ae9b43fa1631fdec423177d37fffc719c71f88 Signed-off-by: FrancisMurtagh <francis.murtagh@arm.com>
2019-01-31IVGCVSW-2471 Code cleanup where necessaryMatteo Martincigh
* Added comments for the new API functions * Added comments to some critical parts of the code * Removed unnecessary code Change-Id: I04d4e7373b45b8a3806cacc93a8bd09351c0972a 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-2549 Add name only layer unit tests for VisitorFrancisMurtagh
Change-Id: I304ddd3efa2f1c5a8e2143276a97c031a624601e
2019-01-29IVGCVSW-2569 Add implementation of ConstTensor Accept functionsjimfly01
* Create the required ConstTensors and pass them to the appropriate visit method. Back fill of dummies added during IVGCVSW-2547 * Moved the VisitDetectionPostProcessLayer function declaration in ILayerVistor to its correct location after the VisitDepthwiseConvolution2dLayer functions. Change-Id: I0bd2f8c3603cbdb933b1216ead96dd8273eb5013
2019-01-28IVGCVSW-2548 Add member function to check layer pointer not nullFrancisMurtagh
Change-Id: I48c8795e546e3a36414ae88316908519d5879628
2019-01-28IVGCVSW-2548 Add the TestLayerVisitor classFrancisMurtagh
* Add abstract base class TestLayerVisitor Change-Id: Id453f3ad9721f3680166a41b75a1880cf20032f7
2019-01-25IVGCVSW-2556 Add Layer implementation for Detection PostProcessNarumol Prangnawarat
* Add DetectionPostProcessDescriptor. * Add implementation for DetectionPostProcessLayer. * Unit test to validate output. Change-Id: If63e83eb2a2978c549071c7aeb272906e7c35fe9
2019-01-25IVGCVSW-2547 Add Accept function to IConnectableLayerjimfly01
* Layers which callback VisitXXXLayer with ConstTensor have been implemented with dummies to speed up implementation and unblock IVGCVSW-2531 Change-Id: I49b8035f12ec72d6bd6cee95075692f98c48e193
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-2509 Add GatherLayer implementationnarpra01
* implementation of ValidateTensorShapesFromInputs * unit tests Change-Id: I1ed88f8ba0ea20329a259c5f36caea4b1fbeb013
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-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
2019-01-04MLCE-77 Depthwise Convolution with depth multiplier > 1 doesn't workMatteo Martincigh
* Unified ArmNN's weight format to [ M, I, H, W ] for the depthwise convolution * Added conversion utilities to permute/reshape the weights as appropriate when using CL and Neon backends * Updated the reference implementation of the convolution * Updated the relevant unit tests accordingly !android-nn-driver:459 Change-Id: I07d0818efa9d1ca1e5dad82983aac1fe78eadb18
2019-01-02IVGCVSW-2353 Ignore control inputs in TensorFlow parsernarpra01
* Allow control inputs from TensorFlow graph but ignore them in ArmNN graph. * Add utility function to test ArmNN graph structure. * Add ArmNN graph structure tests in TensorFlow paresr to ensure that control inputs are ignored in ArmNN graph as well as their inputs that are not used anywhere else. Change-Id: Ib0ea0d2df85e3fc79b748fa4c9d20e0649352bc1
2018-12-24IVGCVSW-59 Add documentation to the public APIConor Kennedy
* Add documentation to the Descriptors * Add documentation to the layers Change-Id: I5e0849753903565227fd47d329a600fd90b2feb9
2018-12-20IVGCVSW-2367 Add Equal Operator to TfParserjimfly01
* Unit tests in Equal.cpp * Fixed error in Network::AddEqualLayer * Refactored TfParser::Minimum/Equal to get rid of duplicate code Change-Id: I0ed6f888eb391c995b88be20dc0c1b916dd14c3c
2018-12-17IVGCVSW-2398 Add no-op factory implementations for all backends for theFrancisMurtagh
Equal operation * Add QueueDescriptor in WorkloadData.hpp * Add CreateEqual function in WorkloadFactory.hpp * Added stub implementation of the CreateEqual function in RefWorkloadFactory, NeonWorkloadFactory and ClWorkloadFactory Change-Id: Iec6dc2f989c67fa6f0c32cfb93508995c8580783
2018-12-14IVGCVSW-2377 Add no-op factory implementations for all backends for theMatteo Martincigh
Greater operation * Added QueueDescriptor in WorkloadData.hpp * Added CreateGreater function in WorkloadFactory.hpp * Added stub implementation of the CreateGreater function in RefWorkloadFactory, NeonWorkloadFactory and ClWorkloadFactory * Added GreaterLayer stub implementation * Renamed ArithmeticBaseLayer to ElementwiseBaseLayer Change-Id: I7e38c2936de905da921a92ba3f918478169ec7f5
2018-12-13IVGCVSW-2348 Support boolean data typeruoyan01
Change-Id: Ifd28e049192e6f5fe5c0f5d358afb2b530eef882
2018-12-11IVGCVSW-1434 Add debug mode to Optimizerkeidav01
* Modified optimizer to support debug mode via DebugLayer Change-Id: Ic8f313778e55540c182cf99876c44a0823be04c6
2018-12-07IVGCVSW-2268 Remove the input swizzling from ParseConcatMatteo Martincigh
* Removed the input swizzling when the concatenation dimension is 3 in ParseConcat in the TF parser * No longer using the helper ProcessConcatInputTensorInfo, where the input was being swizzled if the concatenation dimension was 3 * Added a new convenience constuctor to TensorShape that initializes a shape to all zeros given only the number of dimensions Change-Id: I82a207e41bddc5fea21a0b5a38eafa24ad75d1c2