2016-11-17 26 views
0

cudaEventRecord takes an event ID and a stream ID as parameters。运行时API参考没有说明是否需要将流与当前设备关联 - 我无法测试是否是这种情况,因为我现在只能在任何有权访问的系统上使用一个GPU。cudaEventRecord是否受当前设备的身份影响?

假设它必须是当前设备上的数据流:

  • 如果它得到另一个设备上的数据流会发生什么?

假设它可以是任何设备上的数据流:

  • 时,它得到的(当前设备的)默认流的ID,会发生什么?毕竟,所有设备的默认流都具有相同的(空)ID?
  • 根据流的设备是否最新,行为是否存在差异?
+1

一些可能的相关信息是[here](http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#device-selection) –

+0

@RobertCrovella:这强烈暗示了答案我最初的问题是“不”。看到我的答案。 – einpoklum

回答

0

组合来自@Talonmies' answer的信息和@RobertCrovella挂在他的评论中CUDA C Programming GuideStream and Event Behavior section

是否必须将流与当前设备关联?

,它可以是任何设备。但是,事件记录确实要求流和事件与同一设备相关联。

根据流的设备是否为最新行为,行为是否存在差异?

通常情况下,没有,但是...

什么时,得到的(当前设备的)默认流的ID会发生什么?

...默认流是该规则的例外。由于(每个设备自身)默认流具有相同的ID,通过空ID,以cudaEventRecord意味着检查什么设备的当前设置,以确定哪些数据流来记录事件(这需要在同一个设备该事件与之相关联)。

相关问题