aboutsummaryrefslogtreecommitdiff
path: root/tests/validation/Helpers.cpp
diff options
context:
space:
mode:
authorMichalis Spyrou <michalis.spyrou@arm.com>2020-04-08 14:10:15 +0100
committerMichalis Spyrou <michalis.spyrou@arm.com>2020-04-17 14:20:01 +0000
commitd1d7722cfc5ee130115d8d195068a98b16102a21 (patch)
treef68f3ecca02ab4edde90189266fa186ec1a69474 /tests/validation/Helpers.cpp
parent4c6bd514a8d424a29b776754f1b3426fa3a8c339 (diff)
downloadComputeLibrary-d1d7722cfc5ee130115d8d195068a98b16102a21.tar.gz
COMPMID-3314: Enable OpenMP in the reference tests
Change-Id: I05b5fedb998317144e0dd13a6377a97207b27f46 Signed-off-by: Michalis Spyrou <michalis.spyrou@arm.com> Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/3024 Tested-by: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'tests/validation/Helpers.cpp')
-rw-r--r--tests/validation/Helpers.cpp31
1 files changed, 30 insertions, 1 deletions
diff --git a/tests/validation/Helpers.cpp b/tests/validation/Helpers.cpp
index 093271244e..6e93cd0638 100644
--- a/tests/validation/Helpers.cpp
+++ b/tests/validation/Helpers.cpp
@@ -113,7 +113,9 @@ SimpleTensor<float> convert_from_asymmetric(const SimpleTensor<uint8_t> &src)
{
const UniformQuantizationInfo &quantization_info = src.quantization_info().uniform();
SimpleTensor<float> dst{ src.shape(), DataType::F32, 1, QuantizationInfo(), src.data_layout() };
-
+#if defined(_OPENMP)
+ #pragma omp parallel for
+#endif /* _OPENMP */
for(int i = 0; i < src.num_elements(); ++i)
{
dst[i] = dequantize_qasymm8(src[i], quantization_info);
@@ -127,6 +129,9 @@ SimpleTensor<float> convert_from_asymmetric(const SimpleTensor<int8_t> &src)
const UniformQuantizationInfo &quantization_info = src.quantization_info().uniform();
SimpleTensor<float> dst{ src.shape(), DataType::F32, 1, QuantizationInfo(), src.data_layout() };
+#if defined(_OPENMP)
+ #pragma omp parallel for
+#endif /* _OPENMP */
for(int i = 0; i < src.num_elements(); ++i)
{
dst[i] = dequantize_qasymm8_signed(src[i], quantization_info);
@@ -140,6 +145,9 @@ SimpleTensor<float> convert_from_asymmetric(const SimpleTensor<uint16_t> &src)
const UniformQuantizationInfo &quantization_info = src.quantization_info().uniform();
SimpleTensor<float> dst{ src.shape(), DataType::F32, 1, QuantizationInfo(), src.data_layout() };
+#if defined(_OPENMP)
+ #pragma omp parallel for
+#endif /* _OPENMP */
for(int i = 0; i < src.num_elements(); ++i)
{
dst[i] = dequantize_qasymm16(src[i], quantization_info);
@@ -153,6 +161,9 @@ SimpleTensor<uint8_t> convert_to_asymmetric(const SimpleTensor<float> &src, cons
SimpleTensor<uint8_t> dst{ src.shape(), DataType::QASYMM8, 1, quantization_info };
const UniformQuantizationInfo &qinfo = quantization_info.uniform();
+#if defined(_OPENMP)
+ #pragma omp parallel for
+#endif /* _OPENMP */
for(int i = 0; i < src.num_elements(); ++i)
{
dst[i] = quantize_qasymm8(src[i], qinfo);
@@ -166,6 +177,9 @@ SimpleTensor<int8_t> convert_to_asymmetric(const SimpleTensor<float> &src, const
SimpleTensor<int8_t> dst{ src.shape(), DataType::QASYMM8_SIGNED, 1, quantization_info };
const UniformQuantizationInfo &qinfo = quantization_info.uniform();
+#if defined(_OPENMP)
+ #pragma omp parallel for
+#endif /* _OPENMP */
for(int i = 0; i < src.num_elements(); ++i)
{
dst[i] = quantize_qasymm8_signed(src[i], qinfo);
@@ -179,6 +193,9 @@ SimpleTensor<uint16_t> convert_to_asymmetric(const SimpleTensor<float> &src, con
SimpleTensor<uint16_t> dst{ src.shape(), DataType::QASYMM16, 1, quantization_info };
const UniformQuantizationInfo &qinfo = quantization_info.uniform();
+#if defined(_OPENMP)
+ #pragma omp parallel for
+#endif /* _OPENMP */
for(int i = 0; i < src.num_elements(); ++i)
{
dst[i] = quantize_qasymm16(src[i], qinfo);
@@ -192,6 +209,9 @@ SimpleTensor<int16_t> convert_to_symmetric(const SimpleTensor<float> &src, const
SimpleTensor<int16_t> dst{ src.shape(), DataType::QSYMM16, 1, quantization_info };
const UniformQuantizationInfo &qinfo = quantization_info.uniform();
+#if defined(_OPENMP)
+ #pragma omp parallel for
+#endif /* _OPENMP */
for(int i = 0; i < src.num_elements(); ++i)
{
dst[i] = quantize_qsymm16(src[i], qinfo);
@@ -205,6 +225,9 @@ SimpleTensor<float> convert_from_symmetric(const SimpleTensor<int16_t> &src)
const UniformQuantizationInfo &quantization_info = src.quantization_info().uniform();
SimpleTensor<float> dst{ src.shape(), DataType::F32, 1, QuantizationInfo(), src.data_layout() };
+#if defined(_OPENMP)
+ #pragma omp parallel for
+#endif /* _OPENMP */
for(int i = 0; i < src.num_elements(); ++i)
{
dst[i] = dequantize_qsymm16(src[i], quantization_info);
@@ -223,6 +246,9 @@ void matrix_multiply(const SimpleTensor<T> &a, const SimpleTensor<T> &b, SimpleT
const int N = b.shape()[0]; // Cols
const int K = b.shape()[1];
+#if defined(_OPENMP)
+ #pragma omp parallel for collapse(2)
+#endif /* _OPENMP */
for(int y = 0; y < M; ++y)
{
for(int x = 0; x < N; ++x)
@@ -246,6 +272,9 @@ void transpose_matrix(const SimpleTensor<T> &in, SimpleTensor<T> &out)
const int width = in.shape()[0];
const int height = in.shape()[1];
+#if defined(_OPENMP)
+ #pragma omp parallel for collapse(2)
+#endif /* _OPENMP */
for(int y = 0; y < height; ++y)
{
for(int x = 0; x < width; ++x)