platform/upstream/armcl.git
3 years agoAdd hardfloat build support sandbox/inki.dae/v21.02 accepted/tizen/6.5/unified/20211028.224919 accepted/tizen/unified/20210428.040457 submit/tizen/20210421.062230 submit/tizen/20210422.015846 submit/tizen/20210423.055448 submit/tizen/20210427.093759 submit/tizen_6.5/20211028.163301 tizen_6.5.m2_release
Slava Barinov [Tue, 6 Apr 2021 11:31:14 +0000 (20:31 +0900)]
Add hardfloat build support

Change-Id: I4bb99951d9627623caa3dfcac84769d16156ad41
Signed-off-by: Slava Barinov <v.barinov@samsung.com>
3 years agopackaging: pack more header files
Inki Dae [Thu, 4 Mar 2021 08:22:20 +0000 (17:22 +0900)]
packaging: pack more header files

Change-Id: I360f46c86d62eae399cab39fb22687bc06b61405
Signed-off-by: Inki Dae <inki.dae@samsung.com>
3 years agopackaging: Fix package version
Inki Dae [Thu, 10 Dec 2020 05:51:53 +0000 (14:51 +0900)]
packaging: Fix package version

Change-Id: I42f57f57c448b53d66ce55802223a589f110623e
Signed-off-by: Inki Dae <inki.dae@samsung.com>
3 years agopackaging: Change arch name for aarch64
Inki Dae [Fri, 11 Sep 2020 00:27:15 +0000 (09:27 +0900)]
packaging: Change arch name for aarch64

This patch changes arch name for aarch64 from arm64-v8.2-a to
arm64-v8a to fix a issue - illegal instruction - on RPI4 board.

Change-Id: I5f9871b5de21fd7601bd9557e270ed4fa2edc7c6
Signed-off-by: Inki Dae <inki.dae@samsung.com>
3 years agopackaging: Fix read failure to Security manifest file
Inki Dae [Thu, 10 Sep 2020 05:15:25 +0000 (14:15 +0900)]
packaging: Fix read failure to Security manifest file

Change-Id: I711c913c4a28ec29bb8fb3794eb94c266611709c
Signed-off-by: Inki Dae <inki.dae@samsung.com>
3 years agopackaging: Fix spec file for v20.05 support
Inki Dae [Mon, 27 Jul 2020 04:50:18 +0000 (13:50 +0900)]
packaging: Fix spec file for v20.05 support

Change-Id: I2aec3ec498d70061e2a42b8d1acffd069eb22ca9
Signed-off-by: Inki Dae <inki.dae@samsung.com>
3 years agoDist: updated install files
Parichay Kapoor [Tue, 31 Dec 2019 08:29:39 +0000 (17:29 +0900)]
Dist: updated install files

Updated the files to installed based on opencl or neon support

Change-Id: Ic76c61107591c7c7e8afb98a71408c5325baa0c4
Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
3 years agoDist/Tizen: remove libarmcl-release
MyungJoo Ham [Fri, 29 Nov 2019 03:56:25 +0000 (12:56 +0900)]
Dist/Tizen: remove libarmcl-release

There is no one using that obsoleted names.
To avoid "have choice for" problem, remove it.

Change-Id: Id253bd42b5f6a331fdfcd022cdb9ec4691cec923
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
3 years agoDist/Tizen: spec file clean-up
MyungJoo Ham [Tue, 26 Nov 2019 01:09:34 +0000 (10:09 +0900)]
Dist/Tizen: spec file clean-up

1. Do not use "release" postfix for the main library package.
2. Do not use -n if you are going to have the main name as prefix.
3. Cleaned up and added missing internal dependencies

Change-Id: Ic9adef91725b2f73a19b0a5d89ac8480643859da
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
3 years agoFix dependency error
MyungJoo Ham [Wed, 25 Sep 2019 01:26:29 +0000 (10:26 +0900)]
Fix dependency error

Libarmcl's main package is libarmcl-release, not libarmcl.

Change-Id: I960f7c17121320e82efe72a0c991aac3afac5905
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
3 years agoFix packaging error
MyungJoo Ham [Tue, 24 Sep 2019 04:48:04 +0000 (13:48 +0900)]
Fix packaging error

This fixes:

=== the following packages failed to build due to missing build dependencies (1) ===
nnstreamer:
  have choice for libarm_compute.so()(64bit) needed by nnfw-devel: libarmcl-devel libarmcl-release
  have choice for libarm_compute_core.so()(64bit) needed by nnfw-devel: libarmcl-devel libarmcl-release
  have choice for libarm_compute.so()(64bit) needed by nnfw: libarmcl-devel libarmcl-release
  have choice for libarm_compute_core.so()(64bit) needed by nnfw: libarmcl-devel libarmcl-release

by
- Make files exclusively installed between subpackages (release and devel)
- Add dependency between relead and devel.

Change-Id: I1b738124c9d62c663e99316eba68cbcda7cd033f
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
3 years agopackaging: add gbs build support for Tizen
Inki Dae [Wed, 6 Mar 2019 01:14:53 +0000 (10:14 +0900)]
packaging: add gbs build support for Tizen

Change-Id: I961315e7bb17e071deae469fc26b3a151eb1b0e4
Signed-off-by: Inki Dae <inki.dae@samsung.com>
3 years agoUpdate release repository pin
morgolock [Mon, 23 Nov 2020 15:39:23 +0000 (15:39 +0000)]
Update release repository pin

Change-Id: I679b66b97d0e32a5b39c2a53944c00743106dc82
Signed-off-by: morgolock <pablo.tello@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4529
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Tested-by: Michele Di Giorgio <michele.digiorgio@arm.com>
3 years agoAdd deprecation notice for OpenGLES and CV functions to README
morgolock [Mon, 23 Nov 2020 14:44:14 +0000 (14:44 +0000)]
Add deprecation notice for OpenGLES and CV functions to README

Change-Id: Ifb0f8f2c1347963fcb14e3bdab69f90dafb1d822
Signed-off-by: morgolock <pablo.tello@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4527
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Tested-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
3 years agoUpdate release version in Doxygen
morgolock [Fri, 20 Nov 2020 10:10:12 +0000 (10:10 +0000)]
Update release version in Doxygen

Change-Id: I44e87c966e7001e4bf83baf80405b1ef5c26c2a9
Signed-off-by: morgolock <pablo.tello@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4505
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Tested-by: Michele Di Giorgio <michele.digiorgio@arm.com>
3 years agoUpdate Release VERSION in SConscript
morgolock [Thu, 19 Nov 2020 18:42:37 +0000 (18:42 +0000)]
Update Release VERSION in SConscript

Change-Id: Ifed2048b2554e55216152ff9487ee4182735f049
Signed-off-by: morgolock <pablo.tello@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4489
Reviewed-by: SiCong Li <sicong.li@arm.com>
Tested-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
3 years agoRemove 3dparty folder and submodule
morgolock [Wed, 18 Nov 2020 14:20:00 +0000 (14:20 +0000)]
Remove 3dparty folder and submodule

Change-Id: I6d74f2fc7437c23574eb8e12af52594e66e30027
Signed-off-by: morgolock <pablo.tello@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4467
Reviewed-by: SiCong Li <sicong.li@arm.com>
Tested-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
3 years agoRemove INTERNAL_ONLY
morgolock [Thu, 19 Nov 2020 14:38:22 +0000 (14:38 +0000)]
Remove INTERNAL_ONLY

Change-Id: I39f0296fdb8c9be36c2775fab9b91ef22db7b136
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4479
Reviewed-by: SiCong Li <sicong.li@arm.com>
Tested-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
3 years agoUpdate errata with failures in CLCast and CLGEMMMatrixMultiplyReshapedOnlyRHS tests
Michele Di Giorgio [Thu, 25 Feb 2021 12:59:06 +0000 (12:59 +0000)]
Update errata with failures in CLCast and CLGEMMMatrixMultiplyReshapedOnlyRHS tests

Change-Id: I53f7b7152bc0a32cde349aff3fa309c44e72e735
Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com>
3 years agoAdd errata for failure in quantized CLFullyConnectedLayer
Michele Di Giorgio [Wed, 24 Feb 2021 11:15:32 +0000 (11:15 +0000)]
Add errata for failure in quantized CLFullyConnectedLayer

Change-Id: Id3b040e2c1bb0278213cf056630ea73164065c0b
Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com>
3 years agoAvoid division with zero on CLGEMM lhs/rhs configuration
Georgios Pinitas [Tue, 23 Feb 2021 00:00:42 +0000 (00:00 +0000)]
Avoid division with zero on CLGEMM lhs/rhs configuration

Resolves COMPMID-4285

Signed-off-by: Georgios Pinitas <georgios.pinitas@arm.com>
Change-Id: I414e3ba352ed86345d6355d9ae366ea92e641842
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5153
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>

3 years agoUpdate release note for data type decoupling
Giorgio Arena [Tue, 23 Feb 2021 12:30:49 +0000 (12:30 +0000)]
Update release note for data type decoupling

Change-Id: I8a2d35ef1d1a16e687b581e16a6907e392ef96f4
Signed-off-by: Giorgio Arena <giorgio.arena@arm.com>
3 years agoUpdate release notes with performance regression on G77 and updated toolchain
Giorgio Arena [Mon, 22 Feb 2021 14:58:37 +0000 (14:58 +0000)]
Update release notes with performance regression on G77 and updated toolchain

Signed-off-by: Giorgio Arena <giorgio.arena@arm.com>
Change-Id: I546bddeab320a1d19a1fe53b2a64ba258fb7b36d

3 years agoRemove 'actual's from building documentation
Giorgio Arena [Mon, 22 Feb 2021 10:27:24 +0000 (10:27 +0000)]
Remove 'actual's from building documentation

Signed-off-by: Giorgio Arena <giorgio.arena@arm.com>
Change-Id: Ifcf1aef67e326824746bdb8c799d2d333edb983b
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5140
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
3 years agoComply with Trademark rules for use of Neon, Arm and Mali
Sheri Zhang [Wed, 10 Feb 2021 15:32:38 +0000 (15:32 +0000)]
Comply with Trademark rules for use of Neon, Arm and Mali

Full trademarks available in README.md

Resolves: COMPMID-4257

Signed-off-by: Sheri Zhang <sheri.zhang@arm.com>
Change-Id: Ibfba2adf2eef3449433f467464ebd87d7198474d
Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5116
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
3 years agoDisable strict overflow warning for tensor_elem_at
Giorgio Arena [Sun, 21 Feb 2021 10:15:12 +0000 (10:15 +0000)]
Disable strict overflow warning for tensor_elem_at

Signed-off-by: Giorgio Arena <giorgio.arena@arm.com>
Change-Id: I7a3d59d837396f8a30677f427c5570e514f8e071

3 years agoUpdate Release Notes
Giorgio Arena [Fri, 19 Feb 2021 09:53:06 +0000 (09:53 +0000)]
Update Release Notes

Signed-off-by: Giorgio Arena <giorgio.arena@arm.com>
Change-Id: If77a996d6f1318c3c35e6bca5b333238d1b02cb7
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5109
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Reviewed-by: Sang-Hoon Park <sang-hoon.park@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
3 years agoFix tolerance for NEReduceMean on aarch64
Giorgio Arena [Thu, 18 Feb 2021 14:47:32 +0000 (14:47 +0000)]
Fix tolerance for NEReduceMean on aarch64

Change-Id: I1f8ed31b0271d9755092d2ec8871a94feb4e5da2
Signed-off-by: Giorgio Arena <giorgio.arena@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5106
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
3 years agoFree _gemm_output_3d's memory region after run()
Giorgio Arena [Fri, 19 Feb 2021 10:19:50 +0000 (10:19 +0000)]
Free _gemm_output_3d's memory region after run()

Signed-off-by: Giorgio Arena <giorgio.arena@arm.com>
Change-Id: I689a9b6ad5a4486316363674491c594e153b19fb

3 years agoSet CLDirectConvolutionLayerKernel NCHW _border_size to input padding
Giorgio Arena [Wed, 17 Feb 2021 16:04:05 +0000 (16:04 +0000)]
Set CLDirectConvolutionLayerKernel NCHW _border_size to input padding

Change-Id: I5802c470683647b7426b3b6e7d17280cabc32163
Signed-off-by: Giorgio Arena <giorgio.arena@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5100
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Michalis Spyrou <michalis.spyrou@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>

3 years agoSet _gemm_output_3d's padding as the output's in NEGEMMConvolutionLayer
Giorgio Arena [Tue, 16 Feb 2021 14:59:10 +0000 (14:59 +0000)]
Set _gemm_output_3d's padding as the output's in NEGEMMConvolutionLayer

Signed-off-by: Giorgio Arena <giorgio.arena@arm.com>
Change-Id: I31a51e8d28262680f9bb6f7530e28385efcb6b3b
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5090
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>

3 years agoUpdate SONAME_VERSION
Giorgio Arena [Wed, 17 Feb 2021 15:13:10 +0000 (15:13 +0000)]
Update SONAME_VERSION

Signed-off-by: Giorgio Arena <giorgio.arena@arm.com>
Change-Id: I293b7197c58f17f5b5e594289065e0fb501f247d
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5101
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
3 years agoUpdate deprecation notices
Giorgio Arena [Wed, 17 Feb 2021 11:43:05 +0000 (11:43 +0000)]
Update deprecation notices

Change-Id: I6db0a10249b2212add3ff4bb2598b03cae2bff55
Signed-off-by: Giorgio Arena <giorgio.arena@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5098
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
3 years agoUpdate LICENCE
Giorgio Arena [Tue, 16 Feb 2021 14:05:41 +0000 (14:05 +0000)]
Update LICENCE

Signed-off-by: Giorgio Arena <giorgio.arena@arm.com>
Change-Id: I6a193549eb46100fcce38ea4bf55f9d630753fc1
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5089
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
3 years agoRedirect issues to Github only
Michele Di Giorgio [Tue, 16 Feb 2021 15:37:59 +0000 (15:37 +0000)]
Redirect issues to Github only

Change-Id: I82091c660ec08050dc9a64835805ff0a0aabda59
Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5091
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>

3 years agoHandle Conv2d layer with implicit output padding in NHWC
Georgios Pinitas [Mon, 15 Feb 2021 20:42:39 +0000 (20:42 +0000)]
Handle Conv2d layer with implicit output padding in NHWC

Corner cases exist when output top/bottom padding is non-zero for
Convolution Layer. This can cause invalid output from the
NEGEMMConvolutionLayer as assembly kernel integration does not
efficiently handles such cases.

As a workaround we always allocate a memory-managed auxiliary tensor
which we use as an output for GEMM when padding exists and then we copy
to the padded output. If no padding exists we import the output tensor
memory to the temporary buffer and perform calculation as we did before.

Resolves: COMPMID-4114

Signed-off-by: Georgios Pinitas <georgios.pinitas@arm.com>
Change-Id: If82d0e115b8369b91d775895d5315b044306cc74
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5083
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Reviewed-by: Giorgio Arena <giorgio.arena@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>

3 years agoFix data layout retention and handling of leftovers when there is no padding
Michele Di Giorgio [Fri, 12 Feb 2021 17:34:17 +0000 (17:34 +0000)]
Fix data layout retention and handling of leftovers when there is no padding

Resolves COMPMID-4258

Change-Id: I8782bf725cd0d376d538021406eb1f5be962b2cb
Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/c/VisualCompute/ComputeLibrary/+/298627
Reviewed-by: Teresa Charlin Reyes <teresa.charlinreyes@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Comments-Addressed: Teresa Charlin Reyes <teresa.charlinreyes@arm.com>
Tested-by: Georgios Pinitas <georgios.pinitas@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5082
Reviewed-by: TeresaARM <teresa.charlinreyes@arm.com>
3 years agoAdding Android S option
Teresa Charlin [Fri, 12 Feb 2021 12:29:26 +0000 (12:29 +0000)]
Adding Android S option

Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com>
Change-Id: I1c34226005216fbdf0b037ccbb7cc3ceb1de24a3
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5061
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Sang-Hoon Park <sang-hoon.park@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
3 years agoBuilding android-nn-driver failed
Manuel Bottini [Thu, 11 Feb 2021 12:34:47 +0000 (12:34 +0000)]
Building android-nn-driver failed

Properly include CLGEMMHelpers

Resolves: COMPMID-4255

Change-Id: I06f0da8b7b51e5abdff1eb883a5dae4138a68f89
Signed-off-by: Manuel Bottini <manuel.bottini@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5054
Reviewed-by: Pablo Marquez Tello <pablo.tello@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
3 years agoUpdate OpenCL GEMM benchmark script
Gian Marco Iodice [Wed, 10 Feb 2021 17:33:27 +0000 (17:33 +0000)]
Update OpenCL GEMM benchmark script

- Update cl_gemm_benchmark.sh script. Now it also possible to split the
  benchmark among different platforms
- Update documentation

Resolves COMPMID-3848

Change-Id: Ifbf71cee5ff83aead76e20dcbf7dc5ce41526594
Signed-off-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5047
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Giorgio Arena <giorgio.arena@arm.com>
3 years agoValidate mlgo gemm type selection and fall back to default heuristics
SiCong Li [Wed, 10 Feb 2021 16:57:33 +0000 (16:57 +0000)]
Validate mlgo gemm type selection and fall back to default heuristics

GEMM kernel type returned by mlgo heuristics in each of the CLGEMM and
CLGEMMLowpMatrixMultiplyCore could also be invalid. Fix this by falling
back to default heuristics, similar to how we deal with gemm configs for
now.

Resolves COMPMID-3847

Change-Id: Iae7c1dcd7def04969ad13a4c132873fda8c8a571
Signed-off-by: SiCong Li <sicong.li@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5044
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
3 years agoFix tolerance issue in CL Winograd InputTransform FP16
Manuel Bottini [Tue, 9 Feb 2021 16:34:54 +0000 (16:34 +0000)]
Fix tolerance issue in CL Winograd InputTransform FP16

Change-Id: I2874e1f3ff3f0b02edf465073a4a2de5171f0504
Signed-off-by: Manuel Bottini <manuel.bottini@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5036
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Giorgio Arena <giorgio.arena@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>

3 years agoRevert changes on tensor's strides and fix CLDepthwiseConvolution 3x3 Quantized
Giorgio Arena [Wed, 10 Feb 2021 11:54:47 +0000 (11:54 +0000)]
Revert changes on tensor's strides and fix CLDepthwiseConvolution 3x3 Quantized

- Revert changes in strides > num_dimensions. Set them to 0
- Fix offset calculcation in depthwise 3x3 quantized using select and stride_y for max offset

Resolve COMPMID-4254

Change-Id: Ia99b9637f18b99b1fa3d4b7b4892046027d3e7e5
Signed-off-by: Giorgio Arena <giorgio.arena@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5040
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>

3 years agoIntegrate MLGO into CLGEMMLowpMatrixMultiplyCore for native kernel
SiCong Li [Mon, 8 Feb 2021 15:16:13 +0000 (15:16 +0000)]
Integrate MLGO into CLGEMMLowpMatrixMultiplyCore for native kernel

Resolves COMPMID-3846

Signed-off-by: SiCong Li <sicong.li@arm.com>
Change-Id: Iad66f6dd7fa5b13ebace9f95fbc2fc4d677cf6a9
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5032
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Reviewed-by: Pablo Marquez Tello <pablo.tello@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>

3 years agoDecouple CpuPoolingKernel data type and data layout
Sheri Zhang [Mon, 8 Feb 2021 17:43:04 +0000 (17:43 +0000)]
Decouple CpuPoolingKernel data type and data layout

1. Decouple data layout for CpuPoolingKernel: NCHW & NHWC
2. Decouple data type for CpuPoolingKernel NHWC

Partially solves: COMPMID-3999

Signed-off-by: Sheri Zhang <sheri.zhang@arm.com>
Change-Id: I3c6535eebdddeb467b7c68a7287a16959b5b9695
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5039
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>

3 years agoIntegrate MLGO into CLGEMM for reshaped kernel
SiCong Li [Mon, 8 Feb 2021 14:19:23 +0000 (14:19 +0000)]
Integrate MLGO into CLGEMM for reshaped kernel

Resolves COMPMID-3845

Signed-off-by: SiCong Li <sicong.li@arm.com>
Change-Id: I878ea6dc076177095816a75f9bc951326fd095b3
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5031
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
3 years agoMake Softmax kernels and operator stateless
Michalis Spyrou [Wed, 20 Jan 2021 16:41:12 +0000 (16:41 +0000)]
Make Softmax kernels and operator stateless

COMPMID-3997

Change-Id: I3a3cc76d8247dd769d9a5e6e171d718ea909312c
Signed-off-by: Michalis Spyrou <michalis.spyrou@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4986
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>

3 years agoAdd mlgo to graph examples
SiCong Li [Wed, 3 Feb 2021 12:17:35 +0000 (12:17 +0000)]
Add mlgo to graph examples

Resolves COMPMID-3847

Change-Id: I99f73bfc8eda66e8ce1dd1f2a18be76e9d826569
Signed-off-by: SiCong Li <sicong.li@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5033
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>

3 years agoFix CLDepthwiseConvolutionLayer 3x3 QASYMM8
Giorgio Arena [Mon, 8 Feb 2021 13:20:24 +0000 (13:20 +0000)]
Fix CLDepthwiseConvolutionLayer 3x3 QASYMM8

Fix errors when computing tensors with one element only

- Replace Tensor3D with raw pointers so to get rid of offset to first element for NCHW layout
- Add stronger out of bound constraints for NHWC layout
- Set the border size to the input's padding for NHWC
- Fill the strides == 0 with the largest stride, so to avoid accessing empty strides and multiplying by 0

Resolve COMPMID-4088

Change-Id: I751a4e6d7094b3c42306ff7f53af848fd35f19ac
Signed-off-by: Giorgio Arena <giorgio.arena@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5024
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Manuel Bottini <manuel.bottini@arm.com>
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>

3 years agoFix Floating Point Exception for cl_gemm_reshaped
Manuel Bottini [Mon, 8 Feb 2021 13:45:19 +0000 (13:45 +0000)]
Fix Floating Point Exception for cl_gemm_reshaped

Return proper error in the examples when such cases occur

Resolves: COMPMID-4237

Change-Id: I864c6f73a629a961774c7ae1cb62c28edcbed379
Signed-off-by: Manuel Bottini <manuel.bottini@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5028
Reviewed-by: Giorgio Arena <giorgio.arena@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
3 years agoIntegrate MLGO into CLGEMM and CLGEMMLowpMatrixMultiplyCore: Part4
SiCong Li [Thu, 4 Feb 2021 13:12:19 +0000 (13:12 +0000)]
Integrate MLGO into CLGEMM and CLGEMMLowpMatrixMultiplyCore: Part4

Apply cl_gemm::auto_heuristics to CLGEMMLowpMatrixMultiplyCore for the
selection of gemm config reshaped only rhs and gemm kernel type

Resolves: COMPMID-3843, COMPMID-3844

Signed-off-by: SiCong Li <sicong.li@arm.com>
Change-Id: I351c76b052a1e52acec23a217bb111da8e40518e
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4992
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Manuel Bottini <manuel.bottini@arm.com>
Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>

3 years agoIntegrate MLGO into CLGEMM and CLGEMMLowpMatrixMultiplyCore: Part3
SiCong Li [Thu, 4 Feb 2021 13:07:09 +0000 (13:07 +0000)]
Integrate MLGO into CLGEMM and CLGEMMLowpMatrixMultiplyCore: Part3

* Implement a common interface across both functions and across mlgo and
  default heuristics. This interface is implemented as:

  * A set of adaptor functions in new cl_gemm::auto_heuristics namespace
    as:

    * select_default_*: For selecting configs using default heuristics
    * select_mlgo_*:    For selecting configs using mlgo heuristics

    These adaptor functions have the same interface

  * On top of these adaptor functions, a set of auto_select_* functions
    that automatically selects between mlgo and default (prioritize
    mlgo).

    Note that auto_select_gemm_config_* are implemented in each
    individual function. This is because the auto selection depends on
    the validation of its hosting functions.

    When we are able to decouple and abstract the validation logics,
    it's possible to share the core auto_gemm_config_* in
    cl_gemm::auto_heuristics namespace as well.

* Apply this interface in CLGEMM for the selection of gemm config
  reshaped only rhs and gemm kernel type

Resolves: COMPMID-3843, COMPMID-3844

Signed-off-by: SiCong Li <sicong.li@arm.com>
Change-Id: Idf7fb46837a027449aae1e251346b2701866309a
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4991
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>

3 years agoIntegrate MLGO into CLGEMM and CLGEMMLowpMatrixMultiplyCore: Part2
SiCong Li [Fri, 5 Feb 2021 09:30:57 +0000 (09:30 +0000)]
Integrate MLGO into CLGEMM and CLGEMMLowpMatrixMultiplyCore: Part2

* Associate CLScheduler with CLGEMMHeuristicsHandle

* Add option in arm_compute_validation for mlgo file path

* Extend logging for the selection of gemm configurations

Resolves: COMPMID-3843, COMPMID-3844

Signed-off-by: SiCong Li <sicong.li@arm.com>
Change-Id: I869c3a4122414ae6a7bbd721966c1da37621ca11
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5002
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Manuel Bottini <manuel.bottini@arm.com>
Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>

3 years agoReport WBSM feature support in the documentation
Gian Marco Iodice [Mon, 8 Feb 2021 17:34:40 +0000 (17:34 +0000)]
Report WBSM feature support in the documentation

This extension of the OpenCL tuner is still in experimental phase and
allows to control the size of batches of workgroups distributed to
compute units

Resolves COMPMID-3938

Change-Id: I8e55db6877717ef5d50bc7eee24b248b5a2f9414
Signed-off-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5027
Reviewed-by: Giorgio Arena <giorgio.arena@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
3 years agoIntegrate MLGO into CLGEMM and CLGEMMLowpMatrixMultiplyCore: Part1
SiCong Li [Fri, 5 Feb 2021 09:19:51 +0000 (09:19 +0000)]
Integrate MLGO into CLGEMM and CLGEMMLowpMatrixMultiplyCore: Part1

* Create a new public handle class CLGEMMHeuristicsHandle
  It is responsible for the loading and lifetime management of the
  underlying heuristics

* Add to_string utility to several mlgo constructs for logging

Resolves: COMPMID-3843, COMPMID-3844

Signed-off-by: SiCong Li <sicong.li@arm.com>
Change-Id: Ib9c65e076daa6a9a204999cde9abf366dbabc496
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5001
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>

3 years agoArmNN internal OOB failed to build ACL with the use of a deleted function
Manuel Bottini [Mon, 8 Feb 2021 17:07:04 +0000 (17:07 +0000)]
ArmNN internal OOB failed to build ACL with the use of a deleted function

Remove "noexcept" from move assign constructor to support gcc 5.4.0

Resolves: COMPMID-4241

Change-Id: Idff6b8a7468e4733ed6cc87a910bd85590463de0
Signed-off-by: Manuel Bottini <manuel.bottini@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5025
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
3 years agoMake memset/copy functions state-less
Sheri Zhang [Tue, 2 Feb 2021 11:49:34 +0000 (11:49 +0000)]
Make memset/copy functions state-less

Port following functions:
- CLCopy
- CLFill
- CLPermute
- CLReshapeLayer
- CLCropResize

Resolves: COMPMID-4002

Signed-off-by: Sheri Zhang <sheri.zhang@arm.com>
Change-Id: I8392aa515aaeb5b44dab6122be6a795d08376d5f
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5003
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
3 years agoFix tolerance for NEON RNNLayer
Manuel Bottini [Mon, 8 Feb 2021 11:51:48 +0000 (11:51 +0000)]
Fix tolerance for NEON RNNLayer

Hide FP16 tolerances for NEON backend if FP16 vector arithmetic not supported

Resolves: COMPMID-4239

Change-Id: Ib6aad2de8a0ea621e2fdb673b9bab92c0520acd5
Signed-off-by: Manuel Bottini <manuel.bottini@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5022
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Giorgio Arena <giorgio.arena@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>

3 years agoMake NEON Pooling kernels and functions state-less
Michele Di Giorgio [Wed, 3 Feb 2021 16:05:00 +0000 (16:05 +0000)]
Make NEON Pooling kernels and functions state-less

Partially resolves COMPMID-3999

Change-Id: Ib39d40694df5c5f0a9401488e0c3af3ac26e8c55
Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4984
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>

3 years agoUpdate documentation for OpenCL kernel padding removal
Sheri Zhang [Mon, 1 Feb 2021 19:06:57 +0000 (19:06 +0000)]
Update documentation for OpenCL kernel padding removal

Resolves: COMPMID-4224

Signed-off-by: Sheri Zhang <sheri.zhang@arm.com>
Change-Id: I3a7774e1264d68358489084d3a2ae87d4a79b48c
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4999
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>

3 years agoFix tolerance for NEON RNNLayer
Manuel Bottini [Fri, 5 Feb 2021 12:53:41 +0000 (12:53 +0000)]
Fix tolerance for NEON RNNLayer

Use same absolute tolerance as in the GPU backend

Change-Id: I92d8ce93ca189dad70dff6226b3b501b724cea33
Resolves: COMPMID-4239
Signed-off-by: Manuel Bottini <manuel.bottini@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5010
Reviewed-by: Giorgio Arena <giorgio.arena@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
3 years agoTweak scheduling use of SQDMULH in quantized AVG pooling
Michele Di Giorgio [Tue, 2 Feb 2021 14:59:09 +0000 (14:59 +0000)]
Tweak scheduling use of SQDMULH in quantized AVG pooling

Resolves COMPMID-4195

Change-Id: Ie5116c1ddddccafba40432fd4b5245bb27890a88
Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4997
Reviewed-by: TeresaARM <teresa.charlinreyes@arm.com>
Reviewed-by: Manuel Bottini <manuel.bottini@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
3 years agoFix unused variable compilation error
Giorgio Arena [Thu, 4 Feb 2021 15:59:03 +0000 (15:59 +0000)]
Fix unused variable compilation error

Resolve: COMPMID-4236

Signed-off-by: Giorgio Arena <giorgio.arena@arm.com>
Change-Id: Iaa64295c0155d3cdac6e53724c6c9674df790ee0
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4998
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
3 years agoFix CL Compiler frontend failure for ArgMinMax
Giorgio Arena [Wed, 3 Feb 2021 12:29:57 +0000 (12:29 +0000)]
Fix CL Compiler frontend failure for ArgMinMax

- Change select condition's data type to satisfy its signature
- Add failing test case with VEC_SIZE == 1

Resolve: COMPMID-4110

Change-Id: I52287bff7a2108f92fd12164e267df6c074d5508
Signed-off-by: Giorgio Arena <giorgio.arena@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4978
Reviewed-by: TeresaARM <teresa.charlinreyes@arm.com>
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
3 years agoFix OpenCL direct convolution
Gian Marco Iodice [Mon, 1 Feb 2021 14:37:02 +0000 (14:37 +0000)]
Fix OpenCL direct convolution

- The ARM DOT macro was using wrong variables for performing the dot
  product
- K0 could be a non power of 2 values when IFM was not a multiple of 16
- Refactor the test for direct convolution NHWC

Resolves COMPMID-4135, COMPMID-4155

Change-Id: I3a2dc89ef613ae20245cfc28e76ea36c55eaf81d
Signed-off-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4962
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: TeresaARM <teresa.charlinreyes@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
3 years agoFix segfault in fsrcnn.tflite in GpuAcc
Teresa Charlin [Wed, 3 Feb 2021 17:01:23 +0000 (17:01 +0000)]
Fix segfault in fsrcnn.tflite in GpuAcc

* In CLDirectConvolution check for non-bias separately

Resolves: COMPMID-4214
Change-Id: I83c0688e9b48d059665bbc6e1f0f050a516132d6
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4980
Reviewed-by: Giorgio Arena <giorgio.arena@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
3 years agoMake CL Pooling kernels and functions state-less
Michele Di Giorgio [Mon, 1 Feb 2021 17:09:32 +0000 (17:09 +0000)]
Make CL Pooling kernels and functions state-less

Resolves COMPMID-4000

Change-Id: I64878f93c033b4928fdefbb964c37c67fdecfaab
Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4971
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Manuel Bottini <manuel.bottini@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
3 years agoAdd WBSM tuning to CLTuner
Manuel Bottini [Mon, 25 Jan 2021 15:07:17 +0000 (15:07 +0000)]
Add WBSM tuning to CLTuner

Add WBSM as possible parameter to be tuned
Add helper functions to check WBSM support and setting the value in the kernel
Update tuning parameter lists to use WBSM
Update CLTuner to use WBSM
The WBSM tuning is exposed as a parameter to be set at compile time by setting the CLTuningInfo
CLTuningInfo contains information about the tuning mode and if wbsm tuning enabled

Resolves: COMPMID-3936

Change-Id: Id53697c9c6d2cef41c049f368002f6197351b3ed
Signed-off-by: Manuel Bottini <manuel.bottini@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4914
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
3 years agoImplement MLGO module
SiCong Li [Fri, 8 Jan 2021 15:16:02 +0000 (15:16 +0000)]
Implement MLGO module

* Implement MLGOHeuristics which provides a query and a loading
  interface

* Implement a top-down parser MLGOParser for parsing dotmlgo

* Add validation tests for MLGOHeuristics

Resolves COMPMID-3840, COMPMID-3841
Signed-off-by: SiCong Li <sicong.li@arm.com>
Change-Id: Iae96d2779524b2dd83623d1a3a30ef57823ae084
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4941
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>

3 years agoAccount for eventual padding in Pooling assembly kernels
Michele Di Giorgio [Tue, 2 Feb 2021 10:54:26 +0000 (10:54 +0000)]
Account for eventual padding in Pooling assembly kernels

Resolves: COMPMID-4217

Change-Id: I8426a494ab0d3c6479de977cdab803d35bbe1e40
Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4967
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: TeresaARM <teresa.charlinreyes@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>

3 years agoCompress OpenCL kernel files using zlib for Android
Georgios Pinitas [Fri, 22 Jan 2021 05:47:37 +0000 (05:47 +0000)]
Compress OpenCL kernel files using zlib for Android

Kernel files are embedded into the binary as the default option when
building which leads to binary size bloating.

Add `compress_kernels` option and utilize zlib for further compressing
the text kernel files and reduce the overall binary size. We use a
base64 encoding/decoding to ensure that the strings can be easily
embedded. This adds to the binary size but still the overall reduction
is significant.
Maximum compression level 9 is used.

Option is currently restricted to Android builds as android toolchain
provides a zlib library.

Initial experimentations indicate a binary size reduction of 50%

Resolves: COMPMID-4017

Signed-off-by: Georgios Pinitas <georgios.pinitas@arm.com>
Change-Id: Iee81b8c00391b26a5f41642699692928a4d6bd6e
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4958
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
3 years agoMake data_layout an attribute of the Scale function
Michele Di Giorgio [Thu, 28 Jan 2021 12:51:02 +0000 (12:51 +0000)]
Make data_layout an attribute of the Scale function

Resolves COMPMID-4208

Change-Id: I61ca670134a005462ad0528a5aff9507a90860e7
Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4942
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>

3 years agoRemove redundant header from NEElementwiseUnaryLayer
Sang-Hoon Park [Fri, 29 Jan 2021 12:57:13 +0000 (12:57 +0000)]
Remove redundant header from NEElementwiseUnaryLayer

The redundant header that was causing build issues
for some use-cases is removed.

Resolves: COMPMID-4218

Change-Id: I3a2bdd8286276f8c84a9b1a0a41ea63ad456edba
Signed-off-by: Sang-Hoon Park <sang-hoon.park@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4947
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Sheri Zhang <sheri.zhang@arm.com>
3 years agoMake CL Elementwise Unary kernels and functions state-less
Michele Di Giorgio [Tue, 26 Jan 2021 10:20:17 +0000 (10:20 +0000)]
Make CL Elementwise Unary kernels and functions state-less

Resolves COMPMID-4004

Change-Id: I1dfe8bc52c1ff394ea208ba98b51033c738746a4
Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4922
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
3 years agoAdd broadcasting support in NEPixelWiseMultiplicationKernel for FP16
Pablo Marquez Tello [Wed, 27 Jan 2021 14:16:13 +0000 (14:16 +0000)]
Add broadcasting support in NEPixelWiseMultiplicationKernel for FP16

* FP16 kernel missed the broadcast path

* Resolves: COMPMID-4113

Change-Id: I8fd79030f2ae9c268dfeed672a57c6d0f64f58f4
Signed-off-by: Pablo Marquez Tello <pablo.tello@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4926
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Sheri Zhang <sheri.zhang@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>

3 years agoForce early exit of threads when output_height=1 and channels=1 in assembly pooling
Michele Di Giorgio [Wed, 27 Jan 2021 16:22:05 +0000 (16:22 +0000)]
Force early exit of threads when output_height=1 and channels=1 in assembly pooling

Resolves COMPMID-4156, COMPMID-4125

Change-Id: I408e51e9759448e6190490975ccab2c1bc07a813
Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4927
Reviewed-by: TeresaARM <teresa.charlinreyes@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
3 years agoMake Gpu Elementwise Operations kernels and functions state-less
Michele Di Giorgio [Mon, 25 Jan 2021 15:44:02 +0000 (15:44 +0000)]
Make Gpu Elementwise Operations kernels and functions state-less

Partially resolves COMPMID-4004

Change-Id: Ie99b6c676af5be4c2a67affc06fec378f3dff8ec
Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4918
Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
3 years agoFix NEON/CL CustomConvolution failures
Manuel Bottini [Tue, 26 Jan 2021 12:09:38 +0000 (12:09 +0000)]
Fix NEON/CL CustomConvolution failures

Properly handle UNDEFINED border mode as done in the reference

Change-Id: I23b117be3ee5cd0e566f6161681d38493627fc9b
Resolves: COMPMID-4133
Signed-off-by: Manuel Bottini <manuel.bottini@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4919
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Reviewed-by: Giorgio Arena <giorgio.arena@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
3 years agoMake CLArithmeticSubtraction kernel and function state-less
Michele Di Giorgio [Mon, 25 Jan 2021 11:49:03 +0000 (11:49 +0000)]
Make CLArithmeticSubtraction kernel and function state-less

Resolves COMPMID-4008

Change-Id: Ic5f40610e771f31e6d301dfae976c81e9c79fa8b
Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4917
Reviewed-by: Michalis Spyrou <michalis.spyrou@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
3 years agoRemove iostream header file when not needed
Gian Marco Iodice [Tue, 26 Jan 2021 10:15:05 +0000 (10:15 +0000)]
Remove iostream header file when not needed

Change-Id: Ic6b3e94fc252c2d6fe17e6bc32900d11c68ae399
Signed-off-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4916
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
3 years agoMake CLArithmeticAddition kernel and function state-less
Michele Di Giorgio [Fri, 22 Jan 2021 15:42:59 +0000 (15:42 +0000)]
Make CLArithmeticAddition kernel and function state-less

Resolves COMPMID-4006

Change-Id: Iddc32b0b250142aac9a4a7b9dc0eef462d196025
Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4913
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Sang-Hoon Park <sang-hoon.park@arm.com>
3 years agoRename functions/classes for elementwise unary operations
Sang-Hoon Park [Fri, 22 Jan 2021 11:55:03 +0000 (11:55 +0000)]
Rename functions/classes for elementwise unary operations

* Create CpuElementwiseUnary operator
* Rename kernel classes
* Make the kernels stateless

Partially implements: COMPMID-4003

Change-Id: Ie0440cd01d4924847d6991b4df7ccaf311439297
Signed-off-by: Sang-Hoon Park <sang-hoon.park@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4912
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>

3 years agoCTS Failures in Android CpuAcc in Add
Teresa Charlin [Mon, 25 Jan 2021 10:19:14 +0000 (10:19 +0000)]
CTS Failures in Android CpuAcc in Add

* Fusing the activation into Addition is not supported in CpuAcc. Armnn
uses this validate function to decide if fusion is supported.

Resolves COMPMID-4121

Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com>
Change-Id: I78cec326057eada32c2bf7d0e8d64a4af5854cd9
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4911
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Sang-Hoon Park <sang-hoon.park@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>

3 years agoRename functions/classes for elementwise operations
Sang-Hoon Park [Mon, 18 Jan 2021 14:20:27 +0000 (14:20 +0000)]
Rename functions/classes for elementwise operations

* Create CpuElementwise operator
* Rename kernel classes
* Make the kernels stateless

Partially implements: COMPMID-4003

Change-Id: I4ef9c61a3acc3ac5dbe46463d62dcb88a5face21
Signed-off-by: Sang-Hoon Park <sang-hoon.park@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4881
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Sheri Zhang <sheri.zhang@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>

3 years agoFix Scale CTS failures
Sheri Zhang [Wed, 20 Jan 2021 12:20:20 +0000 (12:20 +0000)]
Fix Scale CTS failures

- Move back to use template for NEON implementaion to be more mantainable

Resolves: COMPMID-4112

Signed-off-by: Sheri Zhang <sheri.zhang@arm.com>
Change-Id: I27b60674d743e3d7ec5bb065898cb75cb40bcf0e
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4900
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Giorgio Arena <giorgio.arena@arm.com>
Reviewed-by: Manuel Bottini <manuel.bottini@arm.com>
3 years agoCheck for unsupported armv7a optimized pooling kernels
Michele Di Giorgio [Fri, 22 Jan 2021 11:21:13 +0000 (11:21 +0000)]
Check for unsupported armv7a optimized pooling kernels

Resolves COMPMID-4136

Change-Id: I3c1f9e615cb2d2c48464ac5b7dbf0a26dc435889
Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4906
Reviewed-by: Giorgio Arena <giorgio.arena@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
3 years agoFixed segfault NEDeconvLayer due to overflow.
Pablo Marquez Tello [Wed, 20 Jan 2021 15:02:59 +0000 (15:02 +0000)]
Fixed segfault NEDeconvLayer due to overflow.

* The CTS test TestRandomGraph/RandomGraphTest#SmallGraph_TENSOR_FLOAT16_Rank4/43 segfaulted when
  running on CpuAcc + 8-2a.

* Added a guard against overflow in DeconvLayer::validate

* Resolves: COMPMID-4115

Change-Id: I6687b67dbde3921a2795224e8107a9add9d358ff
Signed-off-by: Pablo Marquez Tello <pablo.tello@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4890
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Giorgio Arena <giorgio.arena@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
3 years agoUpdate Fp16 heuristic for Mali-G76 and Mali-G77
Gian Marco Iodice [Thu, 21 Jan 2021 12:23:22 +0000 (12:23 +0000)]
Update Fp16 heuristic for Mali-G76 and Mali-G77

Change-Id: I199c10574d0d84737adbc73829f60a220c7088b4
Signed-off-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4897
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Giorgio Arena <giorgio.arena@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>

3 years agoCTS failures in Android R and Q in GpuAcc in ArgMinMax
Giorgio Arena [Thu, 21 Jan 2021 14:53:56 +0000 (14:53 +0000)]
CTS failures in Android R and Q in GpuAcc in ArgMinMax

- Fix ambiguosity with select in OpenCL
- Define a new macro for signed integer data type of the same input data type's size. This is needed because some ops (e.g. logical operators) in OpenCL work in this way

Resolves: COMPMID-4116, COMPMID-4110

Signed-off-by: Giorgio Arena <giorgio.arena@arm.com>
Change-Id: I560eda63fce24abd03d061f78f2f2ca951053fd0
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4898
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>

3 years agoAdd window parameter to scheduler
Sang-Hoon Park [Wed, 20 Jan 2021 18:16:47 +0000 (18:16 +0000)]
Add window parameter to scheduler

To support window configured outside of
kernels, the parameter is added to scheduler.
The existing operators pass window from
kernels to preserve the current behavior.

Partial Implements: COMPMID-4003

Change-Id: I4514e12fb5b0c60e4adfc1a51e53a8a5de356a0d
Signed-off-by: Sang-Hoon Park <sang-hoon.park@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4892
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
3 years agoMake CLFloor and CLActivation kernels and functions state-less
Georgios Pinitas [Fri, 15 Jan 2021 09:29:50 +0000 (09:29 +0000)]
Make CLFloor and CLActivation kernels and functions state-less

Signed-off-by: Georgios Pinitas <georgios.pinitas@arm.com>
Change-Id: Icbe4e6a7c6732a59bdda0136af44c4852452dfd1
Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4891
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>

3 years agoCheck for FP16 CPU support in optimized pooling kernels
Michele Di Giorgio [Thu, 21 Jan 2021 10:12:17 +0000 (10:12 +0000)]
Check for FP16 CPU support in optimized pooling kernels

Resolves COMPMID-4123

Change-Id: I0c3c852c9d887cffc0d2e65142f75204ab5e3ff4
Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4894
Reviewed-by: TeresaARM <teresa.charlinreyes@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
3 years agoFix softmax SVE compiling failure without SVE2 support
Sheri Zhang [Thu, 21 Jan 2021 09:35:17 +0000 (09:35 +0000)]
Fix softmax SVE compiling failure without SVE2 support

Resolves partially: COMPMID-3891

Signed-off-by: Sheri Zhang <sheri.zhang@arm.com>
Change-Id: I1f08746c44146f4d6ad3e48bcc3d1d2470fd156e
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4893
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>

3 years agoMake Sub kernel and operator stateless
Sheri Zhang [Wed, 13 Jan 2021 15:54:05 +0000 (15:54 +0000)]
Make Sub kernel and operator stateless

- Rename NEArithmeticSubstractionKernel to CpuSubKernel and move files appropriately

- Add CpuSub under src/runtime/cpu/operators

Partially resolves: COMPMID-4007

Signed-off-by: Sheri Zhang <sheri.zhang@arm.com>
Change-Id: I4754ca9101d82dccacca744be6d069764a9c6b55
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4868
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Pablo Marquez Tello <pablo.tello@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>

3 years agoIntegrate improved pooling layer on NEON
Michele Di Giorgio [Tue, 27 Oct 2020 10:56:31 +0000 (10:56 +0000)]
Integrate improved pooling layer on NEON

Resolves COMPMID-4035

Change-Id: I559f8c4208fba9193dfe5012f03ddaf26c746215
Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4855
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>

3 years agoMake all CL Concatenate kernels and functions state-less
Michele Di Giorgio [Mon, 18 Jan 2021 21:15:59 +0000 (21:15 +0000)]
Make all CL Concatenate kernels and functions state-less

Resolves COMPMID-3995

Change-Id: I84172bed20924f1d9ae3b4d14d7b321e9494296e
Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4887
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
3 years agoUpdate documentation for SVE/SVE2 support
Sheri Zhang [Wed, 6 Jan 2021 11:15:06 +0000 (11:15 +0000)]
Update documentation for SVE/SVE2 support

Resolves: COMPMID-4078

Signed-off-by: Sheri Zhang <sheri.zhang@arm.com>
Change-Id: I755c39063766421df2d41fc9589abd52295fb020
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4875
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Giorgio Arena <giorgio.arena@arm.com>
3 years agoDirect convolution fix for quantized data type
Gian Marco Iodice [Tue, 19 Jan 2021 17:39:02 +0000 (17:39 +0000)]
Direct convolution fix for quantized data type

- Pass the quantized zero value to the opencl kernel

Fixes COMPMID-3908

Change-Id: I6454c2e49f5b150a99178f2d72e0afa0a2990b54
Signed-off-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4884
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Giorgio Arena <giorgio.arena@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>

3 years agoFix doxygen references to new kernels
Michele Di Giorgio [Tue, 19 Jan 2021 15:29:02 +0000 (15:29 +0000)]
Fix doxygen references to new kernels

Resolves COMPMID-4117

Change-Id: I9945a92402e34b9cfe0ba9ef2a961b168bf62721
Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4883
Reviewed-by: Pablo Marquez Tello <pablo.tello@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
3 years agoMake memset/copy functions state-less
Georgios Pinitas [Sun, 10 Jan 2021 04:23:52 +0000 (04:23 +0000)]
Make memset/copy functions state-less

Port following functions:
- NECopy
- NEFill
- NEPermute
- NEReshapeLayer

Signed-off-by: Georgios Pinitas <georgios.pinitas@arm.com>
Change-Id: I75f3f837012abab79c7dde9a20a34f64f75571d8
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4800
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>