最終更新: mikk_ni3_92 2010年03月03日(水) 16:54:26履歴
現在地 >> メニュー >> CUDA >> CUDA編02 >> CUDA編02::組み込み変数
dim3 grid(b,1,1);
dim3 block(a,1,1);
などのようにa、bの部分のみ変わる場合
dim3 block(a,1,1);
などのようにa、bの部分のみ変わる場合
スレッドId = blockIdx.x * blockDim.x + threadIdx.x
dim3 grid(b,c,1);
dim3 block(a,1,1);
などのようにa、b、cの部分のみ変わる場合
dim3 block(a,1,1);
などのようにa、b、cの部分のみ変わる場合
スレッドId = (blockIdx.y * gridDim.x + blockIdx.x) * blockDim.x + threadIdx.x
dim3 grid(c,d,1);
dim3 block(a,b,1);
などのようにa、b、c、dのが変わる場合
なおここまでになったら、
1次元配列風にアクセスしてもよいが、すなおに2つに分けた方がわかりやすい(と思う)。
dim3 block(a,b,1);
などのようにa、b、c、dのが変わる場合
スレッドId = threadIdx.x+blockDim.x*threadIdx.y + (blockIdx.x*blockDim.x*blockDim.y) + (blockIdx.y*blockDim.x*blockDim.y*gridDim.x)
なおここまでになったら、
1次元配列風にアクセスしてもよいが、すなおに2つに分けた方がわかりやすい(と思う)。
... ... unsigned int x = blockIdx.x*blockDim.x + threadIdx.x; unsigned int y = blockIdx.y*blockDim.y + threadIdx.y; ... ...