Is a block matched to a SM?

Hello every one!

I want to use shared memory as a common working field(e.g. stack, queue, and so on) for thread in a SM or a SP.
For that, I have some questions.

Q. Is a block matched to a MP?
If it’s right,

  1. Does it mean a block can use 16KB shared memory?
  2. If I set as a block has 32 threads, do thread 0~7 (8~15, …) are processed at once by eight SPs?

Thanks for your attention.
-DS

Yes. Any given block runs on only one MP. There can be more than one block scheduled to run on one MP at the same time, if resources allow.

A few bytes short of 16k, yes.

I don’t think that is assured. Warps of 32 threads are implicitly synchronized (so threads 0-31 in your example), but that is about the limit of what you can assume. It might seem logical that the execution happens lock-step in sequences of 8 threads, but I don’t think it is guaranteed to be the case.