aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichalis Spyrou <michalis.spyrou@arm.com>2018-01-15 11:15:26 +0000
committerAnthony Barbier <anthony.barbier@arm.com>2018-11-02 16:43:13 +0000
commit84f3ae89369ab896576ea17112956b42bc60d203 (patch)
treed62115563b18cb1c634910e5c836ed2fecedbd36
parent86fb1e74dc4c696dbab0efc45e9449129182e040 (diff)
downloadComputeLibrary-84f3ae89369ab896576ea17112956b42bc60d203.tar.gz
COMPMID-830 Fix hang in arm_compute_benchmark NEON
Problem seems to happen when calling clfinish inside the CLScheduler destructor. Removed destructor and now calling sync() in benchmarks main.cpp. Change-Id: Ibb36a0d19aa03349d291407a1fb8266dce3ec75b Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/116288 Reviewed-by: Pablo Tello <pablo.tello@arm.com> Tested-by: Jenkins <bsgcomp@arm.com>
-rw-r--r--arm_compute/runtime/CL/CLScheduler.h4
-rw-r--r--src/runtime/CL/CLScheduler.cpp7
-rw-r--r--tests/main.cpp6
3 files changed, 7 insertions, 10 deletions
diff --git a/arm_compute/runtime/CL/CLScheduler.h b/arm_compute/runtime/CL/CLScheduler.h
index c76ee3f273..89c3bc1553 100644
--- a/arm_compute/runtime/CL/CLScheduler.h
+++ b/arm_compute/runtime/CL/CLScheduler.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016, 2018 ARM Limited.
+ * Copyright (c) 2016-2018 ARM Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -52,8 +52,6 @@ class CLScheduler
private:
/** Constructor */
CLScheduler();
- /** Destructor */
- ~CLScheduler();
/** Prevent instances of this class from being copied (As this class contains pointers) */
CLScheduler(const CLScheduler &) = delete;
/** Prevent instances of this class from being copied (As this class contains pointers) */
diff --git a/src/runtime/CL/CLScheduler.cpp b/src/runtime/CL/CLScheduler.cpp
index c947b7acc4..65292fe837 100644
--- a/src/runtime/CL/CLScheduler.cpp
+++ b/src/runtime/CL/CLScheduler.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016, 2018 ARM Limited.
+ * Copyright (c) 2016-2018 ARM Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -35,11 +35,6 @@ CLScheduler::CLScheduler()
{
}
-CLScheduler::~CLScheduler()
-{
- _queue.finish();
-}
-
CLScheduler &CLScheduler::get()
{
std::call_once(_initialize_symbols, opencl_is_available);
diff --git a/tests/main.cpp b/tests/main.cpp
index 2fb0dd2512..1f3c365c03 100644
--- a/tests/main.cpp
+++ b/tests/main.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017, 2018 ARM Limited.
+ * Copyright (c) 2017-2018 ARM Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -191,6 +191,10 @@ int main(int argc, char **argv)
}
}
+#ifdef ARM_COMPUTE_CL
+ CLScheduler::get().sync();
+#endif /* ARM_COMPUTE_CL */
+
return (success ? 0 : 1);
}
catch(const std::exception &error)