Я делаю несколько вызовов cudamemset, чтобы установить мои значения в 0, как показано ниже:
void allocateByte( char **gStoreR,const int byte){
char **cStoreR = (char **)malloc(N * sizeof(char*));
for( int i =0 ; i< N ; i++){
char *c;
cudaMalloc((void**)&c, byte*sizeof(char));
cudaMemset(c,0,byte);
cStoreR[i] = c;
}
cudaMemcpy(gStoreR, cStoreR, N * sizeof(char *), cudaMemcpyHostToDevice);
}
Однако, это оказывается очень медленным. Есть ли на графическом процессоре функция memset, так как вызов из CPU занимает много времени. Кроме того, cudaMalloc ((void **) & c, byte * sizeof (char)) автоматически устанавливает биты, на которые указывает c, равным 0.