記憶體訪問
記憶體使用的典型方案是將源資料和已處理資料儲存在全域性記憶體中。當一個執行緒塊啟動時,它首先將所有相關部分複製到共享儲存器中,然後將它們的部分放入暫存器中。
記憶體訪問延遲還取決於你的記憶體策略。如果你盲目訪問資料,你將獲得最差的效能。
不同的記憶被組織在所謂的銀行中。可以在單個時鐘週期內處理對儲存體的每個儲存器請求。共享記憶體中的庫數等於 warp 大小。通過避免單個 warp 中的衝突銀行訪問,可以提高記憶體速度。
要將共享記憶體從全域性記憶體複製到全域性記憶體,最快的方法是調整記憶體呼叫。這意味著 warp 中的第一個執行緒應該訪問共享和全域性記憶體的儲存區中的第一個元素。第二個執行緒是第二個元素,依此類推。該呼叫將被優化為單個儲存器傳輸指令,該指令將整個儲存體一次複製到目標儲存器。