2013-05-09 44 views
0

我想自動縮放一些數據。所以,我想通過所有數據並找到數據的最大範圍。然後我想瀏覽數據,進行計算,並將結果發送給opengl進行渲染。這種類型的多路徑事物可能在opencl中嗎?或者,CPU是否必須指導「查找範圍」計算,獲得結果,然後使用該指標指導其他計算?可以opencl鏈多次通過而不返回CPU?

+0

是的,當然這是可能的。否則,這將是一個巨大的設計缺陷。您將數據複製到GPU,對其執行計算並返回結果,無論它是一次還是一百萬次計算。 – dtech 2013-05-09 15:06:06

+1

聽起來您需要兩個OpenCL內核,一個用於計算最小值和最大值,另一個用於實際縮放數據。使用OpenCL命令隊列和事件,您可以按順序排列這兩個內核,並將全局內存中的第一個結果存儲起來,並在第二個內核中讀取這些結果。 OpenCL命令隊列的語義(假設您沒有啓用無序執行)將確保在沒有來自主機應用程序的任何交互的情況下(參見clEnqueueNDRangeKernel),在另一個之前完成OpenCL命令隊列的語義。 – agrippa 2013-05-09 20:43:51

+0

@agrippa請把它作爲答案,我可以接受它。謝謝! – mentics 2013-05-10 16:08:23

回答

0

聽起來您需要兩個OpenCL內核,一個用於計算最小值和最大值,另一個用於實際縮放數據。使用OpenCL命令隊列和事件,您可以按順序排列這兩個內核,並將全局內存中的第一個結果存儲起來,並在第二個內核中讀取這些結果。 OpenCL命令隊列和事件的語義(假設您沒有啓用亂序執行)將確保在沒有來自主機應用程序的任何交互的情況下完成(請參閱clEnqueueNDRangeKernel)。

相關問題