2013-02-01 45 views
0

多個內核,當我使用多個內核中opencl使得第一核心(K1)執行的結果被輸入到第二內核(K2)執行,所以兩個問題是:查詢有關的OpenCL

  1. 事件應是對於每個不同的內核還是應該是一樣的 每個內核?
  2. 每個內核的命令隊列應該是不同的,或者應該是每個內核都相同的 ?

謝謝。

回答

1

您需要一個命令隊列(假設內核在同一個設備上執行)。

除非你的命令隊列與CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE創建的,你不需要在你描述的場景創建活動:內核在它們排隊的順序執行。

對於無序命令隊列,您應該從第一個clEnqueueNDRangeKernel中獲取一個事件,並將其作爲依賴關係傳遞給第二個事件隊列。請記住用clReleaseEvent發佈事件。

+0

意味着在我的情況下,我必須做出一個命令隊列和一個事件.....我是對嗎? – reva

+0

我的意思是在你的情況下,你只需要一個命令隊列(沒有選項創建),沒有事件。 –

+0

我可以在同一塊GPU上同時使用一個內核處理某些內核和另一個內核處理其餘內核 – reva