2017-05-11 36 views
0

就像使用opengl共享緩衝區,而不是另一個opencl。就像將緩衝區遷移到另一個opencl上下文但沒有事件依賴關係一樣。OpenCL是否在OpenCL上下文之間共享上下文特性?

我找不到任何有關它的信息,但我需要將opencl緩衝區數據複製到另一個使用相同設備的opencl上下文緩衝區,並且我需要它遠離主機端副本。我需要設備端(來自/來自同一設備)的緩衝區副本。我正在使用的緩衝區還有許多事件附加到它們的操作中。

我正在處理的一個項目有多個上下文計算不同的內核與多個GPU使用雙緩衝管道,我試圖適應同一行爲,而不觸及pci-e橋。

+1

據我所知,這是不可能的。內存對象屬於單個上下文。 –

回答

1

由於內存是按上下文分配的,因此您無法直接在OpenCL上執行此操作。請注意,如果平臺支持同一上下文中可能有多個設備,並且同一上下文中的所有設備將共享相同的內存對象。 A migration queue operation允許在每個設備上對內存分配進行細粒度控制(儘管這不是必需的)。

當使用SYCL(基於OpenCL的Khronos標準)時,緩衝區是獨立於上下文的,並且運行時會在需要時通過上下文遷移數據。在這種情況下,運行時將選擇最合適的方法來跨上下文進行傳輸。例如,如果平臺具有特定於供應商的功能以有效地執行此操作,則運行時將利用它而不需要使用交互。

相關問題