aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin May <kevin.may@arm.com>2019-05-22 12:02:53 +0100
committerKevin May <kevin.may@arm.com>2019-05-23 16:22:21 +0100
commitedc5ffa62ab7c552539956eba8bb1d56fb48057c (patch)
tree553ae127123aa59ebc2823db91e6b7639edee6fa
parentc6494ccc24d5db72e1a6afc0f71c18b5016027e8 (diff)
downloadandroid-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.cpp6
-rw-r--r--test/1.1/Transpose.cpp6
-rw-r--r--test/Convolution2D.hpp38
-rw-r--r--test/Lstm.cpp7
-rw-r--r--test/Merger.cpp6
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,