全域性儲存器優化
3.3 全域性儲存器優化
在CUDA的儲存器結構中,全域性儲存器是最慢的,其延遲在幾百個時鐘,但是其容量是最大的,我們使用cudaMalloc函式分配的指標都是指向全域性儲存器空間的,我們不可能避開它們的使用。這兩個因素使得全域性儲存器的使用對CUDA 程式的效能至關重要。
3.3.1 合併訪問
為了提高訪問全域性儲存器的效率,CUDA 提供了一種稱為合併訪問的機制來加速全域性儲存器的訪問。在計算能力1.0和1.1的裝置上,合併訪問能夠在一次儲存器訪問中訪問最多達16個資料;在計算能力1.2和1.3的裝置上,合併訪問一次最多能夠訪問32個資料。另外執行緒間的切換也能夠隱藏全域性儲存器的訪問延遲。
所謂合併訪問就是儘量要求相鄰的執行緒訪問相鄰的地址空間,當然在不同計算能力的裝置上,其具體要求有所差別,在1.0和1.1的裝置上,合併訪問要求第k個執行緒訪問對齊的第k個儲存地址,必須對齊,不能交叉,而1.2以上的裝置沒有此要求。
對於不同的資料型別,合併訪問的頻寬不相同,一般而言使用四位元組的資料型別比較好,但是並不絕對,在某些情況下,使用8位元組或16位元組的資料效能可能會更好,尤其是在滿足1.0和1.1裝置的合併訪問條件下。
在設計的時候要考慮到全域性儲存器的合併訪問,並以此為要求來設計,比如在必要的時候對矩陣進行轉置。對資料的組織方式加以改變。
在CUDA的儲存器結構中,全域性儲存器是最慢的,其延遲在幾百個時鐘,但是其容量是最大的,我們使用cudaMalloc函式分配的指標都是指向全域性儲存器空間的,我們不可能避開它們的使用。這兩個因素使得全域性儲存器的使用對CUDA 程式的效能至關重要。
3.3.1 合併訪問
為了提高訪問全域性儲存器的效率,CUDA 提供了一種稱為合併訪問的機制來加速全域性儲存器的訪問。在計算能力1.0和1.1的裝置上,合併訪問能夠在一次儲存器訪問中訪問最多達16個資料;在計算能力1.2和1.3的裝置上,合併訪問一次最多能夠訪問32個資料。另外執行緒間的切換也能夠隱藏全域性儲存器的訪問延遲。
所謂合併訪問就是儘量要求相鄰的執行緒訪問相鄰的地址空間,當然在不同計算能力的裝置上,其具體要求有所差別,在1.0和1.1的裝置上,合併訪問要求第k個執行緒訪問對齊的第k個儲存地址,必須對齊,不能交叉,而1.2以上的裝置沒有此要求。
對於不同的資料型別,合併訪問的頻寬不相同,一般而言使用四位元組的資料型別比較好,但是並不絕對,在某些情況下,使用8位元組或16位元組的資料效能可能會更好,尤其是在滿足1.0和1.1裝置的合併訪問條件下。
在設計的時候要考慮到全域性儲存器的合併訪問,並以此為要求來設計,比如在必要的時候對矩陣進行轉置。對資料的組織方式加以改變。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23057064/viewspace-664344/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【CUDA學習】全域性儲存器
- 共享儲存器優化優化
- cuda優化之常量儲存器和紋理儲存器優化
- 非易失性儲存器MRAM的兩大優點
- Vue註冊的全域性元件配置物件儲存的位置Vue元件物件
- 前端基於瀏覽器儲存的AJAX效能優化前端瀏覽器優化
- 非易失性儲存器EEPROM
- 儲存服務質量優化優化
- 小談mysql儲存引擎優化MySql儲存引擎優化
- Everspin MRAM非易失性儲存器的五大優勢
- 非易失性儲存器平衡方法
- Redis儲存優化--小物件壓縮Redis優化物件
- 《MySQL 效能優化》之 InnoDB 儲存引擎MySql優化儲存引擎
- Greenplum 效能優化之路 --(二)儲存格式優化
- 任意列搜尋之列儲存優化優化
- 儲存過程優化(DBMS_HPROF)儲存過程優化
- 滴滴Ceph分散式儲存系統優化之鎖優化分散式優化
- 貝葉斯全域性優化(LightGBM調參)優化
- Web 2.0的個性化儲存需求薦Web
- Oracle優化案例-儲存過程的優化思路(二十三)Oracle優化儲存過程
- mysql優化 | 儲存引擎,建表,索引,sql的優化建議MySql優化儲存引擎索引
- 運籌優化(十七)--儲存論基礎及其最優化求解優化
- Android 儲存優化 —— MMKV 整合與原理Android優化
- Redis 記憶體使用優化與儲存Redis記憶體優化
- MySQL 效能優化之儲存引擎選擇MySql優化儲存引擎
- Oracle儲存過程優化小實踐Oracle儲存過程優化
- 鐵電儲存器FRAM的優劣勢
- 騰訊雲物件儲存COS新品釋出——智慧分層儲存,自動優化您的儲存成本物件優化
- 儲存器
- 加大對儲存器國產化的投入
- CUDA優化之執行配置和暫存器優化優化
- 線性表順序儲存優缺點,線性連結串列的優缺點
- 易失性儲存器SRAM基礎知識
- Hive的壓縮儲存和簡單優化Hive優化
- 關於ios本地大容量儲存sqlite優化iOSSQLite優化
- pl/sql儲存過程優化一例SQL儲存過程優化
- Laravel-自定義全域性函式-ChinaCircle 優化版Laravel函式優化
- 非易失性儲存器Flash和EEPROM之間的差異與優缺點