我與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可能推出比對準/變形的緣故指定的多個線程的情況,所以我們需要每次檢查一次。 但是,到目前爲止,我沒有看到互聯網上的示例內核,他們實際上在進行此驗證。
CUDA實際上是否可以啓動比指定塊/網格尺寸更多的線程?