platform/upstream/armnn.git
5 years agoIVGCVSW-2557 Ref Workload Implementation for Detection PostProcess
Narumol Prangnawarat [Thu, 31 Jan 2019 15:31:54 +0000 (15:31 +0000)]
IVGCVSW-2557 Ref Workload Implementation for Detection PostProcess

 * 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

5 years agoAdded TfLiteParser test for InceptionV3Quantized
Bruno Goncalves [Thu, 27 Dec 2018 18:15:01 +0000 (16:15 -0200)]
Added TfLiteParser test for InceptionV3Quantized

Change-Id: I6ed434b798c617f85ca1faa7c5eef4cdabff4a07

5 years agoAdded TfLiteParser test for MobilenetV2Quantized
Bruno Goncalves [Thu, 27 Dec 2018 18:13:58 +0000 (16:13 -0200)]
Added TfLiteParser test for MobilenetV2Quantized

Change-Id: I0896c5f74d4e432a2ea8eff3cbe2db0702aa9ed9

5 years agoIVGCVSW-2552 Add unit tests for the input and output layers for Visitor
FrancisMurtagh [Fri, 1 Feb 2019 11:48:58 +0000 (11:48 +0000)]
IVGCVSW-2552 Add unit tests for the input and output layers for Visitor

Change-Id: I73ae9b43fa1631fdec423177d37fffc719c71f88
Signed-off-by: FrancisMurtagh <francis.murtagh@arm.com>
5 years agoIVGCVSW-2280 Add unit tests for RESIZE_BILINEAR NEON operator
Conor Kennedy [Fri, 1 Feb 2019 07:23:17 +0000 (07:23 +0000)]
IVGCVSW-2280 Add unit tests for RESIZE_BILINEAR NEON operator

* Add uint8 tests

Change-Id: I178e34a638411fa065bdc4c722136a02ba9e000b
Signed-off-by: Conor Kennedy <conor.kennedy@arm.com>
5 years agoIVGCVSW-2603 The macros ARMCOMPUTECL_ENABLED and ARMCOMPUTENEON_ENABLED
Matteo Martincigh [Thu, 31 Jan 2019 15:35:59 +0000 (15:35 +0000)]
IVGCVSW-2603 The macros ARMCOMPUTECL_ENABLED and ARMCOMPUTENEON_ENABLED
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>
5 years agoIVGCVSW-2604 Fix bug that made it impossible to execute inference tests on certain...
Aron Virginas-Tar [Thu, 31 Jan 2019 16:44:26 +0000 (16:44 +0000)]
IVGCVSW-2604 Fix bug that made it impossible to execute inference tests on certain backends

* Read compute devices from the CL as strings and convert them into BackendId objects afterwards

Change-Id: Icded1c572778f5a213644e3052ff6dfe7022128b
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com>
5 years agoIVGCVSW-2471 Code cleanup where necessary
Matteo Martincigh [Thu, 31 Jan 2019 12:09:49 +0000 (12:09 +0000)]
IVGCVSW-2471 Code cleanup where necessary

 * 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>
5 years agoMLCE-90 Fixing issues with NEON pad tests
Éanna Ó Catháin [Thu, 31 Jan 2019 10:28:20 +0000 (10:28 +0000)]
MLCE-90 Fixing issues with NEON pad tests

Change-Id: I3e971c66798610d2c96445fa3babb7cc90cf8031
Signed-off-by: Éanna Ó Catháin <eanna.ocathain@arm.com>
5 years agoIVGCVSW-2601 Fix for ExecuteNetwork output data printing bug
Aron Virginas-Tar [Thu, 31 Jan 2019 13:12:34 +0000 (13:12 +0000)]
IVGCVSW-2601 Fix for ExecuteNetwork output data printing bug

Change-Id: I7e8d377cdbddf0176ae05d8b6b2fd03c6f614168
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com>
5 years agoIVGCVSW-2564 Fix output buffer initialization bug in ExecuteNetwork
Aron Virginas-Tar [Wed, 30 Jan 2019 17:41:47 +0000 (17:41 +0000)]
IVGCVSW-2564 Fix output buffer initialization bug in ExecuteNetwork

Change-Id: I69eac52c9c944a5d209c5c7432c1b7f46e64f05b
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com>
5 years agoIVGCVSW-2522 Add DCO requirement to Contributor Guide
Matthew Bentham [Wed, 30 Jan 2019 17:40:01 +0000 (17:40 +0000)]
IVGCVSW-2522 Add DCO requirement to Contributor Guide

Change-Id: Ieb3d69317395ef4ed1ef631ae98b4277db3d2e49
Signed-off-by: Matthew Bentham <matthew.bentham@arm.com>
5 years agoIVGCVSW-2579 Create Flatbuffers schema for simple Armnn network
Nattapat Chaimanowong [Wed, 30 Jan 2019 13:33:11 +0000 (13:33 +0000)]
IVGCVSW-2579 Create Flatbuffers schema for simple Armnn network

Change-Id: Ief6b1891a362f0f9bc3d388634ec551ab742503d

5 years agoIVGCVSW-2458 Refactor the Optimize function (Network.cpp) so that
Matteo Martincigh [Thu, 24 Jan 2019 14:06:23 +0000 (14:06 +0000)]
IVGCVSW-2458 Refactor the Optimize function (Network.cpp) so that
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

5 years agoIVGCVSW-2437 Inference test for TensorFlow Lite MobileNet SSD
Aron Virginas-Tar [Tue, 29 Jan 2019 11:09:51 +0000 (11:09 +0000)]
IVGCVSW-2437 Inference test for TensorFlow Lite MobileNet SSD

Change-Id: If7ee1efa3ee79d9eca41c5a6219b3fc42e740efe

5 years agoIVGCVSW-2564 Add support for multiple input and output bindings in InferenceModel
Aron Virginas-Tar [Thu, 24 Jan 2019 17:05:36 +0000 (17:05 +0000)]
IVGCVSW-2564 Add support for multiple input and output bindings in InferenceModel

Change-Id: I64d724367d42dca4b768b6c6e42acda714985950

5 years agoIVGCVSW-2549 Add name only layer unit tests for Visitor
FrancisMurtagh [Tue, 29 Jan 2019 12:15:23 +0000 (12:15 +0000)]
IVGCVSW-2549 Add name only layer unit tests for Visitor

Change-Id: I304ddd3efa2f1c5a8e2143276a97c031a624601e

5 years agoAdded ConstantLayer support to TfLiteParser
Bruno Goncalves [Thu, 27 Dec 2018 16:21:43 +0000 (14:21 -0200)]
Added ConstantLayer support to TfLiteParser

Change-Id: Iecc4fe8208b442d9c872e56c3d47249f959c6cc1

5 years agoIVGCVSW-2569 Add implementation of ConstTensor Accept functions
jimfly01 [Mon, 28 Jan 2019 12:51:53 +0000 (12:51 +0000)]
IVGCVSW-2569 Add implementation of ConstTensor Accept functions

* 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

5 years agoIVGCVSW-2443 Add Cl support for Greater operator
Nattapat Chaimanowong [Tue, 29 Jan 2019 09:56:02 +0000 (09:56 +0000)]
IVGCVSW-2443 Add Cl support for Greater operator

Change-Id: I7eb3b2e712dbaa5c13f6cf3a1da63df4d2bd4de5

5 years agoIVGCVSW-2447 Add Greater Workload to Neon
kevmay01 [Mon, 28 Jan 2019 08:37:25 +0000 (08:37 +0000)]
IVGCVSW-2447 Add Greater Workload to Neon

Change-Id: Ic165061cc61534e7e391a398ea7c2918240e2d3b

5 years agoIVGCVSW-2548 Add member function to check layer pointer not null
FrancisMurtagh [Mon, 28 Jan 2019 17:19:41 +0000 (17:19 +0000)]
IVGCVSW-2548 Add member function to check layer pointer not null

Change-Id: I48c8795e546e3a36414ae88316908519d5879628

5 years agoIVGCVSW-2575 Update CL pin to latest master
Conor Kennedy [Mon, 28 Jan 2019 11:32:34 +0000 (11:32 +0000)]
IVGCVSW-2575 Update CL pin to latest master

!android-nn-driver:586

Change-Id: Ib881710f438887df0a95d776b51a5c0d2bf002dd

5 years agoIVGCVSW-2548 Add the TestLayerVisitor class
FrancisMurtagh [Mon, 28 Jan 2019 14:03:21 +0000 (14:03 +0000)]
IVGCVSW-2548 Add the TestLayerVisitor class

 * Add abstract base class TestLayerVisitor

Change-Id: Id453f3ad9721f3680166a41b75a1880cf20032f7

5 years agoIVGCVSW-2556 Add Layer implementation for Detection PostProcess
Narumol Prangnawarat [Fri, 25 Jan 2019 10:46:40 +0000 (10:46 +0000)]
IVGCVSW-2556 Add Layer implementation for Detection PostProcess

 * Add DetectionPostProcessDescriptor.
 * Add implementation for DetectionPostProcessLayer.
 * Unit test to validate output.

Change-Id: If63e83eb2a2978c549071c7aeb272906e7c35fe9

5 years agoMLCE-84 Add Neon Pad support and unit tests
Éanna Ó Catháin [Fri, 25 Jan 2019 10:01:40 +0000 (10:01 +0000)]
MLCE-84 Add Neon Pad support and unit tests

Change-Id: I0d949a9f23a61af5013efdd18572b29fae585f2a

5 years agoIVGCVSW-2547 Add Accept function to IConnectableLayer
jimfly01 [Thu, 24 Jan 2019 22:29:33 +0000 (22:29 +0000)]
IVGCVSW-2547 Add Accept function to IConnectableLayer

* Layers which callback VisitXXXLayer with ConstTensor
  have been implemented with dummies to speed up implementation
  and unblock IVGCVSW-2531

Change-Id: I49b8035f12ec72d6bd6cee95075692f98c48e193

5 years agoIVGCVSW-2563 Fix bug in TfLiteParser::ParseConcatenation
Nattapat Chaimanowong [Fri, 25 Jan 2019 13:20:39 +0000 (13:20 +0000)]
IVGCVSW-2563 Fix bug in TfLiteParser::ParseConcatenation

Change-Id: I8fbf27b383a821e062f72809cc2e269fcd18851c

5 years agoGithub issue #127 - Use https to check out ComputeLibrary
Matthew Bentham [Wed, 23 Jan 2019 15:23:13 +0000 (15:23 +0000)]
Github issue #127 - Use https to check out ComputeLibrary

Change-Id: I55f2f21b0603055787a174269ed74b99f84ec29c

5 years agoIVGCVSW-2503 Fix end to end test support for Boolean output type
Nattapat Chaimanowong [Thu, 24 Jan 2019 15:25:26 +0000 (15:25 +0000)]
IVGCVSW-2503 Fix end to end test support for Boolean output type

Change-Id: Ie94743c769fc17d976849ba4b22af3a13561ff55

5 years agoIVGCVSW-2554 Update NEON scheduler to output workload names rather than unknown
saoste01 [Thu, 24 Jan 2019 12:31:58 +0000 (12:31 +0000)]
IVGCVSW-2554 Update NEON scheduler to output workload names rather than unknown

Change-Id: I0d14baf9002c894790da171a6d60c0e4ac929078

5 years agoIVGCVSW-2555 Add no-op implementation for Detection PostProcess
Narumol Prangnawarat [Wed, 23 Jan 2019 18:06:26 +0000 (18:06 +0000)]
IVGCVSW-2555 Add no-op implementation for Detection PostProcess

 * 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

5 years agoIVGCVSW-2503 Refactor RefElementwiseWorkload around Equal and Greater
kevmay01 [Thu, 24 Jan 2019 14:05:09 +0000 (14:05 +0000)]
IVGCVSW-2503 Refactor RefElementwiseWorkload around Equal and Greater

* 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

5 years agoIVGCVSW-2512 Add Gather operator parser to TfParser
FrancisMurtagh [Thu, 24 Jan 2019 10:53:39 +0000 (10:53 +0000)]
IVGCVSW-2512 Add Gather operator parser to TfParser

 * Add ParseGather to TFParser
 * Add Unit tests for Gather Operator

!armnn:562

Change-Id: Idff45c2d3d8d683aa9eb2c4a63123c8d6054609e

5 years agoIVGCVSW-2546 Add ILayerVisitor to the public API
jimfly01 [Wed, 23 Jan 2019 16:10:17 +0000 (16:10 +0000)]
IVGCVSW-2546 Add ILayerVisitor to the public API

Change-Id: I803de435a538856de2daa7872e27d3f5beabba4f

5 years agoIVGCVSW-2430 Add logistic parser to tf-lite
Finn Williams [Tue, 22 Jan 2019 14:18:11 +0000 (14:18 +0000)]
IVGCVSW-2430 Add logistic parser to tf-lite

 * Added implementation and unit tests for
   sigmoid function for tf-lite parser

 * Refactored relu, relu6 and logisitc parser
   to reduce code duplication

Change-Id: I00a2bd90bbc9144a2f84981f63b2cd1756b68a16

5 years agoIVGCVSW-2511 Add end to end Gather layer test
narpra01 [Wed, 23 Jan 2019 15:23:11 +0000 (15:23 +0000)]
IVGCVSW-2511 Add end to end Gather layer test

 * 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

5 years agoIVGCVSW-1048 RESIZE_BILINEAR NEON operator
Sadik Armagan [Mon, 17 Dec 2018 11:32:16 +0000 (11:32 +0000)]
IVGCVSW-1048 RESIZE_BILINEAR NEON operator

 * Implemented NeonResizeBilinearWorkload
 * Enable ResizeBilinear Operator unit tests for Neon

!android-nn-driver:405

Change-Id: Iec3100ccaf7d246e8eaf683d1f3ec9191df5241e

5 years agoIVGCVSW-2534 Fix bug TfLiteParser::ParseReshape()
Aron Virginas-Tar [Wed, 23 Jan 2019 14:00:00 +0000 (14:00 +0000)]
IVGCVSW-2534 Fix bug TfLiteParser::ParseReshape()

Change-Id: I44d63552d2552842f02b2c870466851581f65b1a

5 years agoIVGCVSW-2545 Update CL pin to latest master
saoste01 [Tue, 22 Jan 2019 16:43:51 +0000 (16:43 +0000)]
IVGCVSW-2545 Update CL pin to latest master

Change-Id: If6a211ce8a25cf95bb8b02851694e9502d25e671

5 years agoIVGCVSW-2455 Move the extra backend code to a new git repo
Matteo Martincigh [Tue, 15 Jan 2019 16:11:44 +0000 (16:11 +0000)]
IVGCVSW-2455 Move the extra backend code to a new git repo

 * 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

5 years agoIVGCVSW-2467 Update Boolean type support
Nattapat Chaimanowong [Wed, 23 Jan 2019 09:59:14 +0000 (09:59 +0000)]
IVGCVSW-2467 Update Boolean type support

Change-Id: I0ab3339e8803a3e4e700d8fec9883eccc524b31e

5 years agoIVGCVSW-2515 Fix compilation when TfParser is disabled
Matthew Bentham [Mon, 21 Jan 2019 15:45:51 +0000 (15:45 +0000)]
IVGCVSW-2515 Fix compilation when TfParser is disabled

Change-Id: Ia0019134f76764cd4fe6ed9dc1423b8aba411d33

5 years agoIVGCVSW-2510 Ref workload implementation for Gather operator
narpra01 [Fri, 18 Jan 2019 16:53:53 +0000 (16:53 +0000)]
IVGCVSW-2510 Ref workload implementation for Gather operator
 * 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

5 years agoFix compilation wrt IVGCVSW-2467
Matthew Bentham [Tue, 22 Jan 2019 17:26:59 +0000 (17:26 +0000)]
Fix compilation wrt IVGCVSW-2467

Change-Id: I073473774e302c2d77e717e1ad718594ce1b5feb

5 years agoAdded AddBroadcastReshapeLayer method to TfLiteParser
Bruno Goncalves [Thu, 27 Dec 2018 16:20:35 +0000 (14:20 -0200)]
Added AddBroadcastReshapeLayer method to TfLiteParser

Change-Id: I6027f6dcdb3ed23505f0a9c780bd3e3d45d3daff

5 years agoIVGCVSW-2509 Add GatherLayer implementation
narpra01 [Wed, 16 Jan 2019 17:22:19 +0000 (17:22 +0000)]
IVGCVSW-2509 Add GatherLayer implementation
 * implementation of ValidateTensorShapesFromInputs
 * unit tests

Change-Id: I1ed88f8ba0ea20329a259c5f36caea4b1fbeb013

5 years agoIVGCVSW-2467 Remove GetDataType<T> function
Nattapat Chaimanowong [Tue, 22 Jan 2019 16:10:44 +0000 (16:10 +0000)]
IVGCVSW-2467 Remove GetDataType<T> function

Change-Id: I7359617a307b9abb4c30b3d5f2364dc6d0f828f0

5 years agoIVGCVSW-2535 Fix crash in ExecuteNetwork when no compute device is specified
Aron Virginas-Tar [Tue, 22 Jan 2019 14:10:39 +0000 (14:10 +0000)]
IVGCVSW-2535 Fix crash in ExecuteNetwork when no compute device is specified

Change-Id: If8d6516286557a6381561805cd53b5659b38f6a6

5 years agoAdded ParsePad method to TfLiteParser
Bruno Goncalves [Wed, 19 Dec 2018 14:52:01 +0000 (12:52 -0200)]
Added ParsePad method to TfLiteParser

Change-Id: I2e671f66cf1b0a24b4ca9e96b554dc7db3af9655

5 years agoAdded ParseMean method to TfLiteParser
Bruno Goncalves [Wed, 19 Dec 2018 14:51:45 +0000 (12:51 -0200)]
Added ParseMean method to TfLiteParser

Change-Id: Idfedf82479fb3d4bb2962fc3cfc6c76e57331943

5 years agoAdded ParseMul method to TfLiteParser
Bruno Goncalves [Tue, 18 Dec 2018 15:40:30 +0000 (13:40 -0200)]
Added ParseMul method to TfLiteParser

Change-Id: I72e61a5ece52d69b289a1559907e2fb3084bfa4a

5 years agoAdded ParseAdd method to TfLiteParser
Bruno Goncalves [Tue, 18 Dec 2018 14:56:22 +0000 (12:56 -0200)]
Added ParseAdd method to TfLiteParser

Change-Id: I24d916eca8ef1efb70d08b5c4f5123bb56a76c3e

5 years agoIVGCVSW-2508 Add no-op factory implementations and layer for Gather operator
narpra01 [Wed, 16 Jan 2019 09:53:09 +0000 (09:53 +0000)]
IVGCVSW-2508 Add no-op factory implementations and layer for Gather operator
 * 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

5 years agoGithub issue #120 - Embed TfLite schema
Matthew Bentham [Tue, 15 Jan 2019 17:57:00 +0000 (17:57 +0000)]
Github issue #120 - Embed TfLite schema

Change-Id: I57375375b2f3f59b89dbf45750f733bf25b5eb90

5 years agoIVGCVSW-1656 Add Mean support to Tf Parser
Ferran Balaguer [Wed, 16 Jan 2019 11:21:56 +0000 (11:21 +0000)]
IVGCVSW-1656 Add Mean support to Tf Parser

 * Update TensorFlowSupport.md

Change-Id: I6fb7f4a4b32397901e0c8b44477a8238879e5917

5 years agoIVGCVSW-2454 Merge together the pluggable backends work (was in a
Matteo Martincigh [Fri, 11 Jan 2019 13:25:59 +0000 (13:25 +0000)]
IVGCVSW-2454 Merge together the pluggable backends work (was in a
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

5 years agoMLCE-86 Reversing the pad list in the ClPadValidate function similarly to whats done...
Éanna Ó Catháin [Mon, 14 Jan 2019 15:50:08 +0000 (15:50 +0000)]
MLCE-86 Reversing the pad list in the ClPadValidate function similarly to whats done in the constructor.

Change-Id: I9488cebd63767c0c51d9ee6333d5aaf0e4a85847

5 years agoIVGCVSW-1656 Add Mean support to Tf Parser
Ferran Balaguer [Fri, 11 Jan 2019 19:29:18 +0000 (19:29 +0000)]
IVGCVSW-1656 Add Mean support to Tf Parser

Change-Id: I3d31d6b72be1984acdb51fd9e7b5488a7aa5d832

5 years agoIVGCVSW-2454 Refactor ArmNN to support pluggable backends from a separate
Matteo Martincigh [Thu, 10 Jan 2019 17:34:20 +0000 (17:34 +0000)]
IVGCVSW-2454 Refactor ArmNN to support pluggable backends from a separate
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

5 years agoMLCE-82 Add IsLayerSupported tests for MEAN
Matthew Bentham [Wed, 2 Jan 2019 13:26:31 +0000 (13:26 +0000)]
MLCE-82 Add IsLayerSupported tests for MEAN

Change-Id: I43be451f490db0154021f47a2fd49d1269cf5b95

5 years agoIVGCVSW-2466 Update compute library pin
Matthew Bentham [Thu, 10 Jan 2019 12:52:31 +0000 (12:52 +0000)]
IVGCVSW-2466 Update compute library pin

Change-Id: I349f663e5e2d404930a5f9289d311e67a5a409ea

5 years agoIVGCVSW-2345 Add Rsqrt support in Tensorflow Parser
Mohamed Nour Abouelseoud [Wed, 9 Jan 2019 14:19:58 +0000 (14:19 +0000)]
IVGCVSW-2345 Add Rsqrt support in Tensorflow Parser

Change-Id: I7c7b65bd77b06925efdaf2c9c98c30994a12de42

5 years agoIVGCVSW-2438 Add Minimum operator support (CL)
saoste01 [Tue, 8 Jan 2019 13:55:59 +0000 (13:55 +0000)]
IVGCVSW-2438 Add Minimum operator support (CL)
* Added CL unit tests

Change-Id: Ia4af49b133774141384a177f5b042e65764bf682

5 years agoIVGCVSW-2441 Add Minimum operator support (NEON)
Conor Kennedy [Wed, 9 Jan 2019 07:57:38 +0000 (07:57 +0000)]
IVGCVSW-2441 Add Minimum operator support (NEON)

Change-Id: I0bc48f118aba419abb659657b83224401fac0715

5 years agoRefactor: Don't include all ComputeLibrary function definitions everywhere.
Matthew Bentham [Tue, 8 Jan 2019 17:52:37 +0000 (17:52 +0000)]
Refactor: Don't include all ComputeLibrary function definitions everywhere.

Just include the function definition that is specifically needed for each workload.
Also, tighten up the scope where Compute Library functions are available.

Knocks about 30seconds off a 4m30s single-threaded compile of the Neon workloads.

Change-Id: Idac438f3bc77ff978295fbc9505cb42447def145

5 years agoIVGCVSW-2371 Add Rsqrt Ref implementation
Mohamed Nour Abouelseoud [Thu, 27 Dec 2018 12:39:16 +0000 (12:39 +0000)]
IVGCVSW-2371 Add Rsqrt Ref implementation

*Added Unit Tests

Change-Id: I6cceb8e6dcda35ce08415f8e5ca86019a64d26e3

5 years agoIVGCVSW-2421 Remove the template-based version of armnnUtils::Permute
Matteo Martincigh [Fri, 4 Jan 2019 18:01:21 +0000 (18:01 +0000)]
IVGCVSW-2421 Remove the template-based version of armnnUtils::Permute
in favor of a type-indepent implementation that takes void-pointers

 * The new implementation requires the size of the type to be passed
   to the function
 * Updated all the usages accordingly
 * Removed the old implementation no longer used

!android-nn-driver:469

Change-Id: I37f4e6d62a38fbb8ec8c39bb559a2c54c83365d4

5 years agoIVGCVSW-2384 Add Split parser function to Tensor flow parser
Sadik Armagan [Thu, 27 Dec 2018 11:23:44 +0000 (11:23 +0000)]
IVGCVSW-2384 Add Split parser function to Tensor flow parser

  * Added Unit test
  * Updated TensorFlowSupport.md file

Change-Id: I5f07de5e91ffb681c0ad17c7c73ee0326e7f1e0a

5 years agoMLCE-77 Depthwise Convolution with depth multiplier > 1 doesn't work
Matteo Martincigh [Tue, 18 Dec 2018 09:26:39 +0000 (09:26 +0000)]
MLCE-77 Depthwise Convolution with depth multiplier > 1 doesn't work

 * 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

5 years agoIVGCVSW-2383: code cleanup, remove unnecessary isSupported implementations,
Nina Drozd [Fri, 4 Jan 2019 09:34:21 +0000 (09:34 +0000)]
IVGCVSW-2383: code cleanup, remove unnecessary isSupported implementations,
default cases are handled by DefaultLayerSupport

Change-Id: I31942a5e8515d6fdce9a0adf20906eaabc2b9aa6

5 years agoIVGCVSW-2370 Code clean up after Equal operator implementation where necessary
ruoyan01 [Thu, 3 Jan 2019 15:10:00 +0000 (15:10 +0000)]
IVGCVSW-2370 Code clean up after Equal operator implementation where necessary

StringMapping was located in the backendsCommon

Change-Id: I1c4a0bfca986722c721fcb2b460c03d6e1cd4568

5 years agoIVGCVSW-2205 Reversed workaround for COMPMID-1813
Mohamed Nour Abouelseoud [Wed, 2 Jan 2019 14:32:24 +0000 (14:32 +0000)]
IVGCVSW-2205 Reversed workaround for COMPMID-1813

Change-Id: Icf7ef88a2eaef80ec32cc718b0ca9d26e830ed07

5 years agoIVGCVSW-2308 Add Conv2d tests where stride > 1
Mike Kelly [Thu, 20 Dec 2018 17:03:06 +0000 (17:03 +0000)]
IVGCVSW-2308 Add Conv2d tests where stride > 1

Change-Id: Iae6a3bfad06cb669ef0abea465d03163bb8316f5

5 years agoMLCE-82 Add Neon Mean support and unit tests
Matthew Bentham [Mon, 31 Dec 2018 15:49:42 +0000 (15:49 +0000)]
MLCE-82 Add Neon Mean support and unit tests

Factor out new BuildArmComputeReductionCoordinates function
from CL backend into ArmComputeTensorUtils.

Update NEON LayerSupport and WorkloadFactory objects

Change-Id: Icc975ec699199bffafbdb207323df509d35e1e04

5 years agoIVGCVSW-2353 Ignore control inputs in TensorFlow parser
narpra01 [Fri, 21 Dec 2018 18:30:00 +0000 (18:30 +0000)]
IVGCVSW-2353 Ignore control inputs in TensorFlow parser

 * 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

5 years agoMLCE-80 Remove strong typing from NeonBatchNormalization
Matthew Bentham [Wed, 12 Dec 2018 16:15:59 +0000 (16:15 +0000)]
MLCE-80 Remove strong typing from NeonBatchNormalization

Technical debt work towards adding some new Neon workloads

Change-Id: I08ab6dd14d0e89d4ebc8a878fb69caa5681012bf

5 years agoIVGCVSW-2375 Add ParseAddN function to TfParser
Ferran Balaguer [Fri, 28 Dec 2018 18:15:24 +0000 (18:15 +0000)]
IVGCVSW-2375 Add ParseAddN function to TfParser

* Unit tests in AddN.cpp

Change-Id: Ifb2fa1051d5d92c5d9a5ca751abee4e81ebe39c9

5 years agoUpdate to latest compute library
Matthew Bentham [Mon, 31 Dec 2018 13:40:25 +0000 (13:40 +0000)]
Update to latest compute library

Change-Id: I297aac3c57d201fdbd71119f004a64f57ec5657f

5 years agoIVGCVSW-2389 WorkloadUtils: Add profiling to tensor mapping.
Sadik Armagan [Mon, 24 Dec 2018 09:01:31 +0000 (09:01 +0000)]
IVGCVSW-2389 WorkloadUtils: Add profiling to tensor mapping.

Change-Id: Ibe1b27b268011878c7dce3c96efea01402453027

5 years agoUpdate README.md
Mark O'Connor [Wed, 28 Nov 2018 09:12:45 +0000 (10:12 +0100)]
Update README.md

Change-Id: I74f0d27881fcc42d962fdd61562811a1f53dd0eb

5 years agoIVGCVSW-59 Add documentation to the public API
Conor Kennedy [Fri, 21 Dec 2018 14:38:36 +0000 (14:38 +0000)]
IVGCVSW-59 Add documentation to the public API

        * Add documentation to the Descriptors
        * Add documentation to the layers

Change-Id: I5e0849753903565227fd47d329a600fd90b2feb9

5 years agoIVGCVSW-2380 Add Greater operator to TfParser
jimfly01 [Tue, 18 Dec 2018 16:24:51 +0000 (16:24 +0000)]
IVGCVSW-2380 Add Greater operator to TfParser

* Unit tests in Greater.cpp

Change-Id: Ifb3e4c33be2d6235e33889bb63e6abd78bd7d8b6

5 years agoIVGCVSW-2164 Added ACL implementation of SpaceToBatchNd operation to ArmNN
Sadik Armagan [Thu, 20 Dec 2018 16:19:12 +0000 (16:19 +0000)]
IVGCVSW-2164 Added ACL implementation of SpaceToBatchNd operation to ArmNN

!android-nn-driver:428

Change-Id: I42e59ad96d2c80f46b085182855d34b710a74dfe

5 years agoIVGCVSW-2401 & IVGCVSW-2402 Add end-to-end test for Greater/Equal Operator
FrancisMurtagh [Thu, 20 Dec 2018 16:09:45 +0000 (16:09 +0000)]
IVGCVSW-2401 & IVGCVSW-2402 Add end-to-end test for Greater/Equal Operator

 * Add Arithmetic end-to-end test implementation
 * Enable tests for float, Uint8 and Broadcast

Change-Id: I81c7096e9b6ad29eaa935b74ad5f30f823be2331

5 years agoIVGCVSW-2212 Add Neon support for Maximum operator
Nattapat Chaimanowong [Thu, 20 Dec 2018 14:14:06 +0000 (14:14 +0000)]
IVGCVSW-2212 Add Neon support for Maximum operator

Change-Id: Iddae3486641d2d195827ae4e0a9dfa3f7ccd65e3

5 years agoIVGCVSW-2211 Maximum operator support (CL)
keidav01 [Wed, 19 Dec 2018 10:04:58 +0000 (10:04 +0000)]
IVGCVSW-2211 Maximum operator support (CL)

   * Added CLMaximumWorkload implementation
   * Added CL unit tests

Change-Id: I922c83fe25d17be21a5d0f4e861038463cb09789

5 years agoIVGCVSW-2367 Add Equal Operator to TfParser
jimfly01 [Wed, 19 Dec 2018 13:14:46 +0000 (13:14 +0000)]
IVGCVSW-2367 Add Equal Operator to TfParser

* Unit tests in Equal.cpp
* Fixed error in Network::AddEqualLayer
* Refactored TfParser::Minimum/Equal to get rid of duplicate code

Change-Id: I0ed6f888eb391c995b88be20dc0c1b916dd14c3c

5 years agoUpdate CL pin to the latest master
Nattapat Chaimanowong [Wed, 19 Dec 2018 11:48:59 +0000 (11:48 +0000)]
Update CL pin to the latest master

Change-Id: I045bc90124ea1303dffb0532e10b36ee107f9ee3

5 years agoIVGCVSW-2379 Add Greater Ref workload implementation
FrancisMurtagh [Wed, 19 Dec 2018 10:56:15 +0000 (10:56 +0000)]
IVGCVSW-2379 Add Greater Ref workload implementation

 * Added the Greater operation as an element-wise workload
 * Added the unit tests

Change-Id: Ie00ee30e47a5f5e17a728032eeb11a085d06c8f2

5 years agoIVGCVSW-2365 Add Reference Equal Workload Implementation
FrancisMurtagh [Tue, 18 Dec 2018 12:57:35 +0000 (12:57 +0000)]
IVGCVSW-2365 Add Reference Equal Workload Implementation

 * Add reference equal workload
 * Add Reference Workload Unit Test

Change-Id: If2848e7dde4248566b99d91726d08143c40ff80d

5 years agoIVGCVSW-2131 Implementation of StridedSlice operation
keidav01 [Mon, 10 Dec 2018 18:16:07 +0000 (18:16 +0000)]
IVGCVSW-2131 Implementation of StridedSlice operation
   * Added ACl Implementation to ArmNN
   * Added helper function for setting CL Strided Slice arguments

Change-Id: Ie10d387fdb054027ea9b8782743d270bb72949c1

5 years agoIVGCVSW-2398 Add no-op factory implementations for all backends for the
FrancisMurtagh [Mon, 17 Dec 2018 12:11:36 +0000 (12:11 +0000)]
IVGCVSW-2398 Add no-op factory implementations for all backends for the
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

5 years agoIVGCVSW-2399 Margin of error too severe for ValidateBiasTensorQuantisation
kevmay01 [Mon, 17 Dec 2018 15:32:45 +0000 (15:32 +0000)]
IVGCVSW-2399 Margin of error too severe for ValidateBiasTensorQuantisation

Change-Id: I56f56398e7c2c2ac57a96952237e7f1bc0ced208

5 years agoIVGCVSW-2395 TfLiteParse::ParseReshape doesn't support reshape input
kevmay01 [Mon, 17 Dec 2018 14:28:03 +0000 (14:28 +0000)]
IVGCVSW-2395 TfLiteParse::ParseReshape doesn't support reshape input

Change-Id: If2a31a49df3701877ce0287a81c569334a24cd20

5 years agoUpdate the CL pin to the latest master
Matteo Martincigh [Fri, 14 Dec 2018 13:12:13 +0000 (13:12 +0000)]
Update the CL pin to the latest master

Change-Id: Ib3c7cfccbe8933a0c2423f37c363926571968d9e

5 years agoIVGCVSW-2386 Work around Compute Library Arm v7 issue
Matthew Bentham [Mon, 17 Dec 2018 09:23:36 +0000 (09:23 +0000)]
IVGCVSW-2386 Work around Compute Library Arm v7 issue

per COMPMID-1818 change to using Blob-based memory manager.
Will change back when COMPMID-1848 is fixed.

Change-Id: I6e22c2edf422202410faa717b330a2c96c3ebbe5

5 years agoIVGCVSW-2377 Add no-op factory implementations for all backends for the
Matteo Martincigh [Thu, 13 Dec 2018 12:48:25 +0000 (12:48 +0000)]
IVGCVSW-2377 Add no-op factory implementations for all backends for the
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

5 years agoIVGCVSW-2348 Support boolean data type
ruoyan01 [Wed, 12 Dec 2018 18:11:25 +0000 (18:11 +0000)]
IVGCVSW-2348 Support boolean data type

Change-Id: Ifd28e049192e6f5fe5c0f5d358afb2b530eef882

5 years agoIVGCVSW-2363 Remove swizzling option from GetConstTensor in TfParser.cpp
Matteo Martincigh [Wed, 12 Dec 2018 09:20:55 +0000 (09:20 +0000)]
IVGCVSW-2363 Remove swizzling option from GetConstTensor in TfParser.cpp

Change-Id: I9f9852766e4c51151d6ccf34976c4860a83dfe5c