platform/upstream/armnn.git
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

5 years agoIVGCVSW-1434 Add debug mode to Optimizer
keidav01 [Tue, 11 Dec 2018 16:14:20 +0000 (16:14 +0000)]
IVGCVSW-1434 Add debug mode to Optimizer
    * Modified optimizer to support debug mode via DebugLayer

Change-Id: Ic8f313778e55540c182cf99876c44a0823be04c6

5 years agoFix the ONNX parser tests issues due to a change in the latest ONNx master
Matteo Martincigh [Tue, 11 Dec 2018 13:46:52 +0000 (13:46 +0000)]
Fix the ONNX parser tests issues due to a change in the latest ONNx master

 * A recent change in ONNX now forces the data types to be indicated by the
   integer corresponding to their original enum value
 * The new values are taken from the TensorProto_DataType enum at onnx.pb.h:153

Change-Id: I6054611795a7edb11463396eaefc4dd7e27261a0

5 years agoIVGCVSW-2266 Remove the input swizzling from ParseDepthwiseConv2D
Ferran Balaguer [Tue, 11 Dec 2018 10:29:05 +0000 (10:29 +0000)]
IVGCVSW-2266 Remove the input swizzling from ParseDepthwiseConv2D

Change-Id: I72d94fff4cdad2c62dff98c8fd52eba78a1908f0

5 years agoFix the ONNX parser build
Matteo Martincigh [Mon, 10 Dec 2018 13:45:27 +0000 (13:45 +0000)]
Fix the ONNX parser build

 * Fixed invalid conversion issues to onnx::TensorProto::DataType

Change-Id: If8f1cef1d02a22cfecf24135a960923d3ad0e14c

5 years agoIVGCVSW-2346 Fix test wrt NEFillBorderKernel index
Matthew Bentham [Mon, 10 Dec 2018 17:05:25 +0000 (17:05 +0000)]
IVGCVSW-2346 Fix test wrt NEFillBorderKernel index

Kernel position within the layer is part of the kernel name

Change-Id: I3b9ee870fbd0db025f1515c81245f917189ae884

5 years agoIVGCVSW-2354 Remove dimension validation from softmax
Mohamed Nour Abouelseoud [Mon, 10 Dec 2018 14:19:41 +0000 (14:19 +0000)]
IVGCVSW-2354 Remove dimension validation from softmax

Change-Id: I0d69a72df9e348cbeca690926485c050499d1051

5 years agoMLCE-79 NEON QASYMM8 Addition Support
Matthew Bentham [Mon, 10 Dec 2018 10:48:52 +0000 (10:48 +0000)]
MLCE-79 NEON QASYMM8 Addition Support

Unit tests not yet added as need Compute Library a84faffd.

Change-Id: Ica16df493e8d6a76da9d1f74bf43b8403f9dff62

5 years agoIVGCVSW-2346 Fix test wrt NEFillBorderKernel
Matthew Bentham [Mon, 10 Dec 2018 13:14:37 +0000 (13:14 +0000)]
IVGCVSW-2346 Fix test wrt NEFillBorderKernel

NEFillBorderKernel may not be issued for some activation workloads
depending on the version of the Compute Library.

Change-Id: I01b8960f9eb7a0192cd351eddbb416ac05248b34

5 years agoIVGCVSW-2268 Remove the input swizzling from ParseConcat
Matteo Martincigh [Thu, 6 Dec 2018 12:03:17 +0000 (12:03 +0000)]
IVGCVSW-2268 Remove the input swizzling from ParseConcat

 * 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

5 years agoIVGCVSW-836 Remove 2D validation in Softmax
Mohamed Nour Abouelseoud [Thu, 6 Dec 2018 16:48:39 +0000 (16:48 +0000)]
IVGCVSW-836 Remove 2D validation in Softmax

Change-Id: I87c53c78dd033871dbc543550a61d2d535e752ac

5 years agoIVGCVSW-2316 Add reference implementation and unit tests for Debug
Nattapat Chaimanowong [Thu, 6 Dec 2018 11:54:33 +0000 (11:54 +0000)]
IVGCVSW-2316 Add reference implementation and unit tests for Debug

Change-Id: Ib2e5de2a057da57ef77a9f5c4367d699d4773294

5 years agoIVGCVSW-2333 Add ParseSub method to TfParser
jimfly01 [Tue, 4 Dec 2018 17:47:22 +0000 (17:47 +0000)]
IVGCVSW-2333 Add ParseSub method to TfParser

* Also added unit test Sub.cpp

Change-Id: I6d23c11ae894ee433cd28ffdf0248b14e01b0131

5 years agoIVGCVSW-2275 Remove swizzling from ParseResizeBilinear
jimfly01 [Thu, 6 Dec 2018 16:19:52 +0000 (16:19 +0000)]
IVGCVSW-2275 Remove swizzling from ParseResizeBilinear

Change-Id: I0d02faf188f441f017967057f16f4661d321978a

5 years agoIVGCVSW-2277 Remove the input swizzling from ParsePooling2d
FrancisMurtagh [Thu, 6 Dec 2018 15:26:04 +0000 (15:26 +0000)]
IVGCVSW-2277 Remove the input swizzling from ParsePooling2d

 * Remove input swizzling from ParsePooling2D and add parameterized
   tests for NCHW, NHWC and Padding="SAME".

Change-Id: I4786fcc31b6ac46bf19d887f007963eb924f0f9f

5 years agoRemoved square kernel in range validation in CaffeParser
Mohamed Nour Abouelseoud [Thu, 6 Dec 2018 14:29:25 +0000 (14:29 +0000)]
Removed square kernel in range validation in CaffeParser
as validation assumptions should not be made and
should be handled by the backend

Change-Id: I1565daeb0abfdc0bb01981eab2a1937a5af7976e

5 years agoIVGCVSW-2193 ExpandDims operation implementation
Matteo Martincigh [Thu, 6 Dec 2018 09:06:29 +0000 (09:06 +0000)]
IVGCVSW-2193 ExpandDims operation implementation

 * Fix for a signedness error in Android 32 builds

Change-Id: Id909ee2d50f376782de3b80aaef503e08f6d1268

5 years agoIVGCVSW-2315 Add descriptor for Debug
Nattapat Chaimanowong [Wed, 5 Dec 2018 15:17:18 +0000 (15:17 +0000)]
IVGCVSW-2315 Add descriptor for Debug

Change-Id: I6b26c681989ef815752186f027a245ef8da7aea2

5 years agoIVGCVSW-2276: Remove the input swizzling in ParseLrn
ruoyan01 [Tue, 4 Dec 2018 18:24:08 +0000 (18:24 +0000)]
IVGCVSW-2276: Remove the input swizzling in ParseLrn

Change-Id: If5ef3dc426bd6fa5aab342dcece6e99f86e65dba

5 years agoIVGCVSW-2267 Remove the input swizzling from ParseFusedBatchNorm
Matteo Martincigh [Wed, 5 Dec 2018 13:10:45 +0000 (13:10 +0000)]
IVGCVSW-2267 Remove the input swizzling from ParseFusedBatchNorm

 * Removed the input swizzling when the data layout is NHWC
 * Split the unit test into NHWC and NCHW cases

Change-Id: I6b9fef70bc4ba5e01d14cbfaea3c842a289b0a0e

5 years agoIVGCVSW-2264 Remove input swizzling from ParseConv2D in the TF parser
Matteo Martincigh [Wed, 28 Nov 2018 16:22:36 +0000 (16:22 +0000)]
IVGCVSW-2264 Remove input swizzling from ParseConv2D in the TF parser

 * Removed the input swizzling when the data layout is NHWC
 * Permuting weights depending on the data layout used
 * Added getter methods to ParsedConstTfOperation to get the tensor
   info and the storage memory area, needed for swizzling the weights
 * Added unit tests for both NHWC and NCHW data layouts

Change-Id: I6543900c594417df630b2663d8551158b93b7836

5 years agoIVGCVSW-2193 ExpandDims operation implementation
Conor Kennedy [Wed, 5 Dec 2018 11:05:54 +0000 (11:05 +0000)]
IVGCVSW-2193 ExpandDims operation implementation

* Add ExpandDims operation to TfParser.cpp

Change-Id: Ifa756ae0667c11e3b6daec8f6dd4e54cac88d16a

5 years agoIVGCVSW-2296 Add ParsePad method to TfParser
jimfly01 [Tue, 4 Dec 2018 10:09:52 +0000 (10:09 +0000)]
IVGCVSW-2296 Add ParsePad method to TfParser

* Also added unit test armnnTfParser/test/Pad.cpp
* Added missing 'Pad' entry to GetLayerTypeAsCString(LayerType)
* Fixed the RefLayerSupport.IsPadSupported, now it returns true
* Small fix in Optimize. Only resolve stringstream to string once

Change-Id: Ieaa1886858a48cd761ac5f30454f73e44bdd4b8f

5 years agoIVGCVSW-2264 Move DataLayoutIndexed to armnnUtils
Matteo Martincigh [Wed, 28 Nov 2018 16:22:22 +0000 (16:22 +0000)]
IVGCVSW-2264 Move DataLayoutIndexed to armnnUtils

 * Since DataLayoutIndexed is now required in the TF parser, this
   changes move it to the armnnUtils library so that it'll be
   accessible by the armnnTfParser
 * Modified CMake files and Android.mk files accordingly

Change-Id: Ie2620359ef288aeff64cb9e9bec068a466eee0e9

5 years agoIVGCVSW-2251 Add support for Minimum operator in TfParser
Nattapat Chaimanowong [Tue, 4 Dec 2018 13:47:02 +0000 (13:47 +0000)]
IVGCVSW-2251 Add support for Minimum operator in TfParser

Change-Id: Ib84e5bde39d706c5125e0f84577195fc61107a4a

5 years agoIVGCVSW-2247 Adding a min Elementwise Workload and tests
Éanna Ó Catháin [Tue, 4 Dec 2018 10:29:06 +0000 (10:29 +0000)]
IVGCVSW-2247 Adding a min Elementwise Workload and tests

Change-Id: I017ca6c23b62a8978982de0ca4ad204cb8cf7c67

5 years agoIVGCVSW-2256 Add parser function in TensorFlow Parser (Maximum)
Sadik Armagan [Tue, 4 Dec 2018 10:02:08 +0000 (10:02 +0000)]
IVGCVSW-2256 Add parser function in TensorFlow Parser (Maximum)

 * Extended Maximum operator support in TF Parser
 * Added extra unit tests for Maximum operator in TF Parser

Change-Id: I68edb43b2a3105507f2f5f028ff0e35206965dca

5 years agoIVGCVSW-2315 Add DebugLayer and no-op factory method
Nattapat Chaimanowong [Mon, 3 Dec 2018 16:06:49 +0000 (16:06 +0000)]
IVGCVSW-2315 Add DebugLayer and no-op factory method

Change-Id: I5455b720565248ff94278e76887d63f8434a7b58

5 years agoIVGCVSW-2255 Add unit test for maximum reference workload
Éanna Ó Catháin [Mon, 3 Dec 2018 13:04:22 +0000 (13:04 +0000)]
IVGCVSW-2255 Add unit test for maximum reference workload
* Enable Maximum workload

Change-Id: I5f7786ff66f135f0c74935dbf5861e5a4239bcc8

5 years agoIVGCVSW-2118 L2Normalization ACL function used for Neon
FrancisMurtagh [Thu, 29 Nov 2018 17:13:36 +0000 (17:13 +0000)]
IVGCVSW-2118 L2Normalization ACL function used for Neon

* Changed NeonL2Normalisation to use NEL2NormalizeLayer to
  normalise along the channel axis in either NCHW or NHWC format

Change-Id: Ibaf119b6a3de3c0f80f94b1c5fe9a356cf1fbd0e

5 years agoIVGCVSW-2312 Update CL pin to include their L2Normalization Neon changes
FrancisMurtagh [Fri, 30 Nov 2018 17:18:55 +0000 (17:18 +0000)]
IVGCVSW-2312 Update CL pin to include their L2Normalization Neon changes

* Updated Revision number in the get_compute_library.sh to after the
  implementation of COMPMID-1645 NEL2Normalization for FP32/FP16 & NHWC

Change-Id: Id9f437e833aafdb83c76bec1ba3fe79fdbab1a69

5 years agoIVGCVSW-2254 Add Reference workload for Maximum
saoste01 [Wed, 28 Nov 2018 16:57:20 +0000 (16:57 +0000)]
IVGCVSW-2254 Add Reference workload for Maximum

Change-Id: Id7302c6b1df995ebe6eb8eb94bab38bee1b31b0b

5 years agoIVGCVSW-2245 Add Minimum Layer and no-op Factory implementation
kevmay01 [Thu, 29 Nov 2018 08:40:19 +0000 (08:40 +0000)]
IVGCVSW-2245 Add Minimum Layer and no-op Factory implementation

Change-Id: I03fa374fd9692d98257de709f8c3ad0a49c88b95

5 years agoIVGCVSW-2202 Refactoring Arithmetic* names to Elementwise* names for workloads and...
Éanna Ó Catháin [Wed, 28 Nov 2018 16:24:38 +0000 (16:24 +0000)]
IVGCVSW-2202 Refactoring Arithmetic* names to Elementwise* names for workloads and workload functions

Change-Id: I6f3fce12a55f7d38ceafcdfcd6b5181bf56e2c09

5 years agoIVGCVSW-2253 Add maximum layer and corresponding no-op factory implementation
Nattapat Chaimanowong [Wed, 28 Nov 2018 10:44:37 +0000 (10:44 +0000)]
IVGCVSW-2253 Add maximum layer and corresponding no-op factory implementation

Change-Id: I8964f5e8978c2d2a07734a381e3f7c656c22456a

5 years agoIVGCVSW-1199: BATCH_TO_SPACE_ND integrate Arm Compute CL
Mike Kelly [Wed, 28 Nov 2018 11:52:08 +0000 (11:52 +0000)]
IVGCVSW-1199: BATCH_TO_SPACE_ND integrate Arm Compute CL

Change-Id: Ic772acf481caed6e8a6b99f68a63dfc2a34c24dc

5 years agoIVGCVSW-2205 Fixed a bug in DepthWiseConv workload where NCHW layout was assumed
Mohamed Nour Abouelseoud [Tue, 27 Nov 2018 17:35:35 +0000 (17:35 +0000)]
IVGCVSW-2205 Fixed a bug in DepthWiseConv workload where NCHW layout was assumed

Includes a temporary workaround for COMPMID-1813

Change-Id: I3e5217281be072d5b61788ab8a75e818bbc5d247

5 years agoIVGCVSW-2087 Reference implementation and unit tests for StridedSlice
Nattapat Chaimanowong [Fri, 23 Nov 2018 15:33:41 +0000 (15:33 +0000)]
IVGCVSW-2087 Reference implementation and unit tests for StridedSlice

Change-Id: Ifeacc0adb4547c72537b9ea7a61bf3c4ec3673fa

5 years agoFix documentation for depthwise convolution
Rob Hughes [Wed, 21 Nov 2018 13:34:24 +0000 (13:34 +0000)]
Fix documentation for depthwise convolution

Change-Id: Ib2bf543fc4f855da94eb1d34a91637f7868321cd

5 years agoFix compile errors on Windows
Rob Hughes [Wed, 21 Nov 2018 09:55:52 +0000 (09:55 +0000)]
Fix compile errors on Windows

Change-Id: I40acb42360bfcda09485efb2a54144d8e35bdafb

5 years agoIVGCVSW-2199 Call Resize only if H and/or W changes
James Conroy [Mon, 26 Nov 2018 09:48:30 +0000 (09:48 +0000)]
IVGCVSW-2199 Call Resize only if H and/or W changes

* Wrap Resize function call with conditional checking
  if height and/or width need to be changed.

Change-Id: Ic33c3ed29cc985c147d29db8e9dd237ab9c741d1

5 years agoIVGCVSW-2141 BuildGuideCrossCompilation.md Documentation update
surmeh01 [Fri, 23 Nov 2018 14:10:54 +0000 (14:10 +0000)]
IVGCVSW-2141 BuildGuideCrossCompilation.md Documentation update
* Removed the usage of g++-5 as we can build it using later versions

Change-Id: I073c84868c8619aeb5e4bd3006b87d10b7fec37e

5 years agoIVGCVSW-2183 BuildGuideCrossCompilation.md Documentation update
FrancisMurtagh [Wed, 21 Nov 2018 16:44:12 +0000 (16:44 +0000)]
IVGCVSW-2183 BuildGuideCrossCompilation.md Documentation update

 * Removed confusing mention of Anaconda and CuDNN and reworded

Change-Id: I2e4d86704c6564b2d18cec191246edd15cde0905

5 years agoRefactor JSON printer test implementation
Aron Virginas-Tar [Thu, 22 Nov 2018 15:04:42 +0000 (15:04 +0000)]
Refactor JSON printer test implementation

Change-Id: Icc1de9b69d7bb74b6bf5a6a6f315cf07fe2c5223

5 years agoRefactor inlined utility functions in NetworkUtils
Aron Virginas-Tar [Wed, 21 Nov 2018 13:14:42 +0000 (13:14 +0000)]
Refactor inlined utility functions in NetworkUtils

Change-Id: I26fb13717f64c942b2648702c52be18be856042d

5 years agoIVGCVSW-2135: Update Readme to include links to new ONNX and TensorFlow Lite guides
Brian Joyce [Thu, 22 Nov 2018 09:58:27 +0000 (09:58 +0000)]
IVGCVSW-2135: Update Readme to include links to new ONNX and TensorFlow Lite guides

Change-Id: Ia040a6accb4ae07156b2e1ad0ebef12423f647ed

5 years agoIVGCVSW-2086 Update StridedSliceLayer and StridedSliceDescriptor
Nattapat Chaimanowong [Wed, 21 Nov 2018 16:48:17 +0000 (16:48 +0000)]
IVGCVSW-2086 Update StridedSliceLayer and StridedSliceDescriptor

Change-Id: Ifa88a879dd239f60ab27330d6b73859393828ef0

5 years agoIVGCVSW-1837: Enable broadcast tests for SUB CL/NEON Workload
Mohamed Nour Abouelseoud [Wed, 21 Nov 2018 10:35:17 +0000 (10:35 +0000)]
IVGCVSW-1837: Enable broadcast tests for SUB CL/NEON Workload

Enabled subtraction broadcasting tests for CL/NEON
Enabled Uint8 subtraction tests for CL

Change-Id: Id36c1530f967c77f5633616e8f491cac9547724b

5 years agoRemove leftover header from backendsCommon test
David Beck [Tue, 20 Nov 2018 16:52:31 +0000 (16:52 +0000)]
Remove leftover header from backendsCommon test

Change-Id: I3a6077ad9ded9002aea9c888daab68b6452bd235

5 years agoUpdated the CL pin to take in the fix for CLBatchToSpace
Matteo Martincigh [Tue, 20 Nov 2018 16:40:24 +0000 (16:40 +0000)]
Updated the CL pin to take in the fix for CLBatchToSpace

Change-Id: I2d5f017917b1c773ff3da96ab28de415c1e77c0d

5 years agoIVGCVSW-2173 - Add end to end layer test implementation and example usage
narpra01 [Tue, 20 Nov 2018 15:21:28 +0000 (15:21 +0000)]
IVGCVSW-2173 - Add end to end layer test implementation and example usage
 * Add CommonTestUtils
 * Add end to end layer test implementation
 * Add example usage for Merger layer on Ref, Cl, Neon

Change-Id: I8931136288cd68b80bcdad8f5ae087ae1a70a60a

5 years agoIVGCVSW-2179 : ArmNN Contirbutor Guide
David Beck [Tue, 20 Nov 2018 13:57:09 +0000 (13:57 +0000)]
IVGCVSW-2179 : ArmNN Contirbutor Guide

Change-Id: I4887e3509a7f406c80f7eb55c04bdf62395c6cf6

5 years agoIVGCVSW-1199 Disable auto-flattening of Compute Library tensors
Matthew Bentham [Tue, 20 Nov 2018 14:33:33 +0000 (14:33 +0000)]
IVGCVSW-1199 Disable auto-flattening of Compute Library tensors

This is one of the reasons why the tests in https://review.mlplatform.org/#/c/ml/armnn/+/237/
are failing (but not the only reason).

Change-Id: If485bade2a6dd013cba826cec71d748fc7747249

5 years agoIVGCVSW-2117 - BuildGuideCrossCompilation.md Documentation update
FrancisMurtagh [Tue, 20 Nov 2018 14:42:46 +0000 (14:42 +0000)]
IVGCVSW-2117 - BuildGuideCrossCompilation.md Documentation update

* Updated build guide to include instruction to copy
          libprotobuf.so.15 into the build folder before moving
          to arm64 machine.

Change-Id: Ia20691edc79ff59fa4147eafbbfd3997b2531317

5 years agoMinor improvements and changes in backends/README.md
Aron Virginas-Tar [Tue, 20 Nov 2018 14:31:13 +0000 (14:31 +0000)]
Minor improvements and changes in backends/README.md

Change-Id: I55e27c50953c5e3f0b43bcd7aa8643015480181d

5 years agoIVGCVSW-2144: Adding TensorUtils class
Nina Drozd [Mon, 19 Nov 2018 13:03:36 +0000 (13:03 +0000)]
IVGCVSW-2144: Adding TensorUtils class

* helper methods for creating TensorShape and TensorInfo objects

Change-Id: I371fc7aea08ca6bbb9c205a143ce36e8353a1c48

5 years agoIVGCVSW-2175 - Add support for uint8 Concatenation on CL
narpra01 [Tue, 20 Nov 2018 11:29:12 +0000 (11:29 +0000)]
IVGCVSW-2175 - Add support for uint8 Concatenation on CL

Change-Id: I9bc46e17e11d73ee1a3bc4f9ec07d46be77fcbcb

5 years agoMLCE-64: Updating BuildGuideAndroidNDK.md for Ubuntu 18.04
saoste01 [Mon, 19 Nov 2018 19:41:52 +0000 (19:41 +0000)]
MLCE-64: Updating BuildGuideAndroidNDK.md for Ubuntu 18.04

Change-Id: Iab9c4952f5478d4805dba56e838f9c33d2b598ee

5 years agoIVGCVSW-2043 Merger using ACL for innermost concat axis
Matteo Martincigh [Tue, 20 Nov 2018 09:34:27 +0000 (09:34 +0000)]
IVGCVSW-2043 Merger using ACL for innermost concat axis

 * Fixed unsigned to signed conversion error that was
   breaking master

Change-Id: I08d79d9bf131eb46ea0495371160698ab59c1721

5 years agoIVGCVSW-2115: Fix for unset USERNAME
jimfly01 [Mon, 19 Nov 2018 13:42:45 +0000 (13:42 +0000)]
IVGCVSW-2115: Fix for unset USERNAME

* When running the script standalone USERNAME can be unset causing failure

Change-Id: Idb1752117c319c8946426efe8882f03034b2bbbf