Page 1 of 1
list of OpenCL functions missing in COPRTHR ??
Posted:
Thu May 29, 2014 9:27 pm
by censix
Re: list of OpenCL functions missing in COPRTHR ??
Posted:
Tue Aug 12, 2014 11:32 am
by nickoppen
I'm trying decide if my cl code has compiled cleanly and if not then to exit gracefull. I'm calling:
clGetProgramBuildInfo(*(stdacc->prg), *(stdacc->dev), CL_PROGRAM_BUILD_STATUS, 0, NULL, &space)
where space is an unsigned int
and
clGetProgramBuildInfo(*(stdacc->prg), *(stdacc->dev), CL_PROGRAM_BUILD_STATUS, sizeof(bOk), &bOk, NULL)
where bOk is a cl_build_status
and both end up with a segmenation fault.
Has anyone called this standard function with a successful return?
There's always a good chance that I've screwed up the arguments and made it past the compiler but I've tried LOTS of variations with no success.
Re: list of OpenCL functions missing in COPRTHR ??
Posted:
Tue Aug 12, 2014 9:13 pm
by censix
I haven't used the clGetProgramBuildInfo() function ...
only using what browndeer used in the "hello_opencl.c" example.
I have however had quite a number of segfaults when using (or trying to use)
clgetDeviceInfo() to obtain certain device parameters ...
http://www.khronos.org/registry/cl/sdk/ ... eInfo.htmlsome don't make sense for the Epiphany, but in that case, I really think that the BDT openCL implementation should
return NULL or something else rather than produce a segfault ....
Re: list of OpenCL functions missing in COPRTHR ??
Posted:
Tue Aug 12, 2014 10:39 pm
by dar
Sorry about that. I will take a look at why some of these queries cause segfaults. If you could post the queries you are having trouble with I can pay close attention to those.
-DAR
clGetDeviceInfo
Posted:
Wed Aug 13, 2014 10:30 am
by nickoppen
I got clGetDeviceInfo to work with CL_DEVICE_MAX_COMPUTE_UNITS to return using the standard contexts stdacc, stdcpu and stddev. Trouble is that they all reported one compute unit.
I'm not sure if the Epiphany-16 is treated as one compute unit or 16 but I'd be surprised if the ARM with two cores is treated as one. Regardless, stddev ("/* All supported devices */") should be the sum of the other two contexts.
Re: list of OpenCL functions missing in COPRTHR ??
Posted:
Wed Aug 13, 2014 12:43 pm
by dar
Re: list of OpenCL functions missing in COPRTHR ??
Posted:
Wed Aug 13, 2014 11:12 pm
by nickoppen
Perhaps my understanding of stddev in not correct. The comment in the documentation /* All supported devices */ led me to think that it is a general context that contains all the devices available and therefore CL_DEVICE_MAX_COMPUTE_UNITS would be the sum of the CL_DEVICE_MAX_COMPUTE_UNITS of each device.
I'll stick with using stdacc and stdcpu individually until I understand how the whole thing works.
Re: list of OpenCL functions missing in COPRTHR ??
Posted:
Thu Aug 14, 2014 1:06 pm
by dar
Your understanding is correct except for the interpretation of CL_DEVICE_MAX_COMPUTE_UNITS which is a per-device metric. If you had 4 graphics in a workstation, stddev would show 5 devices, and if you queried each in turn you would get the CL_DEVICE_MAX_COMPUTE_UNITS of each one. The stddev STDCL context does not have a value itself. So for parallella, stdcpu and stdacc each have 1 device and stddev has 2 devices.
So to be clear, stddev is not fusing together multiple devices transparently (something like that is in the works, but not available yet), you must select a device using the devnum argument.