I am working with nvcc 2.3(I knew it’s old…I knew.) currently. And I found a bug in this version. When I write code like
if (some_condition) variable = 1;
, and let variable = 0 before it execute in kernel. I suppose to make variable change to 1 if any thread found condition is tenable. But the compiler will generate ptx like variable = some_condition? 1 : 0 using a condition mov instruction. It has different meaning since some threads will write a zero into the variable now.
I guess newer compiler has fixed this bug. But I am not an admin so I can not install the new drivers which is needed by the newer compiler. Is there anyway I could deal with it? My program has dozen of such pattern.
BTW.I am working at a Red Hat 5.5.