cudaEventRecord takes an event ID and a stream ID as parameters。 Runtime API参考没有说明是否需要将流与当前设备相关联 - 我无法测试是否是这种情况,因为我现在只能访问任何系统上最多只有一个GPU。
假设它必须是当前设备上的流:
假设它可以是任何设备上的流:
答案 0 :(得分:1)
结合来自@ Talonmies'的信息answer以及@RobertCrovella在评论中链接到的Stream and Event Behavior section的CUDA C Programming Guide。
流必须与当前设备相关联吗?
否,它可以是任何设备。但是,事件记录确实要求流和事件与同一设备相关联。
根据流的设备是否是最新的行为是否存在差异?
通常,不,但......
当获得(当前设备的)默认流ID时会发生什么?
...默认流是该规则的一个例外。由于(每个设备自己的)默认流具有相同的ID,因此将空ID传递给cudaEventRecord
意味着它将检查当前设置的设备以确定记录事件的流(并且这需要与事件关联的设备相同)。