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.

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.