相关疑难解决方法(0)

条件syncthreads和死锁(或不)

跟进Q:EarlyExitDroppedThreads

根据以上链接,下面的代码应该是死锁.
请解释为什么这不会死锁.(费米的Cuda 5)

__device__ int add[144];
__device__ int result;

add<<<1,96>>>();  // the calling 

__global__ void add() {
 for(idx=72>>1; idx>0; idx>>=1) {
  if(thrdIdx < idx) 
   add[thrdIdx]+= add[thrdIdx+idx];
  else
   return;
  __syncthreads();
 }

 if(thrdIdx == 0)
  result= add[0];
}
Run Code Online (Sandbox Code Playgroud)

cuda

6
推荐指数
1
解决办法
1584
查看次数

标签 统计

cuda ×1