user570593
user570593

Reputation: 3510

cudaMemcpy - copy an int from host to device error

What is the difference between

 cudaMemcpy and cudaMemset??

How can I copy an int value from host to device? This is the code I am using

int addXdir = 1;
int devAddXdir;
cudaMalloc((void**)&devAddXdir, sizeof(int));
cudaMemcpy(devAddXdir, addXdir, sizeof(int), cudaMemcpyHostToDevice);

it gives the following errors error: argument of type "int" is incompatible with parameter of type "void *" error: argument of type "int" is incompatible with parameter of type "const void *"

Upvotes: 9

Views: 19451

Answers (1)

talonmies
talonmies

Reputation: 72349

devAddXdir must be a pointer for that code to work. Also, you must pass addXdir by reference to cudaMemcpy, not by value. Like this:

int addXdir = 1;
int * devAddXdir;
cudaMalloc((void**)&devAddXdir, sizeof(int));
cudaMemcpy(devAddXdir, &addXdir, sizeof(int), cudaMemcpyHostToDevice);

Upvotes: 13

Related Questions