BundleFusion
BundleFusion copied to clipboard
Fix GPU hangs in SiftGPU
Running BundleFusion on a RTX graphics card causes the GPU to hang due to thread synchronization bugs (see #51). For some reason, this problem does not occur on previous graphics cards.
Fix the synchronization bugs in the __global__ void ComputeOrientation_Kernel(...) by replacing the conditional __syncthreads() calls with unconditional ones. Thread synchronization requires that all threads reach the call, otherwise the GPU hangs and waits for the remaining ones, which will of course never happen due to the if condition.
Awesome! This fix should definitely be accepted.
I have fixed this problem for one week,in the environment of "Windows10 CUDA10.1 VS2017 GTX1650",I comment all __syncthreads() , it didn't work ,then I try again in the environement of "Windows10 CUDA8.0 VS2013 GTX1650",it works well ,thank you!
I have fixed this problem for one week,in the environment of "Windows10 CUDA10.1 VS2017 GTX1650",I comment all __syncthreads() , it didn't work ,then I try again in the environement of "Windows10 CUDA8.0 VS2013 GTX1650",it works well ,thank you!
i am wondering that did you comment all __syncthreads() in ProgramCU.cu or just the ones in ComputerOrientation_Kernel() functions?