__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