cuda優化之常量儲存器和紋理儲存器

yyfn風辰發表於2010-06-25
  3.5 常量儲存器優化

CUDA 允許分配最多64KB的常量儲存器,常量儲存器顧名思義內容是不變的,所以也有人稱其為不變儲存器。每個SM有6-8KB的常量快取,一般而言一到兩個週期可讀取常量儲存器。如果半束內的執行緒訪問的不是同一個地址,那麼各個執行緒的訪問將會序列化。

常量儲存器的設計個人認為不是太好,有點像雞肋。因為要求常量儲存器是全域性的,因此對程式的可讀性和可擴充套件性都有影響。

對於常量儲存器大小的限制問題,有些情況下,可以使用多次匯入並多次執行核心的方式解決。


3.6 紋理儲存器

紋理儲存器是來自圖形學的一個概念。由於硬體的支援,提供了很多額外處理功能,如邊界處理、濾波等。訪問紋理儲存器要通過紋理參考和紋理獲取。

CUDA對於隨機存取的效能極其的悲劇,而紋理儲存器可減弱這種悲劇的效果,尤其是訪問的資料之間具有極大的區域性性的時候。

另外在某些情況下可以利用紋理的插值功能來加速計算。此時要注意的紋理執行的是低精度的線性插值。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23057064/viewspace-666277/,如需轉載,請註明出處,否則將追究法律責任。

相關文章