__global__ void bcast(int args)
{
int laneId = threadIdx.x & 0x1f;
int value = 31 - laneId;
if(threadIdx.x<8)
{
value = args;
value= __shfl_down_sync(0xfffffff, value, 8,16);
printf("threadIdx.x:%d value is %d.\n", threadIdx.x, value);
}
printf("threadIdx.x:%d value is %d.\n", threadIdx.x,value);
}
对于一个warp前8个线程来说,最后一个printf有和没有,结果完全是两个结果.
过段时间再来填坑,这个坑让我不得不记录一下