aboutsummaryrefslogtreecommitdiff
path: root/src/gpu/cl/ClContext.cpp
diff options
context:
space:
mode:
authorGeorgios Pinitas <georgios.pinitas@arm.com>2021-03-18 10:59:40 +0000
committerGeorgios Pinitas <georgios.pinitas@arm.com>2021-04-28 17:05:40 +0000
commitc3c352e60050f3deacad767e429a88dc24b31af0 (patch)
treead30a0ba717a742caf5e4dcb9d89389cfdc134b0 /src/gpu/cl/ClContext.cpp
parente2535154fa34ac0290ec3daaa44545be0b2b4606 (diff)
downloadComputeLibrary-c3c352e60050f3deacad767e429a88dc24b31af0.tar.gz
Add Queue support
Queues are responsible for scheduling operators and performing other runtime related activities like for example tuning. Signed-off-by: Georgios Pinitas <georgios.pinitas@arm.com> Change-Id: I0366d9048470d277b8cbf59fa42f95c0ae57c5c9 Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5487 Tested-by: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com> Reviewed-by: Michalis Spyrou <michalis.spyrou@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'src/gpu/cl/ClContext.cpp')
-rw-r--r--src/gpu/cl/ClContext.cpp23
1 files changed, 20 insertions, 3 deletions
diff --git a/src/gpu/cl/ClContext.cpp b/src/gpu/cl/ClContext.cpp
index 2e04e1d593..d8ef18e62e 100644
--- a/src/gpu/cl/ClContext.cpp
+++ b/src/gpu/cl/ClContext.cpp
@@ -23,8 +23,11 @@
*/
#include "src/gpu/cl/ClContext.h"
+#include "src/gpu/cl/ClQueue.h"
#include "src/gpu/cl/ClTensor.h"
+#include "arm_compute/core/CL/CLKernelLibrary.h"
+
namespace arm_compute
{
namespace gpu
@@ -49,12 +52,15 @@ mlgo::MLGOHeuristics populate_mlgo(const char *filename)
ClContext::ClContext(const AclContextOptions *options)
: IContext(Target::GpuOcl),
_mlgo_heuristics(),
- _cl_context()
+ _cl_ctx(),
+ _cl_dev()
{
if(options != nullptr)
{
_mlgo_heuristics = populate_mlgo(options->kernel_config_file);
}
+ _cl_ctx = CLKernelLibrary::get().context();
+ _cl_dev = CLKernelLibrary::get().get_device();
}
const mlgo::MLGOHeuristics &ClContext::mlgo() const
@@ -64,14 +70,20 @@ const mlgo::MLGOHeuristics &ClContext::mlgo() const
::cl::Context ClContext::cl_ctx()
{
- return _cl_context;
+ return _cl_ctx;
+}
+
+::cl::Device ClContext::cl_dev()
+{
+ return _cl_dev;
}
bool ClContext::set_cl_ctx(::cl::Context ctx)
{
if(this->refcount() == 0)
{
- _cl_context = ctx;
+ _cl_ctx = ctx;
+ CLScheduler::get().set_context(ctx);
return true;
}
return false;
@@ -86,6 +98,11 @@ ITensorV2 *ClContext::create_tensor(const AclTensorDescriptor &desc, bool alloca
}
return tensor;
}
+
+IQueue *ClContext::create_queue(const AclQueueOptions *options)
+{
+ return new ClQueue(this, options);
+}
} // namespace opencl
} // namespace gpu
} // namespace arm_compute