【发布时间】:2018-01-07 18:21:29
【问题描述】:
我是 CUDA 的初学者,我的同事总是使用以下包装设计内核:
__global__ void myKernel(int nbThreads)
{
int threadId = blockDim.x*blockIdx.y*gridDim.x //rows preceeding current row in grid
+ blockDim.x*blockIdx.x //blocks preceeding current block
+ threadIdx.x;
if (threadId < nbThreads)
{
statement();
statement();
statement();
}
}
他们认为在某些情况下 CUDA 可能会启动比指定更多的线程来进行对齐/扭曲,因此我们需要每次都检查它。 但是,到目前为止,我还没有在 Internet 上看到他们实际执行此验证的示例内核。
CUDA 真的可以启动比指定块/网格尺寸更多的线程吗?
【问题讨论】:
标签: cuda