首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >理解cudaMemcpyDeviceToHost

理解cudaMemcpyDeviceToHost
EN

Stack Overflow用户
提问于 2014-06-11 01:21:20
回答 1查看 549关注 0票数 0

我见过这样的cudamemcpy例子:(cudaMemcpyAsync(m_haParticleID + m_OutputParticleStart、m_daOutputParticleID+ m_OutputParticleStart、size、cudaMemcpyDeviceToHost、m_CudaStream) --在上面的例子中,我无法理解cudaMemcpyDeviceToHost和cudaMemAsync的过程,有人能建议我“上面的代码是如何工作的吗?”

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-11 01:58:53

代码语言:javascript
运行
复制
cudaMemcpyAsync(m_haParticleID + m_OutputParticleStart,m_daOutputParticleID+ m_OutputParticleStart,size, cudaMemcpyDeviceToHost, m_CudaStream);
  1. cudaMemcpyAsync是一个cuda运行时API调用,它通常用于在GPU和主机之间传输数据。此api调用具有Async后缀,因为必须使用cuda 名称调用它,并立即将控制返回到主机线程(在实际开始传输之前)。这个函数的主要用途是在希望实现某种并发性的情况下,通常是在数据复制和GPU上的计算操作之间。
  2. cudaMemcpyDeviceToHost指定了数据传输的方向。相同的api调用可用于从主机传输到设备,或从设备传输到主机。(它还可用于从设备内存中的一个位置传输到另一个位置。)
  3. memcpy一样,第一个参数(m_haParticleID + m_OutputParticleStart)是目标指针,第二个参数(m_daOutputParticleID+ m_OutputParticleStart)是源指针。
  4. 第三个参数是要传输的字节数。
  5. 最后一个参数是cuda流指示符。转移将发生在该流中以前的任何cuda函数之后,以及随后向该流发出的任何cuda函数之前。也就是说,向特定流发出的cuda调用是在流中相对于彼此序列化的。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24153288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档