cudaMemcpyAsync()并非真的Async

最近好奇,cudaMemcpyAsync()这个函数相对于Host端是否真的的异步的。 

简单测试了一下,发现有些时候并非是异步的。

通过阅读文档发现,cudaMemcpyAsync()是否异步遵循以下定义。

通过以上文档说明,对于cudaMemcpyAsync(), Host端pinned memory是必须的(与函数参数说明中一直)。

非pinned memory的情况下,不是同步的,就是需要将pageable memory转化成pinned memory,之后再异步,非常耗时。

 


版权声明:本文为zjy1175044232原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。