【发布时间】:2012-07-28 15:09:05
【问题描述】:
我在获取 CUDA 中每个网格的正确块数时遇到了一些困难。 任何人都可以显示基本/简单的公式来计算 CUDA 内核中 2D 所需的块数吗? (即gridDim.x和gridDim.y)考虑到用户想要运行N个线程总数,并且他的块是A乘B(其中A * B
dim3 dimBlock(A,B);
dim3 dimGrid(Z,T);
我正在寻找 Z 和 T。谢谢!!!
【问题讨论】:
标签: cuda
我在获取 CUDA 中每个网格的正确块数时遇到了一些困难。 任何人都可以显示基本/简单的公式来计算 CUDA 内核中 2D 所需的块数吗? (即gridDim.x和gridDim.y)考虑到用户想要运行N个线程总数,并且他的块是A乘B(其中A * B
dim3 dimBlock(A,B);
dim3 dimGrid(Z,T);
我正在寻找 Z 和 T。谢谢!!!
【问题讨论】:
标签: cuda
N的总线程数由下式计算
N = No_blocks * No_threads_per_block
所以你每个块有A*B线程,所以你应该有Z*T=N/(A*B)。
Z 和 T 当然应该是整数,但不需要是 2 的幂。另外,取决于您的 CUDA 计算能力,网格的每个维度中的块数都有限制.
【讨论】:
Tesla C2075(计算能力 2.0)的 deviceQuery 结果:网格每个维度的最大尺寸:65535 x 65535 x 65535。所以我看不到使用 (11161,14) 的 gridDim, (8,8) 的 blockDim 有任何问题