diff options
Diffstat (limited to 'src/backends/cl/workloads/ClWorkloadUtils.hpp')
-rw-r--r-- | src/backends/cl/workloads/ClWorkloadUtils.hpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/backends/cl/workloads/ClWorkloadUtils.hpp b/src/backends/cl/workloads/ClWorkloadUtils.hpp index c765c63dce..ca0de8dd0a 100644 --- a/src/backends/cl/workloads/ClWorkloadUtils.hpp +++ b/src/backends/cl/workloads/ClWorkloadUtils.hpp @@ -10,6 +10,10 @@ #include <backends/cl/OpenClTimer.hpp> #include <backends/CpuTensorHandle.hpp> +#include <arm_compute/runtime/CL/CLFunctions.h> + +#include <sstream> + #define ARMNN_SCOPED_PROFILING_EVENT_CL(name) \ ARMNN_SCOPED_PROFILING_EVENT_WITH_INSTRUMENTS(armnn::Compute::GpuAcc, \ name, \ @@ -60,4 +64,24 @@ inline void InitializeArmComputeClTensorData(arm_compute::CLTensor& clTensor, } }; +inline RuntimeException WrapClError(const cl::Error& clError, const CheckLocation& location) +{ + std::stringstream message; + message << "CL error: " << clError.what() << ". Error code: " << clError.err(); + + return RuntimeException(message.str(), location); +} + +inline void RunClFunction(arm_compute::IFunction& function, const CheckLocation& location) +{ + try + { + function.run(); + } + catch (cl::Error& error) + { + throw WrapClError(error, location); + } +} + } //namespace armnn |