| 140 | } |
| 141 | |
| 142 | void CLScheduler::default_init(ICLTuner *cl_tuner, CLGEMMHeuristicsHandle *gemm_h, CLBackendType cl_backend_type) |
| 143 | { |
| 144 | if (!_is_initialised) |
| 145 | { |
| 146 | cl::Context ctx; |
| 147 | cl::Device dev; |
| 148 | cl_int err; |
| 149 | std::tie(ctx, dev, err) = create_opencl_context_and_device(cl_backend_type); |
| 150 | ARM_COMPUTE_ERROR_ON_MSG(err != CL_SUCCESS, "Failed to create OpenCL context"); |
| 151 | cl::CommandQueue queue = cl::CommandQueue(ctx, dev); |
| 152 | CLKernelLibrary::get().init("./cl_kernels/", ctx, dev); |
| 153 | init(ctx, queue, dev, cl_tuner, gemm_h); |
| 154 | } |
| 155 | |
| 156 | // Set CL tuner and GEMM heuristics |
| 157 | _cl_tuner = cl_tuner; |
| 158 | _gemm_heuristics = gemm_h; |
| 159 | } |
| 160 | |
| 161 | void CLScheduler::default_reinit(ICLTuner *cl_tuner, CLGEMMHeuristicsHandle *gemm_h, CLBackendType cl_backend_type) |
| 162 | { |
no test coverage detected