I have created 64 x 64 x 64 volume data as 8 bit raw file and then I have used marching cube within Cuda.
It works great but slower than 32 x 32 x 32 version.
I guess because 64 X 64 X 64 has double amount of Voxels.
Now for example if I have a .raw data dimension is 512 x 512 x 284
then how I should chose threads number and block numbers.
For example for 32 version I used 128 threads and for 64 version I used 256.
I am still not clear how I should decide my threads number .
for 512 X 512 X 284, do I need to use voxel of dimention 512 X 512 X 284 ?
Please some one explain me a bit about lines below.
How I should decide threads number, is it related to voxel dimension?
computeIsosurface()
{
int threads = 256; //128;
dim3 grid(numVoxels / threads, 1, 1);
// get around maximum grid size of 524287 in each dimension
if (grid.x >524287) //65535)
{
grid.y = grid.x / 262144;
grid.x = 262144;
}