Is it possible to assign different kernels to different multiprocessors (on the same graphic card) and run different kernel functions simultaneously with CUDA 2.3? I am looking for a way to run slightly different applications accessing the same data reside on the global data at the same time. Searching through the forum, I found a post around Oct, 2007 which indicating this is not possible - [url=“The Official NVIDIA Forums | NVIDIA”]The Official NVIDIA Forums | NVIDIA
I would like to know, is this possible now with CUDA 2.3? If so, how to do it?
Gregory’s completely correct. This kind of micro-kernel switching works pretty well, actually, and I do it often in some of my more complex code.
The main disadvantage is compile time, actually… you can’t split the subkernels into multiple objects.
You can even break it down and do similar switches on the per-warp level, though you give up the ability to use syncthreads() to coordinate among the warps. However if your microkernels are indeed per-warp you won’t need syncthreads().