如果只有一些線程執行它,__syncthreads()會導致死鎖嗎?__syncthreads()死鎖
我有一個這樣的內核:
__global__ void Kernel(int N,int *a)
{
if(threadIdx.x<N)
{
for(int i=0;i<N;i++)
{
a[threadIdx.x]= //Some calculation using a and i
__syncthreads()
}
}
}
如果線程的塊的數量大於N越大,則一些線程將不會執行該代碼。這會導致僵局嗎?
如果是,那我該如何修改代碼?
它們可能會死鎖,並且非顯示CUDA設備沒有看門狗定時器,因此如果它們在這種情況下發生死鎖,它們將不會超時。 – harrism