CUDA绑定到数组的结构

时间:2018-04-05 09:08:28

标签: arrays struct binding cuda

我需要澄清有关该主题答案中给出的代码: CUDA cudaMemcpy Struct of Arrays

dev_s和dev_arr1(2和3)都在设备中分配。为什么使用cudaMemcpyHostToDevice标志?它应该是cudaMemcpyDeviceToDevice。

代码报告如下。

// NOTE: Binding pointers with dev_s
cudaMemcpy(&(dev_s->arr1), &dev_arr1, sizeof(dev_s->arr1),cudaMemcpyHostToDevice);
cudaMemcpy(&(dev_s->arr2), &dev_arr2, sizeof(dev_s->arr2),cudaMemcpyHostToDevice);
cudaMemcpy(&(dev_s->arr3), &dev_arr3, sizeof(dev_s->arr3),cudaMemcpyHostToDevice);

1 个答案:

答案 0 :(得分:2)

  

dev_s和dev_arr1(2和3)都在设备中分配。

正确。

  

为什么使用cudaMemcpyHostToDevice标志?它应该是   cudaMemcpyDeviceToDevice。

不正确的。

该代码正在将dev_arr1dev_arr2dev_arr3的指针从主机复制到设备。地址本身是GPU内存中的地址,但地址值存储在主机内存中,而不是设备内存中。