全局存儲器,即普通的顯存,整個網格中的任意線程都能讀寫全局存儲器的任意位置。 性能
存取延時爲400-600 clock cycles 很是容易成爲性能瓶頸。 線程
訪問顯存時,讀取和存儲必須對齊,寬度爲4Byte。若是沒有正確的對齊,讀寫將被編譯器拆分爲屢次操做,下降訪存性能。 blog
多個half-warp的讀寫操做若是可以知足合併訪問,則屢次訪存操做會被合併成一次完成。 圖片
合併訪問的條件,GT200放寬了合併訪問的條件。 編譯器
支持對8 bit、16 bit、32 bit、64 bit數據字的合併訪問 相應傳輸32Byte 64Byte 128Byte,大於128Byte,分兩次傳輸。 it
在一次合併傳輸的數據中,不要求線程編號和訪問的數據字編號相同。 編譯
當訪問128Byte數據時,若是地址沒有對齊到128Byte時,在GT200會產生兩次合併訪存。根據每一個區域的大小,分爲兩次合併訪存,如圖所示32Byte和96Byte。 效率
PS:圖片來源於網上 硬件
關於訪存合併以及訪存衝突,關鍵就是要理解,GPU是以half-warp進行訪存時,即16個線程一塊兒訪問存儲器,到這16個線程的訪問的地址在同一塊區域(指硬件上能夠一塊兒傳送寬 im
度)時,而且沒有衝突產生時,則這塊區域的數據能夠被線程同時,提高了訪存的效率.