我见过这样的cudamemcpy例子:(cudaMemcpyAsync(m_haParticleID + m_OutputParticleStart、m_daOutputParticleID+ m_OutputParticleStart、size、cudaMemcpyDeviceToHost、m_CudaStream) --在上面的例子中,我无法理解cudaMemcpyDeviceToHost和cudaMemAsync的过程,有人能建议我“上面的代码是如何工作的吗?”
发布于 2014-06-11 01:58:53
cudaMemcpyAsync(m_haParticleID + m_OutputParticleStart,m_daOutputParticleID+ m_OutputParticleStart,size, cudaMemcpyDeviceToHost, m_CudaStream);
cudaMemcpyAsync
是一个cuda运行时API调用,它通常用于在GPU和主机之间传输数据。此api调用具有Async
后缀,因为必须使用cuda 流名称调用它,并立即将控制返回到主机线程(在实际开始传输之前)。这个函数的主要用途是在希望实现某种并发性的情况下,通常是在数据复制和GPU上的计算操作之间。cudaMemcpyDeviceToHost
指定了数据传输的方向。相同的api调用可用于从主机传输到设备,或从设备传输到主机。(它还可用于从设备内存中的一个位置传输到另一个位置。)memcpy
一样,第一个参数(m_haParticleID + m_OutputParticleStart
)是目标指针,第二个参数(m_daOutputParticleID+ m_OutputParticleStart
)是源指针。https://stackoverflow.com/questions/24153288
复制相似问题