BundleFusion icon indicating copy to clipboard operation
BundleFusion copied to clipboard

Fix GPU hangs in SiftGPU

Open stotko opened this issue 5 years ago • 3 comments

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.

stotko avatar May 29 '20 12:05 stotko

Awesome! This fix should definitely be accepted.

FishHe avatar Jun 01 '20 08:06 FishHe

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!

vabook avatar Dec 20 '21 12:12 vabook

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?

sysu17363087 avatar Dec 27 '22 12:12 sysu17363087