 # Question regarding maximum amount of blocks

Hello, I’m a bit confused about the maximum amount of blocks that I can use. If I run a ‘deviceQuery’ on my computer (which has the card 480 GTX ) I get the following output.

Maximum number of threads per block: 1024
Maximum sizes of each dimension of a block: 1024 x 1024 x 64
Maximum sizes of each dimension of a grid: 65535 x 65535 x 1

The first row is pretty straight forward and I can have a maximum of 1024 threads per block. But the 2nd row makes me a bit uncertain. If I would have the dimension 1024x1024x64 for the blocks each block should have 1024102464=67108864 threads? Or am I thinking wrong here? Or does it mean that the product of the dimensions is not allowed to be over 1024? I mean a setup like 128x4x2 would be ok?

A similar question for the maximum amount of blocks that is allowed for a grid. There is no “Maximum number of blocks per grid”-value specified explicitly in ‘deviceQuery’ so what is the maximum number of blocks I can have? If I interpret it correctly here I can have 65535Â² blocks if I use a 2-dimensional setup for the grid but can only have 65535 blocks if I have a one-dimensional?

The latter is correct. You can only have up to 1024 threads (it might be less than that in practice because of register or shared memory limitations), and the dimensions of the block must satisfy blockDim.x * blockDim.y * blockDim.z <= 1024 to be valid.

That is also correct. 65535 blocks for a 1D grid, 65535*65535 for a 2D grid.

Thanks for your input, appreciate it!