【问题标题】:Is cudaEventRecord affected by the identity of the current device?cudaEventRecord 是否受当前设备的身份影响?
【发布时间】:2017-04-01 13:47:45
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 一些可能相关的信息是here
  • @RobertCrovella:这强烈暗示我最初的问题的答案是“否”。看我的回答。

标签: cuda multi-gpu cuda-events


【解决方案1】:

结合@Talonmies 的answer 和@RobertCrovella 在他的评论中链接的CUDA C Programming GuideStream and Event Behavior section 的信息。

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

,可以是任何设备。但是,事件录制确实需要将流和事件关联到同一设备。

根据流的设备是否为当前设备,行为是否有任何差异?

通常不会,但是...

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

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

【讨论】:

    猜你喜欢
    • 2013-12-03
    • 2022-01-15
    • 2011-09-10
    • 1970-01-01
    • 1970-01-01
    • 2017-08-17
    • 2013-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多