I am new to cuda and c++ programming. I have a kernel where I define a shared variable as: shared int idx. When I build the code and inspect the ptx file, it states the variable has been demoted, and defines it as: .shared .align 4 .u32 _ZZ21GenerateMaskBlockReadE3idx. Can anyone please tell me in what way has this variable been demoted?
The only thing I could think of is perhaps it is referring to the compiler making it an unsigned int instead of signed int, but when I tried changing the definition in my kernel to unsigned int it still gave the same demote variable message.
In general, when will the compiler demote a variable? I have another kernel code that does not execute properly. Inspection of the ptx file indicates a shared int array is being demoted to a char array, which, if so, would cause it to overflow.