From db8485ac24135f17e9882c76196924435abc064f Mon Sep 17 00:00:00 2001 From: Pablo Tello Date: Tue, 24 Sep 2019 11:03:47 +0100 Subject: COMPMID-2205: CL runtime context. CL Interfaces implemented. Concrete classes implemented. One test (ActivationLayer) ported to the new interface. Change-Id: I283808bec36ccfc2f13fe048c45cbbee698ce525 Signed-off-by: Pablo Tello Reviewed-on: https://review.mlplatform.org/c/1998 Tested-by: Arm Jenkins Reviewed-by: Georgios Pinitas Comments-Addressed: Arm Jenkins --- tests/main.cpp | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) (limited to 'tests/main.cpp') diff --git a/tests/main.cpp b/tests/main.cpp index 01741939a0..415dba0405 100644 --- a/tests/main.cpp +++ b/tests/main.cpp @@ -23,11 +23,11 @@ */ #include "support/ToolchainSupport.h" #include "tests/AssetsLibrary.h" -#include "tests/ParametersLibrary.h" #include "tests/framework/DatasetModes.h" #include "tests/framework/Exceptions.h" #include "tests/framework/Framework.h" #include "tests/framework/Macros.h" +#include "tests/framework/ParametersLibrary.h" #include "tests/framework/Profiler.h" #include "tests/framework/command_line/CommonOptions.h" #include "tests/framework/instruments/Instruments.h" @@ -74,8 +74,8 @@ namespace arm_compute { namespace test { -std::unique_ptr library; -std::unique_ptr parameters; +std::unique_ptr library; +extern std::unique_ptr parameters; } // namespace test } // namespace arm_compute @@ -92,17 +92,6 @@ bool file_exists(const std::string &filename) int main(int argc, char **argv) { -#ifdef ARM_COMPUTE_CL - CLTuner cl_tuner(false); - if(opencl_is_available()) - { - auto ctx_dev_err = create_opencl_context_and_device(); - ARM_COMPUTE_ERROR_ON_MSG(std::get<2>(ctx_dev_err) != CL_SUCCESS, "Failed to create OpenCL context"); - CLScheduler::get() - .default_init_with_context(std::get<1>(ctx_dev_err), std::get<0>(ctx_dev_err), &cl_tuner); - } -#endif /* ARM_COMPUTE_CL */ - #ifdef ARM_COMPUTE_GC GCScheduler::get().default_init(); #endif /* ARM_COMPUTE_GC */ @@ -185,6 +174,20 @@ int main(int argc, char **argv) parameters->set_cpu_ctx(std::move(cpu_ctx)); #ifdef ARM_COMPUTE_CL + CLTuner cl_tuner(false); + // Create GPU context + auto cl_ctx = support::cpp14::make_unique(); + assert(cl_ctx != nullptr); + CLScheduler *gpu_scheduler = cl_ctx->gpu_scheduler(); + assert(gpu_scheduler != nullptr); + const auto device_version = cl_ctx->kernel_library().get_device_version(); + { + // Legacy singletons API: This has been deprecated and the singletons will be removed + // Setup singleton for backward compatibility + CLScheduler::get().init(gpu_scheduler->context(), gpu_scheduler->queue(), cl_ctx->kernel_library().get_device(), &cl_tuner); + } + parameters->set_gpu_ctx(std::move(cl_ctx)); + if(enable_tuner->is_set()) { cl_tuner.set_tune_new_kernels(enable_tuner->value()); @@ -222,7 +225,7 @@ int main(int argc, char **argv) #ifdef ARM_COMPUTE_CL if(opencl_is_available()) { - p->print_entry("CL_DEVICE_VERSION", CLKernelLibrary::get().get_device_version()); + p->print_entry("CL_DEVICE_VERSION", device_version); } else { -- cgit v1.2.1