我有一個AMD GPU,我想實現'矩陣轉置'的例子。想象一下,兩個方案的實施:OpenCL - 本地內存效率
1)從全局內存(當前位置)
寫入全局存儲器(目標位置)
2)閱讀
-
從全局存儲器讀取(當前位置)
寫入本地內存
閱讀從本地存儲器
寫入全局存儲器(目標位置)
假設我已經爲這兩種解決方案選擇了最佳的工作組規模。 順便說一句,第二個算法利用協作寫入本地內存。
最後,令人驚訝的是第二種情況的結果是第一種情況的兩倍。我只是不明白爲什麼?
我可以看到,在第一個中我們有1個讀取和1個寫入和到全局內存,在第二個,除了全局內存操作,我們有1個讀取和1個寫入和到本地記憶,它怎麼會更快?
如果有人在這種情況下幫助我,我會很高興。
預先感謝您:-)