2016-11-17 67 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意味着檢查什麼設備的當前設置,以確定哪些數據流來記錄事件(這需要在同一個設備該事件與之相關聯)。

相關問題