CudaMemcpyDeviceToHost失败,错误代码未指定启动失败

时间:2015-12-06 01:54:49

标签: c cuda

我在主机中有一个bool,它被复制到设备,然后循环复制回主机。这是我的代码。

bool h_done = true;
bool* d_done;

    while(h_done != false){

      err = cudaMemcpy(d_done, &h_done, sizeof(bool), cudaMemcpyHostToDevice);
      ......
      bfs<<<blocksPerGrid, threadsPerBlock>>>(h_edges, h_vertices, d_current_depth, d_done);
      err = cudaMemcpy(&h_done, d_done, sizeof(bool), cudaMemcpyDeviceToHost);
     ......
     }

代码在bool必须从设备复制回主机的位置失败,并出现以下错误。

Failed to copy d_done to host(error code unspecified launch failure)!

我在这里做错了什么。

1 个答案:

答案 0 :(得分:-1)

也许您在其他地方这样做,但根据您提供的代码,您没有这样做:

d_done=(bool *)cudaMalloc(sizeof(bool))


这里有其他很好的例子:
https://docs.nvidia.com/cuda/cuda-c-programming-guide/#device-memory