Number of total threads, blocks, and grids on my G

2019-07-02 14:47发布

For the NVIDIA GEFORCE 940mx GPU, Device Query shows it has 3 Multiprocessor and 128 cores for each MP.enter image description here

Number of threads per multiprocessor=2048

So, 3*2048=6144.ie. total 6144 threads in GPU.

6144/1024=6 ,ie. total 6 blocks. And warp size is 32.

But from this video https://www.youtube.com/watch?v=kzXjRFL-gjo i found that each GPU has limit on threads, but no limit on Number of blocks.

So i got confused with this. I would like to know

  1. How many total threads are in my GPU? Can we use all threads for execute a program?
  2. How many blocks and Grids are there?

标签: cuda gpu nvidia
1条回答
Melony?
2楼-- · 2019-07-02 15:08

It appears the main source of your confusion is mixing up two completely different sets of limits:

  1. The maximum number of threads and blocks which can run concurrently on the GPU.
  2. The maximum number of threads and blocks which can be launched for a given kernel.

The numbers you quote (2048 threads per multiprocessor, three multiprocessors in total = 6144 threads represent the first set of limits. The numbers you show in your screenshot of the deviceQuery output:

  Maximum number of threads per multiprocessor:  2048
  Maximum number of threads per block:           1024
  Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
  Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)

define the limits of a given kernel launch. While they overlap somewhat, you can treat them as more or less separate. For a more thorough discussion of the practicalities of kernel launch parameters and block dimensions, see here.

查看更多
登录 后发表回答