diff options
author | Sadik Armagan <sadik.armagan@arm.com> | 2020-03-24 09:54:36 +0000 |
---|---|---|
committer | Sadik Armagan <sadik.armagan@arm.com> | 2020-03-24 14:28:53 +0000 |
commit | ac47210621a601a2b6ded78e003d136626434f50 (patch) | |
tree | 7bb4940dd25ac2dac85c97227b82d567bd2a4d87 /src/backends/reference | |
parent | 957b844f130066f00c8adbafae36cec2ab3e9548 (diff) | |
download | armnn-ac47210621a601a2b6ded78e003d136626434f50.tar.gz |
IVGCVSW-3813 Add Unary Elementwise Operation 'NEG' support to the android-nn-driver
* Implemented ClNegWorkload
* Implemented NeonNegWorkload
* Enabled 'NEG' operator on CL and Neon as well as Ref
* Implemented unit tests for 'NEG' operator
Signed-off-by: Sadik Armagan <sadik.armagan@arm.com>
Change-Id: I3d7a892692716636cae6bdf8ddd238e3d1ea064f
Diffstat (limited to 'src/backends/reference')
-rw-r--r-- | src/backends/reference/RefLayerSupport.cpp | 5 | ||||
-rw-r--r-- | src/backends/reference/test/RefLayerTests.cpp | 12 |
2 files changed, 15 insertions, 2 deletions
diff --git a/src/backends/reference/RefLayerSupport.cpp b/src/backends/reference/RefLayerSupport.cpp index 7d3600cf09..551a7b5867 100644 --- a/src/backends/reference/RefLayerSupport.cpp +++ b/src/backends/reference/RefLayerSupport.cpp @@ -774,13 +774,14 @@ bool RefLayerSupport::IsElementwiseUnarySupported(const TensorInfo& input, { IgnoreUnused(descriptor); - std::array<DataType, 5> supportedTypes = + std::array<DataType, 6> supportedTypes = { DataType::BFloat16, DataType::Float32, DataType::Float16, DataType::QAsymmU8, - DataType::QSymmS16 + DataType::QSymmS16, + DataType::Signed32 }; bool supported = true; diff --git a/src/backends/reference/test/RefLayerTests.cpp b/src/backends/reference/test/RefLayerTests.cpp index f5c1c65c88..13b3ecfd4e 100644 --- a/src/backends/reference/test/RefLayerTests.cpp +++ b/src/backends/reference/test/RefLayerTests.cpp @@ -1737,4 +1737,16 @@ ARMNN_AUTO_TEST_CASE(StackOutput3DInputs3, StackOutput3DInputs3Float32Test) ARMNN_AUTO_TEST_CASE(StackOutput5D, StackOutput5DFloat32Test) ARMNN_AUTO_TEST_CASE(StackFloat16, StackFloat16Test) +// Neg +ARMNN_AUTO_TEST_CASE(Neg2d, Neg2dTest<DataType::Float32>) +ARMNN_AUTO_TEST_CASE(Neg3d, Neg3dTest<DataType::Float32>) +ARMNN_AUTO_TEST_CASE(NegZero, NegZeroTest<DataType::Float32>) +ARMNN_AUTO_TEST_CASE(NegNegative, NegNegativeTest<DataType::Float32>) +ARMNN_AUTO_TEST_CASE(Neg2dFloat16, Neg2dTest<DataType::Float16>) +ARMNN_AUTO_TEST_CASE(Neg3dFloat16, Neg3dTest<DataType::Float16>) +ARMNN_AUTO_TEST_CASE(Neg2dQuantisedAsymm8, Neg2dTest<DataType::QAsymmU8>) +ARMNN_AUTO_TEST_CASE(Neg3dQuantisedAsymm8, Neg3dTest<DataType::QAsymmU8>) +ARMNN_AUTO_TEST_CASE(Neg2dQuantisedSymm16, Neg2dTest<DataType::QSymmS16>) +ARMNN_AUTO_TEST_CASE(Neg3dQuantisedSymm16, Neg3dTest<DataType::QSymmS16>) + BOOST_AUTO_TEST_SUITE_END() |