分析器是错误的,还是调度搞乱了,或者两者兼而有之?

时间:2017-10-27 00:23:18

标签: cuda cuda-streams

考虑以下计划:

max(Q['state1'].viewvalues())  # gets 89
max(Q['state1'])  # gets 'zone'

我在Fedora 25上使用CUDA 8.0.61在GTX Titan X上运行它,驱动程序为375.66。我看到的时间表是:

enter image description here

这张照片出了点问题:

  • 据我所知,一次只能进行一次HtoD转移。
  • 所有内存传输应该花费基本相同的时间 - 它们具有相同数量的数据; PCIe总线没有其他任何有趣的事情可以影响传输速率。
  • 一些DtoH栏就像他们一样伸展到另一个流上发生的事情。
  • 这个巨大的差距似乎没有计算机,也没有真正的I / O.即使所有以前完成的内核的DtoH占用了这个差距,这仍然会留下非常大的时间。这实际上看起来像是一个调度问题而不是分析错误。

那么,我该如何理解这个时间表呢?问题出在哪里? (希望不是程序员......)

我应该提一下,使用较少的流(例如2),时间轴在同一个SW + HW上看起来非常好:

enter image description here

0 个答案:

没有答案