diff options
author | Junyan He <junyan.he@intel.com> | 2016-04-11 22:15:15 +0800 |
---|---|---|
committer | Junyan He <junyan.he@intel.com> | 2016-04-11 22:15:15 +0800 |
commit | d8fd1f4bbdbcc0bc2cd6bf20b29518eb74d3f511 (patch) | |
tree | 26b59ac0fc422aa54ca28b560fc7f0412902ebb9 /backend/src | |
parent | 8096dfae2edf9a9a784ba7aa26bcb85872e05bdd (diff) |
kernel
Diffstat (limited to 'backend/src')
-rw-r--r-- | backend/src/driver/cl_gen_kernel.cpp | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/backend/src/driver/cl_gen_kernel.cpp b/backend/src/driver/cl_gen_kernel.cpp index cfde43e5..c9ad3a39 100644 --- a/backend/src/driver/cl_gen_kernel.cpp +++ b/backend/src/driver/cl_gen_kernel.cpp @@ -79,19 +79,12 @@ static size_t genGetKernelMaxWorkGroupSize(cl_kernel kernel, Kernel* ker, const } extern "C" -cl_int GenCreateKernel(cl_kernel kernel, const cl_device_id device) +cl_int GenGetWorkgroupInfo(cl_kernel kernel, const cl_device_id device, cl_kernel_workgroup_info wgInfo) { - GBE_ASSERT(getGenKernelPrivate(kernel, device) == NULL); - - Program* p = reinterpret_cast<Program*>(getGenProgramPrivate(kernel->program, device)); - if (p == NULL) - return CL_INVALID_PROGRAM; - - Kernel* ker = p->getKernel(kernel->name); + Kernel* ker = reinterpret_cast<Kernel*>(getGenKernelPrivate(kernel, device)); if (ker == NULL) - return CL_INVALID_KERNEL_NAME; + return CL_INVALID_VALUE; - cl_kernel_workgroup_info wgInfo = &kernel->wg_info[findIndexByDevice(kernel->program->ctx, device)]; ker->getCompileWorkGroupSize(wgInfo->compile_wg_sz); wgInfo->local_mem_sz = ker->getSLMSize(); wgInfo->private_mem_sz = ker->getStackSize(); @@ -108,6 +101,22 @@ cl_int GenCreateKernel(cl_kernel kernel, const cl_device_id device) memcpy(wgInfo->global_work_sz, device->max_3d_global_work_sizes, sizeof(device->max_3d_global_work_sizes)); } + return CL_SUCCESS; +} + +extern "C" +cl_int GenCreateKernel(cl_kernel kernel, const cl_device_id device) +{ + GBE_ASSERT(getGenKernelPrivate(kernel, device) == NULL); + + Program* p = reinterpret_cast<Program*>(getGenProgramPrivate(kernel->program, device)); + if (p == NULL) + return CL_INVALID_PROGRAM; + + Kernel* ker = p->getKernel(kernel->name); + if (ker == NULL) + return CL_INVALID_KERNEL_NAME; + setGenKernelPrivate(kernel, device, ker); return CL_SUCCESS; } @@ -750,7 +759,7 @@ cl_int GenEnqueueNDRangeKernel(cl_command_queue queue, cl_kernel kernel, const u } GenGPUWorkItemNDRange* ndRange = GBE_NEW(GenGPUWorkItemNDRange, gpuQueue->bufmgr, gpuQueue->ctx, - gpuDev->device_id, + gpuDev->device_id, event_ret, events, num_events); if (ndRange->gpuState->stateInit( queue->device->max_compute_unit * gpuDev->max_thread_per_unit, cst_sz / 32) != true) { |