在使用cudaLaunchCooperativeKernel时出现:
cudaErrorCooperativeLaunchTooLarge (error 82) due to “too many blocks in cooperative launch” on CUDA API call to cudaLaunchCooperativeKernel.
问题:
在使用cudaLaunchCooperativeKernel时,限制其最大grid_dim和block_dim的元素是什么?
A100的关键参数:
从上面表格中可以看到,影响cooperative launch的max_grid_dim 和max_block_dim的因素有三个:
maximum number of resident blocks per SM
maximum number of resident warps per SM
maximum number of resident threads per SM
对于A100理论上来说,在cooperative launch的时候,有如下限制(寄存器等先忽略):
block 不能超过 10832=3456
warps不能超过10864=6912
threads 不能超过 108*2048=221184
按照上面条件获得下表,理论上下面表格数据是能cooperative launch成功的
(从256开始红色代表实测值)
问题是,当cooperative launch空kernel,当grid dim 从256开始后,按照理论的max block dim(绿色)的时候出现:
“too many blocks in cooperative launch” on CUDA API call to cudaLaunchCooperativeKernel.”
问题如下:
I understand I’m using too many ‘active blocks’ and have no argument with that.
What I don’t understand is how to do the math to know how many blocks and threads I can call beforehand.
为了获得答案,我们看一下sm上kernel分布:
grid_dim | block_dim | sm0 | sm1 | sm2 | sm3 | sm4 | sm5 | sm6 | sm7 | sm8 | sm9 | sm10 | sm11 | sm12 | sm13 | sm14 | sm15 | sm16 | sm17 | sm18 | sm19 | sm20 | sm21 | sm22 | sm23 | sm24 | sm25 | sm26 | sm27 | sm28 | sm29 | sm30 | sm31 | sm32 | sm33 | sm34 | sm35 | sm36 | sm37 | sm38 | sm39 | sm40 | sm41 | sm42 | sm43 | sm44 | sm45 | sm46 | sm47 | sm48 | sm49 | sm50 | sm51 | sm52 | sm53 | sm54 | sm55 | sm56 | sm57 | sm58 | sm59 | sm60 | sm61 | sm62 | sm63 | sm64 | sm65 | sm66 | sm67 | sm68 | sm69 | sm70 | sm71 | sm72 | sm73 | sm74 | sm75 | sm76 | sm77 | sm78 | sm79 | sm80 | sm81 | sm82 | sm83 | sm84 | sm85 | sm86 | sm87 | sm88 | sm89 | sm90 | sm91 | sm92 | sm93 | sm94 | sm95 | sm96 | sm97 | sm98 | sm99 | sm100 | sm101 | sm102 | sm103 | sm104 | sm105 | sm106 | sm107 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
256 | 1 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 3 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
256 | 64 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 192 | 128 | 128 | 128 | 128 | 128 | 128 | 128 | 128 | 128 | 128 | 128 | 128 | 128 | 128 | 128 | 128 | 128 | 128 | 128 | 128 | 128 | 128 | 128 | 128 | 128 | 128 | 128 | 128 | 128 |
256 | 96 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 288 | 192 | 192 | 192 | 192 | 192 | 192 | 192 | 192 | 192 | 192 | 192 | 192 | 192 | 192 | 192 | 192 | 192 | 192 | 192 | 192 | 192 | 192 | 192 | 192 | 192 | 192 | 192 | 192 | 192 |
256 | 128 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 384 | 256 | 256 | 256 | 256 | 256 | 256 | 256 | 256 | 256 | 256 | 256 | 256 | 256 | 256 | 256 | 256 | 256 | 256 | 256 | 256 | 256 | 256 | 256 | 256 | 256 | 256 | 256 | 256 | 256 |
256 | 160 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 480 | 320 | 320 | 320 | 320 | 320 | 320 | 320 | 320 | 320 | 320 | 320 | 320 | 320 | 320 | 320 | 320 | 320 | 320 | 320 | 320 | 320 | 320 | 320 | 320 | 320 | 320 | 320 | 320 | 320 |
256 | 192 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 576 | 384 | 384 | 384 | 384 | 384 | 384 | 384 | 384 | 384 | 384 | 384 | 384 | 384 | 384 | 384 | 384 | 384 | 384 | 384 | 384 | 384 | 384 | 384 | 384 | 384 | 384 | 384 | 384 | 384 |
256 | 224 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 672 | 448 | 448 | 448 | 448 | 448 | 448 | 448 | 448 | 448 | 448 | 448 | 448 | 448 | 448 | 448 | 448 | 448 | 448 | 448 | 448 | 448 | 448 | 448 | 448 | 448 | 448 | 448 | 448 | 448 |
256 | 256 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 768 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 |
256 | 288 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 864 | 576 | 576 | 576 | 576 | 576 | 576 | 576 | 576 | 576 | 576 | 576 | 576 | 576 | 576 | 576 | 576 | 576 | 576 | 576 | 576 | 576 | 576 | 576 | 576 | 576 | 576 | 576 | 576 | 576 |
256 | 320 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 960 | 640 | 640 | 640 | 640 | 640 | 640 | 640 | 640 | 640 | 640 | 640 | 640 | 640 | 640 | 640 | 640 | 640 | 640 | 640 | 640 | 640 | 640 | 640 | 640 | 640 | 640 | 640 | 640 | 640 |
256 | 352 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 1056 | 704 | 704 | 704 | 704 | 704 | 704 | 704 | 704 | 704 | 704 | 704 | 704 | 704 | 704 | 704 | 704 | 704 | 704 | 704 | 704 | 704 | 704 | 704 | 704 | 704 | 704 | 704 | 704 | 704 |
256 | 384 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 1152 | 768 | 768 | 768 | 768 | 768 | 768 | 768 | 768 | 768 | 768 | 768 | 768 | 768 | 768 | 768 | 768 | 768 | 768 | 768 | 768 | 768 | 768 | 768 | 768 | 768 | 768 | 768 | 768 | 768 |
256 | 416 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 1248 | 832 | 832 | 832 | 832 | 832 | 832 | 832 | 832 | 832 | 832 | 832 | 832 | 832 | 832 | 832 | 832 | 832 | 832 | 832 | 832 | 832 | 832 | 832 | 832 | 832 | 832 | 832 | 832 | 832 |
256 | 448 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 1344 | 896 | 896 | 896 | 896 | 896 | 896 | 896 | 896 | 896 | 896 | 896 | 896 | 896 | 896 | 896 | 896 | 896 | 896 | 896 | 896 | 896 | 896 | 896 | 896 | 896 | 896 | 896 | 896 | 896 |
256 | 480 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 1440 | 960 | 960 | 960 | 960 | 960 | 960 | 960 | 960 | 960 | 960 | 960 | 960 | 960 | 960 | 960 | 960 | 960 | 960 | 960 | 960 | 960 | 960 | 960 | 960 | 960 | 960 | 960 | 960 | 960 |
256 | 512 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1536 | 1024 | 1024 | 1024 | 1024 | 1024 | 1024 | 1024 | 1024 | 1024 | 1024 | 1024 | 1024 | 1024 | 1024 | 1024 | 1024 | 1024 | 1024 | 1024 | 1024 | 1024 | 1024 | 1024 | 1024 | 1024 | 1024 | 1024 | 1024 | 1024 |
256 | 544 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1632 | 1088 | 1088 | 1088 | 1088 | 1088 | 1088 | 1088 | 1088 | 1088 | 1088 | 1088 | 1088 | 1088 | 1088 | 1088 | 1088 | 1088 | 1088 | 1088 | 1088 | 1088 | 1088 | 1088 | 1088 | 1088 | 1088 | 1088 | 1088 | 1088 |
256 | 576 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1728 | 1152 | 1152 | 1152 | 1152 | 1152 | 1152 | 1152 | 1152 | 1152 | 1152 | 1152 | 1152 | 1152 | 1152 | 1152 | 1152 | 1152 | 1152 | 1152 | 1152 | 1152 | 1152 | 1152 | 1152 | 1152 | 1152 | 1152 | 1152 | 1152 |
256 | 608 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1824 | 1216 | 1216 | 1216 | 1216 | 1216 | 1216 | 1216 | 1216 | 1216 | 1216 | 1216 | 1216 | 1216 | 1216 | 1216 | 1216 | 1216 | 1216 | 1216 | 1216 | 1216 | 1216 | 1216 | 1216 | 1216 | 1216 | 1216 | 1216 | 1216 |
256 | 640 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1920 | 1280 | 1280 | 1280 | 1280 | 1280 | 1280 | 1280 | 1280 | 1280 | 1280 | 1280 | 1280 | 1280 | 1280 | 1280 | 1280 | 1280 | 1280 | 1280 | 1280 | 1280 | 1280 | 1280 | 1280 | 1280 | 1280 | 1280 | 1280 | 1280 |
256 | 672 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 2016 | 1344 | 1344 | 1344 | 1344 | 1344 | 1344 | 1344 | 1344 | 1344 | 1344 | 1344 | 1344 | 1344 | 1344 | 1344 | 1344 | 1344 | 1344 | 1344 | 1344 | 1344 | 1344 | 1344 | 1344 | 1344 | 1344 | 1344 | 1344 | 1344 |
直接看最后一行,可以看到block dim=672,也就是说threads per block is 672,我们知道一个block内的threads不能跨SM,所以在这里,每个SM上可以放6723=2016个threads.那么我们所有的256(小于1083=324)个block都是可以放上去的。
当执行到256*704的时候失败,
为什么这里失败呢?
这是因为当grid dim固定为256的时候,当block dim=704的时候,每个sm上最多能放2个block,所以最多能launch108*2=216个block,其余的block加载不上去,为什么?
因为block dim=704,现在每个SM上已经都有704*2=1408个threads了,现在每个SM还能容纳2048-1408=640个threads,而我们的每个block是704,所以就出现too many error了。
查看cuda文档,看到下面介绍,可以通过函数
cudaOccupancyMaxActiveBlocksPerMultiprocessor()来查询: