Если вы хотите только обнулить память, то cudaMemset
, вероятно, самый простой способ сделать это. Например:
const int n = 10000000;
const int sz = sizeof(float) * n;
float *devicemem;
cudaMalloc((void **)&devicemem, sz);
kernel<<<...>>>(devicemem,....);
cudaMemset(devicemem, 0, sz); // zeros all the bytes in devicemem
kernel<<<...>>>(devicemem,....);
Обратите внимание, что значение cudaMemset
принимает значение байт , и все байты в указанном диапазоне устанавливаются на это значение, как и стандартный C memset
. Если у вас есть конкретное значение word , вам потребуется написать собственное ядро memset для назначения значений.