Possible Issue with Cuda 2.3 and __syncthreads() Emulation

Hi, i’ve started development in implementing a certain application into CUDA, and upon testing with emulation enabled, I come across Errors claiming i’m using syncthreads incorrectly. I know of others who have had the same results, and have found that syncthreads() cannot be emulated, but they have found no issues with a non-emulated compilations of the same program. Has anyone else come across this issue? I’ll comment more about my findings next week when I get a chance to test the code some more.

__syncthreads() can be emulated. In emulation mode, it is also checked if all threads hit the same __syncthreads() (they should!). If they don’t (due to some branching instructions) you get the error you are facing.
Hardware will not complain about this issue and will probably work correctly. This behaviour however is not documented and you should not rely on it. Something may crash in a week or in a year and at that time you will have no idea that this could be the source…