I am researching CPU/GPU processing in advance of our company converting all our image and data processing to OpenCl or something similar, where we can use GPU and CPU processing. All development info seems to be very high level (almost uselessly non-specific) or in the form of specific programming examples (too specific). It seems to be assumed that the developer is already familiar with GPU based processing and the associated language constructs.
A great benefit of OpenCL is that it accesses both CPU and GPU processors. But all the examples I've seen use one type or the other. So I wonder if, for data parallel processes, OpenCL can use a combination of CPUs and GPUs from one kernel (terminology?) or if the different nature of data parallel processing from task parallel processing means that it isn't really practical, useful, or possible?
Also, if there is any good source of info for experienced developers who are totally new to OpenCL and GPU, data parallel programming concepts I would love to hear about it. In the old days, there were books, but now...
For OpenCL you can start with the specification : http://www.khronos.org/registry/cl/specs/opencl-1.0.48.pdf
For information about GPGPU you can start with ATI Stream computing overview document available here : http://developer.amd.com/gpu/ATIStreamSDK/pages/Publications.aspx