Comple sucessed, but get wrong result
BaldrLector opened this issue · comments
Hi @dgrzech , thanks for your kindly sharing of the source code, it really helps me.
However, when I compile the code and try to run it at the umbrella dataset, I find the wrong result will be produced.
Is the data need any pre-processing?
Thanks for your reply in advance, I very much appreciate it.
@BaldrLector were you able to resolve the issue?
I added a print function at line 99 of marching_cubes.cu which somehow made the module work. Below is the result on frame 116.
Without adding the print function, I am getting illegal memory access because the number of active voxels would be 0. I am fairly new to CUDA programming but my assumption is that we are facing some synchronization issue where a GPU thread is accessing some part of memory not initialized.
Adding a print function is just a hack that has significantly increased the computation time. It would be very helpful if @dgrzech could look at it.
I am running the application on
OS: Ubuntu 18.04
g++: 7.5.0
GPU: NVIDIA 1060 (6GB)
Nvidia Driver Version: 450.102.04
CUDA Version: 11.0
Thanks.
I met this issue too. Thanks for @shubhMaheshwari 's help, adding a print function or __syncthreads()
at line 99 of marching_cubes.cu is helpful, though I can't locate the problem.
btw I also run dynamicfusion and dynfu, and getting emtpy volume. The number of active voxels is 0. These 3 code base on the similar kfusion
module. So I think these are caused by similar reason, but adding a print function at the same position is not helpful to dynamicfusion and dynfu.
My CUDA version is 10.2 .