I am confused of multiprocessors in GPU. My understanding is one grid of blocks execute on one of the multiprocessors. Each of them has their own registers, shared memory, constant cache, texture cache. All of them share the same global memory. Are these correct? If these are, does anyone knows how to launch multiprocessors? Does it require multithreading on CPU? My case is that I have several data sets, and I would like to execute each of them on multiprocessors, the instruction will be the same. Any idea will be appreciated.