Was fretting over unexpected behavior in a program and finally realized the atomicExch function was behaving oddly. Seemed like it worked for one or two iterations but then stopped updating the value at all, ie. did nothing. This continued even when I (for debugging) made sure no two threads where using it on the same address. I replaced atomicExch with a non-atomic update and suddenly had exactly the behavior I expected.
Any ideas what this could be about?
nvcc 2.0, tesla t10 something of compute capability 1.3.