每个网格的最大块数:CUDA

smi*_*dha 23 cuda nvidia

每个内核启动可以创建的网格中的最大块数是多少?从那以后我有点困惑

现在,这里的计算能力表表明,在CUDA计算能力2.0中,每个网格可以有65535个块.

这是否意味着总块数= 65535*65535?

或者它是否意味着您可以将最多65535重新排列为65536块的1d网格或sqrt(65535)*sqrt(65535)的2d网格?

谢谢.

tal*_*ies 35

每个网格尺寸65535.在计算1.x卡上,支持1D和2D网格.在计算2.x卡上,还支持3D网格,因此65535,65535 x 65535和65535 x 65535 x 65535是Fermi(计算2.x)卡的限制.

  • 从原始问题中复制了错误的值.Mea culpa. (4认同)
  • 65535,而不是65536 (2认同)
  • 虽然这看起来是错误的,但我构建的 CUDA 示例程序 deviceQuery 表明我可以使用 2147483647 作为第一个维度:“网格大小 (x,y,z) 的最大维度大小:(2147483647, 65535, 65535)” (2认同)
  • @ user2023370这对具有Compute Capability 3.0及更高版本的设备是正确的,请参阅https://en.wikipedia.org/wiki/CUDA#Version_features_and_specifications。x方向上的限制“仅**”现在为2 ^ 31-1。 (2认同)