对cuda函数block中thread的理解(2)

来源:互联网 发布:集成电路设计软件 编辑:程序博客网 时间:2024/05/01 09:51
#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);//12 threads , threadIdx x,y,z 反应f<<<1,test>>>();return 0;}

sum = 0gridDim.x = 1gridDim.x = 1gridDim.x = 1gridDim.x = 1gridDim.x = 1gridDim.x = 1gridDim.x = 1gridDim.x = 1gridDim.x = 1gridDim.x = 1gridDim.x = 1gridDim.x = 1gridDim.y = 1gridDim.y = 1gridDim.y = 1gridDim.y = 1gridDim.y = 1gridDim.y = 1gridDim.y = 1gridDim.y = 1gridDim.y = 1gridDim.y = 1gridDim.y = 1gridDim.y = 1gridDim.z = 1gridDim.z = 1gridDim.z = 1gridDim.z = 1gridDim.z = 1gridDim.z = 1gridDim.z = 1gridDim.z = 1gridDim.z = 1gridDim.z = 1gridDim.z = 1gridDim.z = 1blockDim.x = 3blockDim.x = 3blockDim.x = 3blockDim.x = 3blockDim.x = 3blockDim.x = 3blockDim.x = 3blockDim.x = 3blockDim.x = 3blockDim.x = 3blockDim.x = 3blockDim.x = 3blockDim.y = 2blockDim.y = 2blockDim.y = 2blockDim.y = 2blockDim.y = 2blockDim.y = 2blockDim.y = 2blockDim.y = 2blockDim.y = 2blockDim.y = 2blockDim.y = 2blockDim.y = 2blockDim.z = 2blockDim.z = 2blockDim.z = 2blockDim.z = 2blockDim.z = 2blockDim.z = 2blockDim.z = 2blockDim.z = 2blockDim.z = 2blockDim.z = 2blockDim.z = 2blockDim.z = 2threadIdx.x = 0threadIdx.x = 1threadIdx.x = 2threadIdx.x = 0threadIdx.x = 1threadIdx.x = 2threadIdx.x = 0threadIdx.x = 1threadIdx.x = 2threadIdx.x = 0threadIdx.x = 1threadIdx.x = 2threadIdx.y = 0threadIdx.y = 0threadIdx.y = 0threadIdx.y = 1threadIdx.y = 1threadIdx.y = 1threadIdx.y = 0threadIdx.y = 0threadIdx.y = 0threadIdx.y = 1threadIdx.y = 1threadIdx.y = 1threadIdx.z = 0threadIdx.z = 0threadIdx.z = 0threadIdx.z = 0threadIdx.z = 0threadIdx.z = 0threadIdx.z = 1threadIdx.z = 1threadIdx.z = 1threadIdx.z = 1threadIdx.z = 1threadIdx.z = 1blockIndx.x = 0blockIndx.x = 0blockIndx.x = 0blockIndx.x = 0blockIndx.x = 0blockIndx.x = 0blockIndx.x = 0blockIndx.x = 0blockIndx.x = 0blockIndx.x = 0blockIndx.x = 0blockIndx.x = 0blockIndx.y = 0blockIndx.y = 0blockIndx.y = 0blockIndx.y = 0blockIndx.y = 0blockIndx.y = 0blockIndx.y = 0blockIndx.y = 0blockIndx.y = 0blockIndx.y = 0blockIndx.y = 0blockIndx.y = 0blockIndx.z = 0blockIndx.z = 0blockIndx.z = 0blockIndx.z = 0blockIndx.z = 0blockIndx.z = 0blockIndx.z = 0blockIndx.z = 0blockIndx.z = 0blockIndx.z = 0blockIndx.z = 0blockIndx.z = 0

0 0