1
我在CUDA中使用了全局2d數組變量,並試圖對此全局變量使用累加。但是當我重新運行代碼時,它從最後一次運行的值開始。例如,如果值是50,在過去運行下一次運行會顯示100它並不值重置爲0。如何重置CUDA全局變量
__device__ double *d_t;
__device__ size_t d_gridPitch;
__global__ void kernelFunc()
{
int i = blockIdx.x * blockDim.x + threadIdx.x
double* rowt = (double*)((char *)d_t + i * d_gridPitch);
rowt[0] = rowt[0] + 50000;
printf("%.0f, ",rowt[0]);
}
int main()
{
int size = 16;
size_t d_pitchLoc;
double *d_tLoc;
cudaMallocPitch((void**)&d_tLoc, &d_pitchLoc, size * sizeof(double), size);
cudaMemcpyToSymbol(d_gridPitch, &d_pitchLoc, sizeof(int));
cudaMemcpyToSymbol(d_t, & d_tLoc, sizeof(d_tLoc));
kernelFunc<<<1,size>>>();
cudaDeviceReset();
return 0;
}