cudaEventRecord是否受当前设备身份的影响?

时间:2016-11-17 20:47:55

标签: cuda multi-gpu cuda-events

cudaEventRecord takes an event ID and a stream ID as parameters。 Runtime API参考没有说明是否需要将流与当前设备相关联 - 我无法测试是否是这种情况,因为我现在只能访问任何系统上最多只有一个GPU。

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

  • 如果它在另一台设备上获得流,会发生什么?

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

  • 获取(当前设备)默认流的ID后会发生什么?毕竟,所有设备的默认流都具有相同的(空)ID?
  • 根据流的设备是否为当前的行为是否存在差异?

1 个答案:

答案 0 :(得分:1)

结合来自@ Talonmies'的信息answer以及@RobertCrovella在评论中链接到的Stream and Event Behavior sectionCUDA C Programming Guide

  

流必须与当前设备相关联吗?

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

  

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

通常,不,但......

  

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

...默认流是该规则的一个例外。由于(每个设备自己的)默认流具有相同的ID,因此将空ID传递给cudaEventRecord意味着它检查当前设置的设备以确定记录事件的流(并且这需要与事件关联的设备相同)。