我需要對最多需要一個字節(最有可能的值爲0到20的值)的矩陣進行一些操作。由於矩陣相當大,我想我會使用OpenCL在GPU上執行這些操作,並將矩陣存儲爲圖像。問題是我沒有找到任何關於OpenCL是否支持單通道圖像的提示......並且我不想傳遞比實際使用更多的數據。OpenCL支持灰度圖像
是否支持單通道圖像?
我需要對最多需要一個字節(最有可能的值爲0到20的值)的矩陣進行一些操作。由於矩陣相當大,我想我會使用OpenCL在GPU上執行這些操作,並將矩陣存儲爲圖像。問題是我沒有找到任何關於OpenCL是否支持單通道圖像的提示......並且我不想傳遞比實際使用更多的數據。OpenCL支持灰度圖像
是否支持單通道圖像?
正如前面的答案中所述,使用CL_INTENSITY和CL_LUMINANCE。
預計尋址計算的延遲對Image對象隱藏得更好,但紋理緩存與圖像寫入沒有保持一致,所以讀取到通過圖像寫入的地址的任何圖像都會寫入相同的內核調用返回未定義的數據。所以開發人員更喜歡只使用常規緩衝區。
有CL_INTENSITY
和CL_LUMINANCE
。但是如果你不需要圖像相關的功能(如果你想操縱矩陣,我會假設),你最好用一個常規的內存緩衝區。
OP沒有具體說明他在處理數據。而且,緩存假設取決於實際的硬件,並且不是規範所要求的。如果可用,訪問全局內存可以通過本地共享內存進行緩存。 – matthias 2013-03-19 08:59:37
也許你可以回答這個問題,然後 http://stackoverflow.com/questions/15322206/opencl-global-memory-vs-image-memory-performance-differences-on-nvidia-and-amd – 2013-03-19 09:18:47
因爲甚至沒有提問者upvoted你的帖子,我做到了。 – Tara 2013-03-20 10:17:37