task parallelism on CUDA


On last student conference in our university, I heared that we can’t use task parallelism on CUDA. But I can’t understand why.

Please, explain me, why on CUDA we can’t use task parallelism.

Thank You, and sorry for my English.


Up to compute capability 2.1 the gpu can not execute 2 programs in the same time. If one would run 2 gpu programs in the same time and each of them require less than half of the gpu resources they will not run in the same, but sequentially.If a program makes a function call, the second program can not make a function call until the call from the first program is finished even if there are resources available. This is a hardware limitation. I think that the latest gpus, with cc 3.0 (the 6xx series), have now the possibility to do task parallelism or it is in plan for future gpus.

Thank you for your answer. You help me=) But when we use OpenCL on Nvidia, task parallelism is not support too?

This is a hardware limitation so I do not think it matters what you have opencl, cuda or some game running on gpu, the programs will not run concurrently, unless you have the 6xx gpu. AMD cards also do not have task parallelism.