Skip to content

Conversation

@stotko
Copy link

@stotko stotko commented May 29, 2020

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.

@FishHe
Copy link

FishHe commented Jun 1, 2020

Awesome! This fix should definitely be accepted.

@vabook
Copy link

vabook commented Dec 20, 2021

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!

@sysu17363087
Copy link

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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants