Question about occupancy caculator.

I don’t know the mean of which included in caculator.

1.Limited by Max Warps / Multiprocessor.

2.Limited by Registers / Multiprocessor.

3.Limited by Shared Memory / Multiprocessor.

and warps size , this very confusing me …

somebody can help me, very thanks.

These refer to which resource is limiting the occupancy. They are given in units of Thread Blocks, and the actual number of thread blocks per multiprocessor is the minimum of these 3 limits. For example:

  1. If you have 256-thread blocks with each thread using only 3 registers and no shared memory, your occupancy will be limited by the max warps per multiprocessor. In this case “limited by Max Warps / Multiprocessor” will read 3, and the other two “limited by” lines will read 10 and 8, respectively, which means you can have 3 256-thread blocks per multiprocessor, and your occupancy will be 100%.

  2. If you have 256-thread blocks with each thread using 11 registers and no shared memory, your occupancy will be limited by max registers per multiprocessor. In this case “limited by registers / Multiprocessor” will read 2, and the other two “limited by” lines will read 3 and 8, respectively, which means you can have 2 256-thread blocks per multiprocessor, and your occupancy will be 67%.

  3. If you have 256-thread blocks with each thread using 10 registers and 8192 bytes of shared memory, your occupancy will be limited by shared memory / multiprocessor. In this case “limited by shared memory / multiprocessor” will read 2, and the other two “limited by” lines will both read 3, which means you can have 2 256-thread blocks per multiprocessor, and your occupancy will be 67%.

Mark

Thanks for your explanation.

It’s very clear. :)