cudaMemcpy - 将int从主机复制到设备错误

use*_*593 8 cuda

有什么区别

 cudaMemcpy and cudaMemset??
Run Code Online (Sandbox Code Playgroud)

如何将int值从主机复制到设备?这是我正在使用的代码

int addXdir = 1;
int devAddXdir;
cudaMalloc((void**)&devAddXdir, sizeof(int));
cudaMemcpy(devAddXdir, addXdir, sizeof(int), cudaMemcpyHostToDevice);
Run Code Online (Sandbox Code Playgroud)

它给出以下错误错误:类型"int"的参数与类型"void*"的参数不兼容错误:类型"int"的参数与类型"const void*"的参数不兼容

tal*_*ies 9

devAddXdir必须是该代码的指针才能工作.此外,您必须通过addXdir引用传递cudaMemcpy,而不是通过值传递.像这样:

int addXdir = 1;
int * devAddXdir;
cudaMalloc((void**)&devAddXdir, sizeof(int));
cudaMemcpy(devAddXdir, &addXdir, sizeof(int), cudaMemcpyHostToDevice);
Run Code Online (Sandbox Code Playgroud)