I was expecting the output statements to be in the same order as the device code snippet i.e one thread after the other. What causes the below observed output statement order ?
device code snippet:
printf(“threadIdx: %d,%d,%d\n”,threadIdx.x,threadIdx.y,threadIdx.z);
printf(“blockIdx: %d,%d,%d\n”,blockIdx.x,blockIdx.y,blockIdx.z);
printf(“blockDim: %d,%d,%d\n”,blockDim.x,blockDim.y,blockDim.z);
printf(“gridDim: %d,%d,%d\n”,gridDim.x,gridDim.y,gridDim.z);
Output:
threadIdx: 0,0,0
threadIdx: 1,0,0
threadIdx: 2,0,0
threadIdx: 0,0,0
threadIdx: 1,0,0
threadIdx: 2,0,0
blockIdx: 1,0,0
blockIdx: 1,0,0
blockIdx: 1,0,0
blockIdx: 0,0,0
blockIdx: 0,0,0
blockIdx: 0,0,0
blockDim: 3,1,1
blockDim: 3,1,1
blockDim: 3,1,1
blockDim: 3,1,1
blockDim: 3,1,1
blockDim: 3,1,1
gridDim: 2,1,1
gridDim: 2,1,1
gridDim: 2,1,1
gridDim: 2,1,1
gridDim: 2,1,1
gridDim: 2,1,1