【发布时间】:2014-05-10 10:36:52
【问题描述】:
我正在尝试将一组无符号整数(msgs)复制到 GPU 上以对其进行处理,但以下代码并未复制任何内容。我在 cudaMemcpy 调用周围添加了一些 cuda 错误检查代码,我得到以下信息:invalid argument。
...
unsigned int *device_msgs;
size_t size_msgs = (size_t)(16*num_msgs);
cudaMalloc((void **) &device_msgs, size_msgs);
cudaMemcpy(device_msgs, msgs,
sizeof(unsigned int)*16*num_msgs,
cudaMemcpyHostToDevice);
...
我将cudaMalloc 包装在相同的错误检查代码中,那里似乎没有任何问题。实际的内核调用导致相同的invalid argument cuda 错误,但这可能与memCpys 有关,因为我正在传递设备指针。有人知道这里发生了什么吗?
编辑:需要明确的是,msgs 事先已正确 malloc'd。
【问题讨论】: