2012-02-10 68 views
0

假設我在一臺機器上有多個GPU,並且我有一個在GPU0上運行的內核。multi-gpu cuda:在一臺設備上運行內核並在另一臺設備上修改內核?

有了CUDA 4.0的UVA和P2P特性,我可以在GPU0上運行內核時,在另一臺設備上修改數組的內容嗎?

CUDA 4.0 SDK中的simpleP2P示例沒有證明這一點。

它僅表明:

  • 對等網絡memcopies
  • 內核上GPU0運行的讀取從GPU1輸入緩衝器和寫入輸出到GPU0緩衝器

  • 內核在GPU1上運行,其中讀取從GPU0緩衝區輸入並將輸出寫入GPU1緩衝區

+0

您是否試圖問一個GPU上的內核是否可以寫入通過UVA和P2P在物理上位於不同GPU上的全局內存? – talonmies 2012-02-10 18:20:44

回答

1

簡答:是的,你可以。

Longer answer

的鏈接呈現給全部細節,但這裏的要求是:

  • 必須是在64位操作系統(Linux或Windows操作系統與特斯拉計算羣集驅動器)。
  • GPU必須都是Compute Capability 2.0(sm_20)或更高。
  • 目前GPU必須連接到相同的IOH

您可以使用cudaDeviceCanAccessPeer()查詢是否可以直接進行P2P訪問。

相關問題