Hey there, I have the following piece of code:
#if USE_CONST == 1 __constant__ double PNT[ SIZE ]; #else __device__ double *PNT; #endif and a bit later I have:
#if USE_CONST == 0 cudaMalloc((void **)&PNT, sizeof(double)*SIZE); cudaMemcpy(PNT, point, sizeof(double)*SIZE, cudaMemcpyHostToDevice); #else cudaMemcpyToSymbol(PNT, point, sizeof(double)*SIZE); #endif whereas point is somewhere defined in the code before. When working with USE_CONST=1 everything works as expected, but when working without it, than it doesn't. I access the array in my kernel-function via
PNT[ index ]
Where's the problem between the both variants? Thanks!