Dear all,
I encounter a problem that the output will be incorrect after increasing the size of Grid or Block.
My setting is pasted as follow:
const int BLOCK = 512;
int THREAD = static_cast(ceilf(sqrt(static_cast(VOLEX_RESOLUTION * VOLEX_RESOLUTION * VOLEX_RESOLUTION) / BLOCK)));
dim3 grid(THREAD, THREAD, 1);
dim3 threads(BLOCK, 1, 1);
gpu_depthGridCalculation << <grid, threads >> > (dev_srcImgs, dev_cameraParameters, dev_volexGrid, imgRows, imgHeight, paraRows, paraCols);
int tid = threadIdx.x + threadIdx.y * blockDim.x + threadIdx.z * blockDim.x * blockDim.y + (blockIdx.x + blockIdx.y * gridDim.x + blockIdx.z * gridDim.x * gridDim.y) * blockDim.x * blockDim.y * blockDim.z;
When I set “BLOCK = 512, VOLEX_RESOLUTION = 200”, the result is correct.
However, when I set “BLOCK = 1024, VOLEX_RESOLUTION = 200” and “BLOCK = 512, VOLEX_RESOLUTION = 300”, there are no any output. It seems the GPU processing does not work at all.
Is there anyone can give me some clues for this problem?
Thank you very much for the help.