cudaMemcpy总是返回给我cudaErrorInvalidValue

时间:2016-05-06 09:34:19

标签: cuda gpu gpgpu

我有一个针对cudaMalloc功能使用的问题。实际上,它总是返回一个“cudaErrorInvalidValue”错误,即使在一个非常简单的情况下,如下例所示:

cudaError_t error;
int hostTest = 12;
int* deviceTest = NULL;
error = cudaMemcpy(deviceTest, &hostTest, sizeof(int), cudaMemcpyHostToDevice);

然而,cudaMalloc效果很好。这很奇怪。 我的构建配置为计算功能v5.0(compute_50,sm_50),我的显卡是Geforce GTX 960M。

1 个答案:

答案 0 :(得分:2)

在此示例中,您需要使用cudaMalloc分配内存并将其返回的指针分配给deviceTest,因为此变量意味着指向设备中的内存。

这样的事情可以解决问题

 int hostTest = 12;
 int *deviceTest;
 cudaMalloc((void **)&deviceTest,sizeof(int));
 cudaMemcpy(deviceTest, &hostTest,sizeof(int),cudaMemcpyHostToDevice);