Я новичок в программировании на Cuda. Я пытаюсь скопировать массив символов с хоста в единую память устройства. Код не выдает никаких ошибок, но показывает память устройства в виде пустых строк.
int main(int argc, char **argv)
{
int i = 0, n = 0;
unsigned char * buff;
char inp[512] = "abc";
n = 10;
while (i < n)
{
int num = i, size = 0;
while(num > 0)
{
++size;
num /= 10;
}
size += strlen(inp);
num = i;
inp[size--] = '\0';
while(num > 0)
{
inp[size--] = '0' + num%10;
num /= 10;
}
size = strlen(inp);
cudaMallocManaged(&buff, (size+1)*sizeof(char));
cudaMemcpyToSymbol(buff, &inp, sizeof(inp), 0, cudaMemcpyHostToDevice);
printf("%s\n", inp);
printf("%s\n", buff);
}
cudaDeviceReset();
return 0;
}
Это результат приведенного выше кода:
abc
abc1
abc12
abc123
abc1234
abc12345
abc123456
abc1234567
abc12345678
abc123456789
Пожалуйста, помогите мне.