【问题标题】:cudaMemcpy - copy an int from host to device errorcudaMemcpy - 将 int 从主机复制到设备错误
【发布时间】:2011-09-09 02:44:21
【问题描述】:

有什么区别

 cudaMemcpy and cudaMemset??

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

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

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

【问题讨论】:

  • cudaMemcpy 和 cudaMemset 的区别在于一个取一个值作为源,另一个取一个指针。这种区别在两个函数的 API 文档中非常清楚。

标签: cuda


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-25
    • 2011-08-24
    • 1970-01-01
    • 2017-08-08
    • 2012-02-09
    • 2013-08-06
    相关资源
    最近更新 更多