我有兩個關於CUDA 4.0對接入問題:CUDA 4.0點對點訪問混亂
有什麼辦法,我可以像
GPU#0 ---> GPU#1 ---> GPU#2 ---> GPU#3
複製數據。目前在我的代碼中,當我一次只使用兩個GPU時它工作正常,但當我使用cudaDeviceCanAccessPeer
檢查第三個GPU上的對等訪問時失敗。因此,以下工作 -cudaDeviceCanAccessPeer(&flag_01, dev0, dev1)
,但是當我有兩個這樣的語句:cudaDeviceCanAccessPeer(&flag_01, dev0, dev1)
和cudaDeviceCanAccessPeer(&flag_12, dev1, dev2)
,後面的失敗(0返回到flag_12變量)。只適用於通過公共PCIe連接的GPU嗎?是對等副本是否依賴於基礎PCIe互連?我不明白的PCIe,但在做了nvidia-SMI我看到GPU的PCIe總線是2,3,83和84
該試驗檯是一款雙插槽6核Intel Westmere處理器,擁有4 GPU - Nvidia Tesla C2050。
編輯:HtoD和DtoH,和兩個GPU(DtoD)之間SimpleP2P結果之間 Bandwidthtest:
你會得到什麼錯誤?請注意,您使用'cudaDeviceEnablePeerAccess()'啓用對等訪問,而不是'cudaDeviceCanAccessPeer' - 後者用於查詢。 – harrism
我首先通過'cudaDeviceCanAccessPeer'檢查兩臺設備是否可以是對等設備,然後通過'cudaDeviceEnablePeerAccess()'啓用對等設備訪問。當我嘗試檢查時,'cudaDeviceCanAccessPeer'返回一個錯誤,在檢查0,1後說設備1,2 ......當我只是堅持兩個設備時一切都很好,但是當我包含更多設備時,我會被標記出來。 – Sayan
你得到了什麼錯誤代碼? – harrism