diff options
author | Kevin May <kevin.may@arm.com> | 2019-05-22 12:02:53 +0100 |
---|---|---|
committer | Kevin May <kevin.may@arm.com> | 2019-05-23 16:22:21 +0100 |
commit | edc5ffa62ab7c552539956eba8bb1d56fb48057c (patch) | |
tree | 553ae127123aa59ebc2823db91e6b7639edee6fa | |
parent | c6494ccc24d5db72e1a6afc0f71c18b5016027e8 (diff) | |
download | android-nn-driver-edc5ffa62ab7c552539956eba8bb1d56fb48057c.tar.gz |
IVGCVSW-3116 Fix failing NN Driver Tests on Android Q
* Refactor Convolution2d Unit test for fp16Enabled
* Disable GpuAcc for Unit tests in Android Q
Signed-off-by: Kevin May <kevin.may@arm.com>
Change-Id: I9613eb325841bdf7d25abf51259fe2f5d973c929
-rw-r--r-- | test/1.1/Mean.cpp | 6 | ||||
-rw-r--r-- | test/1.1/Transpose.cpp | 6 | ||||
-rw-r--r-- | test/Convolution2D.hpp | 38 | ||||
-rw-r--r-- | test/Lstm.cpp | 7 | ||||
-rw-r--r-- | test/Merger.cpp | 6 |
5 files changed, 39 insertions, 24 deletions
diff --git a/test/1.1/Mean.cpp b/test/1.1/Mean.cpp index 7d482433..cf9ddcb2 100644 --- a/test/1.1/Mean.cpp +++ b/test/1.1/Mean.cpp @@ -18,7 +18,11 @@ using namespace armnn_driver; namespace { -static const boost::array<armnn::Compute, 2> COMPUTE_DEVICES = {{ armnn::Compute::CpuRef, armnn::Compute::GpuAcc }}; +#ifndef ARMCOMPUTECL_ENABLED + static const boost::array<armnn::Compute, 1> COMPUTE_DEVICES = {{ armnn::Compute::CpuRef }}; +#else + static const boost::array<armnn::Compute, 2> COMPUTE_DEVICES = {{ armnn::Compute::CpuRef, armnn::Compute::GpuAcc }}; +#endif void MeanTestImpl(const TestTensor& input, const hidl_vec<uint32_t>& axisDimensions, diff --git a/test/1.1/Transpose.cpp b/test/1.1/Transpose.cpp index 6dc3e0ee..e32a25fe 100644 --- a/test/1.1/Transpose.cpp +++ b/test/1.1/Transpose.cpp @@ -21,7 +21,11 @@ using namespace armnn_driver; namespace { -static const boost::array<armnn::Compute, 2> COMPUTE_DEVICES = {{ armnn::Compute::CpuRef, armnn::Compute::GpuAcc }}; +#ifndef ARMCOMPUTECL_ENABLED + static const boost::array<armnn::Compute, 1> COMPUTE_DEVICES = {{ armnn::Compute::CpuRef }}; +#else + static const boost::array<armnn::Compute, 2> COMPUTE_DEVICES = {{ armnn::Compute::CpuRef, armnn::Compute::GpuAcc }}; +#endif void TransposeTestImpl(const TestTensor & inputs, int32_t perm[], const TestTensor & expectedOutputTensor, armnn::Compute computeDevice) diff --git a/test/Convolution2D.hpp b/test/Convolution2D.hpp index 3fda29bc..c8d573d7 100644 --- a/test/Convolution2D.hpp +++ b/test/Convolution2D.hpp @@ -20,6 +20,15 @@ using namespace armnn_driver; namespace driverTestHelpers { +#define ARMNN_ANDROID_FP16_TEST(result, fp16Expectation, fp32Expectation, fp16Enabled) \ + if (fp16Enabled) \ + { \ + BOOST_TEST((result == fp16Expectation || result == fp32Expectation), result << \ + " does not match either " << fp16Expectation << "[fp16] or " << fp32Expectation << "[fp32]"); \ + } else \ + { \ + BOOST_TEST(result == fp32Expectation); \ + } void SetModelFp16Flag(V1_0::Model& model, bool fp16Enabled); @@ -33,7 +42,13 @@ void PaddingTestImpl(android::nn::PaddingScheme paddingScheme, bool fp16Enabled using HalModel = typename HalPolicy::Model; using HalOperationType = typename HalPolicy::OperationType; - auto driver = std::make_unique<ArmnnDriver>(DriverOptions(armnn::Compute::GpuAcc, fp16Enabled)); + armnn::Compute computeDevice = armnn::Compute::GpuAcc; + +#ifndef ARMCOMPUTECL_ENABLED + computeDevice = armnn::Compute::CpuRef; +#endif + + auto driver = std::make_unique<ArmnnDriver>(DriverOptions(computeDevice, fp16Enabled)); HalModel model = {}; uint32_t outSize = paddingScheme == android::nn::kPaddingSame ? 2 : 1; @@ -97,26 +112,11 @@ void PaddingTestImpl(android::nn::PaddingScheme paddingScheme, bool fp16Enabled switch (paddingScheme) { case android::nn::kPaddingValid: - if (fp16Enabled) - { - BOOST_TEST(outdata[0] == 1022.f); - } - else - { - BOOST_TEST(outdata[0] == 1022.25f); - } + ARMNN_ANDROID_FP16_TEST(outdata[0], 1022.f, 1022.25f, fp16Enabled) break; case android::nn::kPaddingSame: - if (fp16Enabled) - { - BOOST_TEST(outdata[0] == 1022.f); - BOOST_TEST(outdata[1] == 0.f); - } - else - { - BOOST_TEST(outdata[0] == 1022.25f); - BOOST_TEST(outdata[1] == 0.f); - } + ARMNN_ANDROID_FP16_TEST(outdata[0], 1022.f, 1022.25f, fp16Enabled) + BOOST_TEST(outdata[1] == 0.f); break; default: BOOST_TEST(false); diff --git a/test/Lstm.cpp b/test/Lstm.cpp index b1b7c9d5..56812326 100644 --- a/test/Lstm.cpp +++ b/test/Lstm.cpp @@ -1491,8 +1491,11 @@ void LstmCifgPeepholeNoProjectionBatch2(armnn::Compute compute) outputDimensions, outputValue, compute); } - -static const boost::array<armnn::Compute, 2> COMPUTE_DEVICES = {{ armnn::Compute::CpuRef, armnn::Compute::GpuAcc }}; +#ifndef ARMCOMPUTECL_ENABLED + static const boost::array<armnn::Compute, 1> COMPUTE_DEVICES = {{ armnn::Compute::CpuRef }}; +#else + static const boost::array<armnn::Compute, 2> COMPUTE_DEVICES = {{ armnn::Compute::CpuRef, armnn::Compute::GpuAcc }}; +#endif BOOST_DATA_TEST_CASE(LstmNoCifgNoPeepholeNoProjectionTest, COMPUTE_DEVICES) { diff --git a/test/Merger.cpp b/test/Merger.cpp index 16ac451c..9b3d847a 100644 --- a/test/Merger.cpp +++ b/test/Merger.cpp @@ -19,7 +19,11 @@ using namespace armnn_driver; namespace { -static const boost::array<armnn::Compute, 2> COMPUTE_DEVICES = {{ armnn::Compute::CpuRef, armnn::Compute::GpuAcc }}; +#ifndef ARMCOMPUTECL_ENABLED + static const boost::array<armnn::Compute, 1> COMPUTE_DEVICES = {{ armnn::Compute::CpuRef }}; +#else + static const boost::array<armnn::Compute, 2> COMPUTE_DEVICES = {{ armnn::Compute::CpuRef, armnn::Compute::GpuAcc }}; +#endif void MergerTestImpl(const std::vector<const TestTensor*> & inputs, |