clndrange_init2D
Posted: Mon Sep 08, 2014 10:49 am
Hi dar,
Could I just check with you on my understanding of clndrange_init2D(NULL, gsz0, lsz0, NULL gsz1, lsz1) please?
Am I correct in saying that passing the resulting clndrange_t value to a fork or forka results in gsz0 * gsz1 calls to the given kernel split between the available cores with lsz0 and lsz1 being passed to the kernel as the result of get_local_size(0) and get_local_size(1) respectively?
If I am correct, are there any restrictions on what the values of these four arguments are? Writing my latest blog post was extremely frustrating because it seemed that for many combinations of global and local sizes the kernel was not called at all. The code I posted was the only combination that seemed to work reliably.
I tried the same thing with a bigger data set and bigger global sizes (256 and 1024) and that did not seem to make any difference other than to produce the following output:
root@linaro-nano:/home/linaro/git/nD/Debug# ./nD
[3832] clmesg WARNING: libocl.c(158): cannot read ocl.conf, using ICD fallback (/etc/OpenCL/vendors
coprthr-1.6.0 (Freewill)
[3832] clmesg info: cmdsched.c(86): cmdqx1: run
[3832] clmesg WARNING: command_queue.c(39): __do_create_command_queue_1: cmdq exists
[3832] clmesg WARNING: command_queue.c(39): __do_create_command_queue_1: cmdq exists
dmalloc(0,65536): 0x8e104000 0x8e104000 0x90004000
dmalloc(0,65536): 0x8e104000 0x8e114000 0x90004000
[3832] clmesg info: cmdsched.c(86): cmdqx1: run
[3832] clmesg WARNING: ocl_enqueue.c(893): clEnqueueNDRangeKernel: ignoring global_work_offset
[3832] clmesg info: e32pth_engine_needham.c(100): e32_engine_startup: engine is path-through
[3832] clmesg ERROR: e32pth_engine_needham.c(182): exceeded maximum thread block size
[3832] clmesg WARNING: ocl_enqueue.c(893): clEnqueueNDRangeKernel: ignoring global_work_offset
[3832] clmesg ERROR: e32pth_engine_needham.c(182): exceeded maximum thread block size
[3832] clmesg info: cmdsched.c(181): cmdqx1: shutdown
root@linaro-nano:/home/linaro/git/nD/Debug#
Despite reporting an error, everything seemed to be called and the program seemed to exit properly.
Confusing and frustrating.
nick
Could I just check with you on my understanding of clndrange_init2D(NULL, gsz0, lsz0, NULL gsz1, lsz1) please?
Am I correct in saying that passing the resulting clndrange_t value to a fork or forka results in gsz0 * gsz1 calls to the given kernel split between the available cores with lsz0 and lsz1 being passed to the kernel as the result of get_local_size(0) and get_local_size(1) respectively?
If I am correct, are there any restrictions on what the values of these four arguments are? Writing my latest blog post was extremely frustrating because it seemed that for many combinations of global and local sizes the kernel was not called at all. The code I posted was the only combination that seemed to work reliably.
I tried the same thing with a bigger data set and bigger global sizes (256 and 1024) and that did not seem to make any difference other than to produce the following output:
root@linaro-nano:/home/linaro/git/nD/Debug# ./nD
[3832] clmesg WARNING: libocl.c(158): cannot read ocl.conf, using ICD fallback (/etc/OpenCL/vendors
coprthr-1.6.0 (Freewill)
[3832] clmesg info: cmdsched.c(86): cmdqx1: run
[3832] clmesg WARNING: command_queue.c(39): __do_create_command_queue_1: cmdq exists
[3832] clmesg WARNING: command_queue.c(39): __do_create_command_queue_1: cmdq exists
dmalloc(0,65536): 0x8e104000 0x8e104000 0x90004000
dmalloc(0,65536): 0x8e104000 0x8e114000 0x90004000
[3832] clmesg info: cmdsched.c(86): cmdqx1: run
[3832] clmesg WARNING: ocl_enqueue.c(893): clEnqueueNDRangeKernel: ignoring global_work_offset
[3832] clmesg info: e32pth_engine_needham.c(100): e32_engine_startup: engine is path-through
[3832] clmesg ERROR: e32pth_engine_needham.c(182): exceeded maximum thread block size
[3832] clmesg WARNING: ocl_enqueue.c(893): clEnqueueNDRangeKernel: ignoring global_work_offset
[3832] clmesg ERROR: e32pth_engine_needham.c(182): exceeded maximum thread block size
[3832] clmesg info: cmdsched.c(181): cmdqx1: shutdown
root@linaro-nano:/home/linaro/git/nD/Debug#
Despite reporting an error, everything seemed to be called and the program seemed to exit properly.
Confusing and frustrating.
nick