[Beignet] [PATCH] Return error code when work group error instead of exit when clEnqueueNDRange.
Zhigang Gong
zhigang.gong at linux.intel.com
Thu Oct 16 00:14:33 PDT 2014
It's better to fix the general error code check and returning logic in
function cl_command_queue_ND_range_gen7(). Please check the following
problematic code at the end of the function.
error:
fprintf(stderr, "error occured. \n");
exit(-1);
return CL_OUT_OF_RESOURCES;
Which is obviously incorrect way in a library. Please fix this issue there
rather than only fix it for the work group size case.
Thanks,
Zhigang Gong.
On Thu, Oct 16, 2014 at 04:00:33PM +0800, Yang Rong wrote:
> Signed-off-by: Yang Rong <rong.r.yang at intel.com>
> ---
> src/cl_command_queue_gen7.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/src/cl_command_queue_gen7.c b/src/cl_command_queue_gen7.c
> index b020540..c11e25d 100644
> --- a/src/cl_command_queue_gen7.c
> +++ b/src/cl_command_queue_gen7.c
> @@ -317,7 +317,10 @@ cl_command_queue_ND_range_gen7(cl_command_queue queue,
> kernel.use_slm = interp_kernel_use_slm(ker->opaque);
>
> /* Compute the number of HW threads we need */
> - TRY (cl_kernel_work_group_sz, ker, local_wk_sz, 3, &local_sz);
> + if(UNLIKELY(err = cl_kernel_work_group_sz(ker, local_wk_sz, 3, &local_sz) != CL_SUCCESS)) {
> + fprintf(stderr, "Beignet: Work group size exceed Kerne's work group size.\n");
> + return err;
> + }
> kernel.thread_n = thread_n = (local_sz + simd_sz - 1) / simd_sz;
> kernel.curbe_sz = cst_sz;
>
> --
> 1.8.3.2
>
> _______________________________________________
> Beignet mailing list
> Beignet at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/beignet
More information about the Beignet
mailing list