2010-10-20 221 views
1

我只是想問一下,如果有人能夠給我一個關於在彼此之後使用幾個簡單內核時需要注意什麼的問題。多個OpenCl內核

我可以使用相同的CommandQueue嗎?我可以多次運行clCreateProgramWithSource + cl_program與不同的cl_program?我忘了什麼?

謝謝!

回答

9

您可以創建和編譯多個程序(並從中創建內核對象),也可以將所有內核放入同一個程序(畢竟clCreateProgramWithSource需要幾個字符串)並從中創建所有內核。要麼使用相同的CommandQueue工作正常。使用多於一個CommandQueue來執行在同一設備上應該串行執行的內核反正不是一個好主意,因爲在這種情況下,您必須手動等待事件完成,而不是異步排隊所有內核,然後等待結果(在至少一些操作應該在設備和主機上並行執行,因此在最後可能的時刻進行等待通常更快,更容易)。