cudaEventRecord是否受当前设备标识的影响



cudaEventRecord以事件ID和流ID作为参数。运行时API参考并没有说明流是否需要与当前设备相关联-并且我无法测试是否存在这种情况,因为我在任何系统上最多只有一个GPU我现在可以访问。

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

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

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

  • 当它得到(当前设备的)默认流的ID时会发生什么?毕竟,所有设备的默认流都有相同的(空)ID?
  • 是否有任何不同的行为基于流的设备是否是当前的?

结合@Talonmies的回答和@RobertCrovella在他的评论中链接的CUDA C编程指南的流和事件行为部分的信息

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

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

基于流的设备是否为当前的行为是否有任何差异?

通常不,但是…

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

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

相关内容

  • 没有找到相关文章

最新更新