测量cudaMemcpy时钟周期

时间:2014-06-03 21:25:35

标签: cuda gpu clock

我想知道如何衡量在cudaMemcpy中花费的时钟周期。

  • 如果cudaMemcpy只使用CPU,那就没关系,我只需要测量CPU时钟。

  • 但如果它使用GPU,我如何衡量副本中花费的时钟周期?

1 个答案:

答案 0 :(得分:2)

cudaMemcpy是一个函数,最终由GPU驱动程序提供服务,该驱动程序设置DMA操作以在主机和GPU之间传输数据。 GPU驱动程序是主机代码,因此您可以使用基于主机的方法或cudaEvent系统来计算持续时间。 cudaMemcpy

异步版本,例如cudaMemcpyAsync通常不能自己定时,因为它们设置了DMA操作,然后立即返回调用线程(在主机上)。 DMA操作发生一段时间后。因此,您需要插入其他同步(例如cudaDeviceSynchronize())来计算这些同步的持续时间。由于这通常不是您想要的,因此在这种情况下通常的建议是使用cudaEvent系统或profiling tools之一。