Hello.
I’m curisous whether OpenCL is a good way to write task-oriented parallel program. The spec says that OpenCL is designed for GPU, Cell and other kinds of heterogeneous multi-core platform. But I think that it is just a extended version of CUDA.
How do you think about it? Cat OpenCL replace the existant programming model like ALF of Cell, SPI platform, TBB ??
For example, can a kernel running on the device push something in the command queue ? Can a running kernel start the execution of some others kernels ? As far as I understand the specs, it’s not possible, but maybe I overlooked something.
In OpenCL 1.0 a task can not enqueue another task. The host can build a task graph (using event dependencies) and submit task-parallel work to OpenCL, though.