Questions of Multiprocessor

Hi all,

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.

A grid contains many blocks, and those blocks mapped onto all of the multiprocessors in the GPU. At a minimum, each multiprocessor will be running one of the blocks in your grid, and if resources permit (registers and shared memory), a multiprocessor can execute several blocks at once.

So as long as you launch a grid with at least as many blocks as multiprocessors, all of the multiprocessors will be used.

casybaby if you have several GPUs in you computer then you need to have multiple host threads to accommodate these GPUs with their own data.
If not


Thanks a lot for your replies. I misunderstood the concept multiprocessors in GPU.
I though multiprocessors handle multiple applications.