I am trying to set up three dimensional indexing using 2-D grid and 3-D blocks.
Following is indexing scheme used in my code:
LX=80; LY=80; LZ=32; TILE_I=8; TILE_J=8; TILE_K=4; dim3 grid = dim3(LX/TILE_I, LY/TILE_J); dim3 block = dim3(TILE_I, TILE_J, TILE_K ); int x = blockIdx.x*TILE_I + threadIdx.x; int y = blockIdx.y*TILE_J + threadIdx.y; int z = blockIdx.z*TILE_K + threadIdx.z; int idx= x+ y*LX+ z*LX*LY; idx is global indexing for any thread.
It is important for me to know each thread in (x,y,z) co-ordinate.
This indexing scheming works ok for first 6400 (80x80) elements, for the 2-D indexing, but something
is wrong with indexing in Z direction.
Could you please help me debug this indexing problem.