but when I run it in -deviceemu mode and tried to print the contents of both these variables inside the kernel, I was getting all zeroes for smooth and smooth_local was correct.
I tried printing the output just after cudaMemcpyToSymbol still it was giving me 0’s.
You must declare GPU constant memory using the Cuda constant qualifier. I am pretty certain if you check the error status with cudaGetLastError after the cudaMemcpyToSymbol, you will find you are gettin an undefined symbol error.