1
我在多個GPU上運行相同的CUDA內核,並打算同時使用流。需要在啓動具有唯一流ID的內核之前調用cudaSetDevice
?如果沒有,很好,但如果是這樣,我想我需要以某種方式全球同步電話cudaSetDevice
。在使用流啓動內核之前是否需要調用cudaSetDevice?
請注意,我正在通過同步調用cudaSetDevice
來創建流,以確保流與特定的GPU相關聯。
我在多個GPU上運行相同的CUDA內核,並打算同時使用流。需要在啓動具有唯一流ID的內核之前調用cudaSetDevice
?如果沒有,很好,但如果是這樣,我想我需要以某種方式全球同步電話cudaSetDevice
。在使用流啓動內核之前是否需要調用cudaSetDevice?
請注意,我正在通過同步調用cudaSetDevice
來創建流,以確保流與特定的GPU相關聯。
+1,但哎喲 - 不那種失敗(一些)流的實用性,因爲你必須同步cudaSetDevice和mykernel >>從啓動線程中>>>> – Andy
你不能在啓動內核之前執行'cudaSetDevice'嗎?我看不出有什麼問題。我以前沒有聽到過這種反對意見。 –
是和否 - 如果一切都從同一個線程啓動 - 沒有問題。如果有多個線程正在啓動,那麼您有以下風險:(thread1)cudaSetDevice(1) - >安排到thread2-> cudaSetDevice(2) - >安排回thread1-> mykernel <<<> >>如果set-launch塊不是同步。 – Andy