1

我正在使用:cudaMemcpy2DArrayToArray()。这个函数还有异步对应的吗?cudaMemcpy2DArrayToArrayAsync() 存在,不存在。我想避免我的 cuda 操作的隐式同步。

4

1 回答 1

1

其他 10 个左右的 cudaMemcpy*() 调用都有一个异步版本,所以我的猜测是这个调用是以某种方式实现的,它阻止了一个完全异步的版本。但是请注意,文档说“此函数在大多数用例中表现出同步行为”,因此,它们似乎意味着:

  1. 对于从可分页主机内存到设备内存的传输,在启动复制之前执行流同步。一旦可分页缓冲区已复制到暂存内存以进行 DMA 传输到设备内存,该函数将返回,但到最终目的地的 DMA 可能尚未完成。

  2. 对于从固定主机内存到设备内存的传输,该函数相对于主机是同步的。

  3. 对于从设备到可分页或固定主机内存的传输,该函数仅在复制完成后返回。

  4. 对于从设备内存到设备内存的传输,不执行主机端同步。

  5. 对于从任何主机存储器到任何主机存储器的传输,该函数相对于主机是完全同步的。

于 2013-04-18T01:30:32.447 回答