您的位置:首页 > 其它

对cuda函数grid中的block的理解(1)

2017-02-20 12:37 281 查看
#include<stdio.h>

int sum = 0;

__global__ void f(){

printf("gridDim.x = %d\n",gridDim.x);
printf("gridDim.y = %d\n",gridDim.y);
printf("gridDim.z = %d\n",gridDim.z);
printf("blockDim.x = %d\n",blockDim.x);
printf("blockDim.y = %d\n",blockDim.y);
printf("blockDim.z = %d\n",blockDim.z);
printf("threadIdx.x = %d\n",threadIdx.x);
printf("threadIdx.y = %d\n",threadIdx.y);
printf("threadIdx.z = %d\n",threadIdx.z);
printf("blockIndx.x = %d\n",blockIdx.x);
printf("blockIndx.y = %d\n",blockIdx.y);
printf("blockIndx.z = %d\n",blockIdx.z);

}

int main(){
printf("sum = %d\n",sum);
dim3 test(3,2,2);//总共3*2*2=12个block <<<grid中block的布局,block中thread的布局>>> 下面调用test代表grid布局包含block的布局(x,y,z)
f

return 0;
}

sum = 0
gridDim.x = 3
gridDim.x = 3
gridDim.x = 3
gridDim.x = 3
gridDim.x = 3
gridDim.x = 3
gridDim.x = 3
gridDim.x = 3
gridDim.y = 2
gridDim.y = 2
gridDim.y = 2
gridDim.y = 2
gridDim.y = 2
gridDim.y = 2
gridDim.y = 2
gridDim.y = 2
gridDim.z = 2
gridDim.z = 2
gridDim.z = 2
gridDim.z = 2
gridDim.z = 2
gridDim.z = 2
gridDim.z = 2
gridDim.z = 2
blockDim.x = 1
blockDim.x = 1
blockDim.x = 1
blockDim.x = 1
blockDim.x = 1
blockDim.x = 1
blockDim.x = 1
blockDim.x = 1
blockDim.y = 1
blockDim.y = 1
blockDim.y = 1
blockDim.y = 1
blockDim.y = 1
blockDim.y = 1
blockDim.y = 1
blockDim.y = 1
blockDim.z = 1
blockDim.z = 1
blockDim.z = 1
blockDim.z = 1
blockDim.z = 1
blockDim.z = 1
blockDim.z = 1
blockDim.z = 1
threadIdx.x = 0
threadIdx.x = 0
threadIdx.x = 0
threadIdx.x = 0
threadIdx.x = 0
threadIdx.x = 0
threadIdx.x = 0
threadIdx.x = 0
threadIdx.y = 0
threadIdx.y = 0
threadIdx.y = 0
threadIdx.y = 0
threadIdx.y = 0
threadIdx.y = 0
threadIdx.y = 0
threadIdx.y = 0
threadIdx.z = 0
threadIdx.z = 0
threadIdx.z = 0
threadIdx.z = 0
threadIdx.z = 0
threadIdx.z = 0
threadIdx.z = 0
threadIdx.z = 0
blockIndx.x = 1
blockIndx.x = 1
blockIndx.x = 0
blockIndx.x = 0
blockIndx.x = 2
blockIndx.x = 2
blockIndx.x = 0
blockIndx.x = 0
blockIndx.y = 0
blockIndx.y = 1
blockIndx.y = 1
blockIndx.y = 1
blockIndx.y = 0
blockIndx.y = 1
blockIndx.y = 0
blockIndx.y = 0
blockIndx.z = 0
blockIndx.z = 0
blockIndx.z = 0
blockIndx.z = 1
blockIndx.z = 0
blockIndx.z = 0
blockIndx.z = 1
blockIndx.z = 0
gridDim.x = 3
gridDim.x = 3
gridDim.x = 3
gridDim.x = 3
gridDim.y = 2
gridDim.y = 2
gridDim.y = 2
gridDim.y = 2
gridDim.z = 2
gridDim.z = 2
gridDim.z = 2
gridDim.z = 2
blockDim.x = 1
blockDim.x = 1
blockDim.x = 1
blockDim.x = 1
blockDim.y = 1
blockDim.y = 1
blockDim.y = 1
blockDim.y = 1
blockDim.z = 1
blockDim.z = 1
blockDim.z = 1
blockDim.z = 1
threadIdx.x = 0
threadIdx.x = 0
threadIdx.x = 0
threadIdx.x = 0
threadIdx.y = 0
threadIdx.y = 0
threadIdx.y = 0
threadIdx.y = 0
threadIdx.z = 0
threadIdx.z = 0
threadIdx.z = 0
threadIdx.z = 0
blockIndx.x = 1
blockIndx.x = 2
blockIndx.x = 1
blockIndx.x = 2
blockIndx.y = 1
blockIndx.y = 0
blockIndx.y = 0
blockIndx.y = 1
blockIndx.z = 1
blockIndx.z = 1
blockIndx.z = 1
blockIndx.z = 1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: