aboutsummaryrefslogtreecommitdiff
path: root/ConversionUtils.hpp
AgeCommit message (Collapse)Author
2023-07-31IVGCVSW-7787 Fix READ memory access caused by missing printf argumentsKevin May
Signed-off-by: Kevin May <kevin.may@arm.com> Change-Id: Ibea856e1420ad3ff14aef2cdb3d8ee918fb1bcf1
2023-03-14IVGCVSW-3809 Refactor Elementwise Binary ops to use ElementwiseBinaryLayerTeresa Charlin
!armnn:9319 * Refactored all functions to convert Add, Div, Maximum, Minimum, Mul and Sub to use ElementwiseBinary layers instead. Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com> Signed-off-by: Mike Kelly <mike.kelly@arm.com> Change-Id: Ic05885cd8692e7f1b7032862fb4a395af70e0bcd Signed-off-by: Mike Kelly <mike.kelly@arm.com> Change-Id: If9717d6ab236d97c76f6cd39b96bde86c81e4382
2022-12-13Optimize the calling of IsLayerSupported().Cathal Corbett
!armnn:8742 * Done as part of 22.11/23.02 innovation days. * IsLayerSupported() is called in model prepare (delegate, android-nn-driver and shim/support_library) and again in ArmNN once model optimization is performed. * From calling IsLayerSupported() the first time, we should know that the layers are supported and what backend they are supported on. * Solution is to set the BackendId of the IConnectableLayer when IsLayerSupported() is called the first time, * In the Optimize() function we then check if the backend is set. If so, we do not call IsLayerSupported() again. * In the case a layer that is supported gets optimized, then the BackendId of that layer get set to "Unknown" for the new optimized layer and IsLayerSupported() will get called on the newly optimized layer. Signed-off-by: Cathal Corbett <cathal.corbett@arm.com> Change-Id: Ie5c6c9cd10d81f90b1ee78dd6e3442f353b6c109
2022-05-16IVGCVSW-6124 ConstTensorsAsInput: Convolution2dKeith Davis
* Add support for Android-nn-driver !armnn:7382 Signed-off-by: Keith Davis <keith.davis@arm.com> Signed-off-by: Kevin May <kevin.may@arm.com> Change-Id: I7ace53cf1c8954c1f2d5588387616d7179ef3bf7
2022-05-05IVGCVSW-6127 ConstTensorsAsInput: DepthwiseConvolution2dCathal Corbett
!armnn:7417 Signed-off-by: Cathal Corbett <cathal.corbett@arm.com> Change-Id: Ic37d6b8677e040c60a90358dd0a4a8eb33fb6ea0
2022-03-31IVGCVSW-6732 Tests surrounded in '#if defined(ARMNNREF_ENABLED)' in ↵Cathal Corbett
android-nn-driver do not execute. * Change to ConvertionUtils.hpp fix ConcatTests_GpuAcc tests. !armnn:7300 Signed-off-by: Cathal Corbett <cathal.corbett@arm.com> Change-Id: I1543b57c6d1f9660916ca530b421c87e54b13f72
2021-11-04IVGCVSW-6430 Clear up coverity issuesMike Kelly
* Removed unreachable code * break after if else where both branches return * Removed unused operations * Result of dstPtr++ is unused * Fixed possible overflow * Axis dimensionSequence assignment can result in overflow where rank is not 4 * Removed use of old-style casts * Fixed spelling mistakes in error messages Signed-off-by: Mike Kelly <mike.kelly@arm.com> Change-Id: If2a7ab63fc1d200cb18b494d99a67bbddb42f0f8
2021-10-14IVGCVSW-6428 Remove assertsMike Kelly
* Changed asserts to check for errors and return appropriate values or throw exceptions * Changed unit tests to use Doctest's long macro names as the short macro names clashed with Android's Logging macros * Removed unused #includes * Clarified ambiguous #includes Signed-off-by: Mike Kelly <mike.kelly@arm.com> Change-Id: Ice92a37590df727fd581d3be5ff2716665f26a13
2021-08-10BugFix: Fix skipping VTS tests.Matthew Sloyan
* Some tests on GpuAcc and CpuAcc P & Q were skipping because IsConstant flag wasn't set on TensorInfo passed to validation function. Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com> Change-Id: Idd977bf621b71bb9625d8fc6620c29915de4b431
2021-07-27IVGCVSW-6158 ConstTensorsAsInput: FullyConnected - ToolsMatthew Sloyan
* Constant weights and biases are now stored as Constant layers. !armnn:5942 Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com> Change-Id: I867a696eb684df2d0d5f7db8dd9c38933445f388
2021-06-12IVGCVSW-5826 Change weights layout for depthwise to [1,H,W,I*M]Jan Eilers
!armnn:5552 Signed-off-by: Jan Eilers <jan.eilers@arm.com> Change-Id: I5bbc998f1a29030f718d85b646907c5a314ceecf
2021-05-05IVGCVSW-5410 Move ILayerSupport.hpp to backends folderFrancis Murtagh
Signed-off-by: Francis Murtagh <francis.murtagh@arm.com> Change-Id: I59359d4ffaf55963442ebb0231e1ee4a77616c28
2021-04-19IVGCVSW-5826 Remove cross-wireing in depthwiseJan Eilers
* The permutation of the tensor info is now completely handled in the armnnUtils::Permuted function. That includes quantization informations too !armnn:5411 Signed-off-by: Jan Eilers <jan.eilers@arm.com> Change-Id: I40410141303d950be7888f9e491133251b6f69d8
2021-03-30IVGCVSW-5766 Avoiding driver abort when Cts tests use invalid filter shape.Colm Donelan
* A number of DepthwiseConv2d Cts tests pass a filter operand with a dimension[0] value greater than 1 in contravention of Android documentation. Adding a check to handle this gracefully. * Changing a hard assert in ConversionUtils::ConstTensorPin to a warning. Signed-off-by: Colm Donelan <Colm.Donelan@arm.com> Change-Id: I605340d098b717d1d88d259a0ed89a801287764d
2021-03-18IVGCVSW-5742 'NonConstWeights: Update FullyConnected in android-nn-driver'Sadik Armagan
* Enabled weights and bias as inputs in FULLY_CONNECTED operator. !armnn:5180 Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: Id325a8bf5be5a772191d27ae89485e992f0c48fa
2021-02-15IVGCVSW-5665 Basic NN Driver support for next OS VersionSadik Armagan
Signed-off-by: Kevin May <kevin.may@arm.com> Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: I1e1db52322092c6b1b7ac6183c3adc90aabcec24
2021-01-28IVGCVSW-4874 Provide LayerSupportHandle to frontend usersFrancis Murtagh
* Update to use dot operator for IsXXXLayerSupported() * Call LayerSupportHandle member funciton to check is Backend Registered Signed-off-by: Francis Murtagh <francis.murtagh@arm.com> Change-Id: If0b9876068db8957a8bdb690ad323cd8dce544a4 !armnn:4924
2020-10-29IVGCVSW-5267 Remove boost from core android-nn-driverJames Ward
* WIP !armnn:4231 !armnn:4287 Signed-off-by: James Ward <james.ward@arm.com> Change-Id: I7844efc84fac018d8aad1f72dd236ede3fd8e7f2
2020-10-23IVGCVSW-5353 - Fix skipped concat VTS testsDavid Monahan
* Added 3D permutation vector to prevent mismatch between mappings and numDimensions in dynamic concats Signed-off-by: David Monahan <david.monahan@arm.com> Change-Id: Ia580deaa8a4f6245c7e4d319d5d0ed837c7dc02a
2020-10-02IVGCVSW-5356 Fix skipping VTS DynamicOutputShape FullyConnectedFinn Williams
Signed-off-by: Finn Williams <Finn.Williams@arm.com> Change-Id: I011466158b6736670bafba474e8c9ce12c38e229
2020-09-14IVGCVSW-5304 Remove boost::numeric_cast from Android-nn-driverMatthew Sloyan
* Replaced with armnn/utility/NumericCast.hpp Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com> Change-Id: I6253261508e49ddeaa5ba3f3893a059486637467
2020-09-11IVGCVSW-5245 Support Fused Activations for Dynamic TensorsKevin May
* Move ProcessActivation from Convert<LayerName> to SetupAndTrackLayerOutputSlot by passing optional ActivationFn * Connect Activation after IsTensorInfoSet() is called Signed-off-by: Kevin May <kevin.may@arm.com> Change-Id: I472bcb65b12ae6e934bd1e9af8a6f6aceb311c0e
2020-09-08IVGCVSW-5270 Update ConvertConcatenation function to use ShapeInferenceMethodKeith Davis
Signed-off-by: Keith Davis <keith.davis@arm.com> Change-Id: I13e16d271ba55217b98a439aa82931f809fdeeb8
2020-09-03IVGCVSW-5272 'Update ConvertLstm function to use ShapeInferenceMethod'Sadik Armagan
* Enabled Dynamic Tensors on LSTM operator Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: I9cae539559570a44088a986870d3d3e41aee9468
2020-09-02IVGCVSW-5276 'Update ConvertSqueeze function to use ShapeInferenceMethod'Sadik Armagan
* Enabled dynamic type tensors on Squeeze operator in nn-driver. Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: I2092cf6087da2821a07bd4743c4676d5afb35e66
2020-08-20IVGCVSW-5220 Set all operations to unsupported after encountering an ↵Finn Williams
unsupported operation with with dynamic inputs Change-Id: Ia30698d608810dabb419d7d326ad985789d50603 Signed-off-by: Finn Williams <Finn.Williams@Arm.com>
2020-08-20IVGCVSW-5224 Fix for UnknownDimensionsTest in CpuRef and GpuAccKevin May
* Correctly handle HalOperandLifeTime::NO_VALUE in ConvertTranspose Signed-off-by: Kevin May <kevin.may@arm.com> Change-Id: I36790a90b5a3eac3da9e4edafc96387bb4375db9
2020-08-19IVGCVSW-5220 Fix UnknownCombinationsTest/UnknownDimensionsTestFinn Williams
Signed-off-by: Finn Williams <Finn.Williams@Arm.com> Change-Id: I4729497e67b711a8f1fbf7c555a26e97fa6c9ab6
2020-08-14IVGCVSW-5182 Update Convert functions to use ShapeInferenceMethod. 1/2.Teresa Charlin
* ConvertToActivation * ConvertAdd * ConvertArgMinMax * ConvertConv2d * ConvertDepthToSpace * ConvertDepthwiseConv2d * ConvertDiv * ConvertFloor * ConvertFullyConnected * ConvertL2Normalization * ConvertLocalResponseNormalization * ConvertMean * ConvertMul * ConvertPad * ConvertReshape * ConvertSub * ConvertStridedSlice * ConvertTranspose * ConvertBatchToSpaceNd * ConvertSpaceToBatchNd * ConvertComparison_1_2 * ConvertConv2d_1_2 * ConvertDepthwiseConv2d_1_2 * ConvertElementwiseUnary * ConvertExpandDims * ConvertGather * ConvertGroupedConv2d * ConvertInstanceNormalization * ConvertLogSoftmax * ConvertMaximum * ConvertMinimum * ConvertPadV2 * ConvertPrelu * ConvertQuantize * ConvertResize * ConvertSpaceToDepth * ConvertSoftmax * ConvertTransposeConv2d Signed-off-by: Finn Williams <Finn.Williams@Arm.com> Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com> Signed-off-by: Kevin May <kevin.may@arm.com> Change-Id: Idacf16e5eab56d83fce293570bbc89381ae056dc
2020-08-12IVGCVSW-4931 Update NN Driver to support dynamic tensorsFinn Williams
* Change NN Driver m_Network to now have ShapeInferenceMethod::InferAndValidate * Implement dynamic tensor support for: - ArgMinMax layer - Pooling2d layer - Activation layer * Skip dynamic tensor tests for any HAL other than 1.3 Change-Id: Icf66c968e49cdd4822b8c79c5f18b3f9e97dc53f Signed-off-by: Finn Williams <Finn.Williams@Arm.com> Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com>
2020-07-06Add support for Rank and scalar tensorsFinn Williams
!armnn:3330 Signed-off-by: Finn Williams <Finn.Williams@Arm.com> Change-Id: Icc429d9fabb570193d12bffef0e00dda7b51032f
2020-07-03IVGCVSW-4920 Invalid Negative Stride fixRyan OShea
* Added check for negative stride with ShrinkAxisMask Signed-off-by: Ryan OShea <Ryan.OShea2@arm.com> Change-Id: I8ba0a5e84cdc5d3367b683efb620f078b6cc4147
2020-05-19IVGCVSW-4453 Add Support for ANEURALNETWORKS_QLSTM to HAL 1.3 DriverSadik Armagan
* Add QLSTM support for Android NN Driver * Add overrideOutputInfo parameter to SetupAndTrackLayerOutputSlot * Add optional condition to GetInputScalar * Refactor Quantized 16 Bit LSTM impl Change-Id: Ie8fa98ad5ee4a62174ef91ca80f1df62b7fde937 Signed-off-by: Keith Davis <keith.davis@arm.com> Signed-off-by: Sadik Armagan <sadik.armagan@arm.com>
2020-05-14IVGCVSW-4531 StridedSlice Failures on HAL DriversSadik Armagan
* Check if the output is large enough to hold the slice in the driver Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: Iaef16167e891a41186de030324bb45b8bbca4d80
2020-04-21IVGCVSW-4675 Fix VTS 1.3 GeneratedTest.Test/armnn_resize*David Monahan
* Added GetOptionalBool function * Added checks to Resize for unsupported operands AlignCorners and HalfPixelCenters !armnn:3062 Signed-off-by: David Monahan <david.monahan@arm.com> Change-Id: Ic0305014ed2638e3a3d1e7520972e3a2909e504b
2020-04-21IVGCVSW-4679 Fix VTS DeadlineTest failures 1.3 CpuAcc CpuRefSadik Armagan
* Optional timeline parameters are not supported yet. Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: Ic5d6cd6af0cd87d4acba102a48fc94ec8b406377
2020-04-07IVGCVSW-4378 Fix transpose outputInfo for skipped Concat VTS in CL and NeonTeresa Charlin
Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com> Change-Id: I7962be3a77cacf15dad594f0a907499c5b39bfeb
2020-04-07IVGCVSW-4485 Remove Boost assertNarumol Prangnawarat
Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Change-Id: If602024a339df7548333e470545f9400c3daf7b3
2020-03-31IVGCVSW-4407 HAL 1.3 Operators SupportSadik Armagan
* IVGCVSW-4441 Add Support for ANEURALNETWORKS_ELU * IVGCVSW-4443 Add Support for ANEURALNETWORKS_HARD_SWISH * IVGCVSW-4448 Add TENSOR_QUANT8_ASYMM_SIGNED data type support Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: Idb9bb3f463b956221711423c15b6557eeb1af7db
2020-03-26IVGCVSW-4447 Add Hal 1_3 SupportKevin May
* Add new 1.3 files HalPolicy, ArmnnDriver, ArmnnDriverImpl * Add new .rc file for 1.3 service * Add ArmnnPreparedModel_1_3 and implement new functions * Update Android.mk with 1.3 driver and service * Refactor ifdef to include ARMNN_ANDROID_NN_V1_3 * Create Utils getMainModel for new 1.3 Model Main Subgraph * Use android Utils to convertToV1_X in ArmnnPrepapredModel_1_3 * Refactor HAL 1.2 convert functions into ConversionUtils_1_2.hpp * Replace ArmnnBurstExecutorWithCache with call to ExecutionBurstServer Signed-off-by: Kevin May <kevin.may@arm.com> Change-Id: I514069e9e1b16bcd1c4abfb5d563d25ac22d02e3
2020-03-19IVGCVSW-4565 TENSOR_BOOL8 data type not supported in AndroidNN DriverSadik Armagan
* Added TENSOR_BOOL8 support * Added Broadcast support to comparision operators !armnn:2903 Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: I844e32b57399eff2dc60af9b2099145316c80cae
2020-03-11IVGCVSW-4482 Remove boost::ignore_unusedJan Eilers
* replaced boost::ignore_unused with armnn::IgnoreUnused Signed-off-by: Jan Eilers <jan.eilers@arm.com> Change-Id: I4443a3620ed7d51b151af67c070d4225e410b5fa
2020-03-03IVGCVSW-4473 Android R pre Hal 1_3 build changesKevin May
* Update ErrorStatus to V1_0::ErrorStatus * Update Request to V1_0::Request * Update OperandType to V1_2::OperandType * Add namespace android::nn::hal in ArmnnDriverImpl for R only * Add missing g_RelaxedFloat32toFloat16PerformancePowerUsageName * Add namespace V1_0 or V1_1 where necessary * Update Android.mk with R macro and android.hardware.neuralnetworks@1.3 * Remove androidnn.go * include IAllocator in DriverTestHelpers * Remove unused LOCAL_CFLAGS Signed-off-by: Kevin May <kevin.may@arm.com> Change-Id: I1787f1ed6784b3bbec017536d87d49197405e853 Signed-off-by: Kevin May <kevin.may@arm.com>
2020-02-28IVGCVSW-4375 Add driver support for TransposeMike Kelly
* Changed ConvertTranspose to use Transpose instead of Permute * Removed unused code related to permutation !armnn:2787 Signed-off-by: Mike Kelly <mike.kelly@arm.com> Change-Id: Ie59ca80203109bd6bb2abcdedc5ac53c2b2eb157
2020-02-20IVGCVSW-4375 Fixed driver crashesMike Kelly
* Fixed driver crashes caused by ignoring the result of GetTensorInt32Values. * Fixed driver crashes where padding, axis, permutation dimension or block size operands were inputs. Signed-off-by: Mike Kelly <mike.kelly@arm.com> Change-Id: I59867e9545a240e6be46b7f68da6adaa120a56d8
2020-01-28MLCE-153 Padding calculation for TransposeConv ignores strideMike Kelly
* Changed ConvertTransposeConv2d to use the unsigned values for strideX and strideY not the signed values from the descriptor. !ComputeLibrary:2599 !armnn:2612 Signed-off-by: Mike Kelly <mike.kelly@arm.com> Change-Id: Iee300041f3ed585820b7c7e2edd8ab541f339d59
2020-01-27IVGCVSW-4301 Correctly validate reshape for broadcastable inputsDerek Lamberti
!android-nn-driver:2642 Signed-off-by: Derek Lamberti <derek.lamberti@arm.com> Change-Id: I4db6ea4ed0a192c85f124c4a9ced60b1666a3870 Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com>
2020-01-24IVGCVSW-4262 Add Calls to IsReshapeSupported and IsPermuteSupportedKevin May
!armnn:2643 * Add calls before addition of these layers in ConvertConcatenation * Add outputInfo parameter wherever needed for IsReshapeSupported Signed-off-by: Kevin May <kevin.may@arm.com> Change-Id: Ic5d142ea046161960ff2fc137bd261ebb4e6ac0c
2020-01-24IVGCVSW-4260 Fix Transpose CpuRef VTS failuresJames Conroy
* Adds missing conversion for permutation vector from ANN/TF/Numpy format to ArmNN format. * Corrects legacy tests based on incorrect permutation vectors. Signed-off-by: James Conroy <james.conroy@arm.com> Change-Id: I767142378055e484d22f3ffba34580c528370cfe
2020-01-13IVGCVSW-3813 Add Unary Elementwise Operation support to the android-nn-driverjosh minor
* Account for deprecated Abs and Rsqrt layers in ArmNN * Update HAL 1.2 * Neg HAL operation support added !armnn:2542 Signed-off-by: josh minor <josh.minor@arm.com> Change-Id: I043bf64ac7ed3aea65560d72acf664e079917baf Signed-off-by: josh minor <josh.minor@arm.com>