Can I run different kernels on the same card in parallel ?
Literally parallel? I think that depends on the card and the size of the kernel. The kernels are placed in a queue of sorts and I'm sure if you tried to call 2 small kernels at the same time they shouldn't have any issues running side by side on the card.
But there's never any certainty about the order in which things are done unless you assure such things yourself.
Maybe we can get some more commentary about the parallelism going.
Can I run vertex or geometry shaders manualy from CAL ? Or can I use that parallel execution style with pixel and compute shaders ? That is realy very-very needed thing.
Micah,
whether there will be a support of vertex and geometrical shaders in the future? Otherwise what sense to complicate IL specification on the description of registers and instructions for work with these types shaders?
Originally posted by: MicahVillmowThe only way to do parallel execution is to combine multiple kernels into a single kernel and do conditional execution based on the threads position in the execution domain. i.e. if (threadID < 1024) { call 0; // kernel0 }else{ call 1; // kernel 1 }
Hi MicahVillmow, thanks for the explanation. I'm new to GPGPU acceleration and learning the knobs in working with it.
I wonder in doing what you suggested above, wouldn't it (1) cause the wavefront to serially execute both branches, and (2) reduce the effective number of registers available per thread? Wouldn't it still limit the performance benefit of combining multiple kernels?
Is the ability of running concurrent compute shader programs being implemented/enabled in the next version of Brook+/CAL (or OpenCL)? Since the GPUs already allow multiple types of shaders to run in a pipelined fashion, there shouldn't be much problem to run multiple compute shaders also in a pipelined fashion. Or is there?
From a high level (algorithm-architecture) point of view, this seems to be very useful for writing more sophisticated parallel programs (than e.g. just matrix multiplication) and the sensible way to do GPGPU acceleration. \
Thanks a lot in advance!