I raised this issue in NVIDIA forums and one developer, at least, acknowledged this problem. I am just wondering what the OpenCL community has to say about this:
OpenCL spec says that it wants to create a unified view of heterogeneous devices on system and compute on top of them using OpenCL.
Unfortunately, the spec does NOT say how to do it.
For example, the spec says there will be a Platform Layer, run time layer and a compiler layer.
However, there is NO interface between platform layer and run-time layer and thus every1 is coming up with all 3 of them sepately.
Thus with OpenCL, I dont think you can do heterogeneous computation even with GPUs and CPUs.
NVIDIA has released an OpenCL implementation
AMD will release one.
Intel probably will release another..
And, every1 will exist separately.
At run-time, your OpenCL application will run only on one of these....
Can some1 throw light on these issues? Am I missing something?