CUDA學習筆記之變數限制符
變數限制符:
__device__:位於視訊記憶體中,用於全域性通訊,具有檔案作用域,且須定義在所有程式程式碼之前,因此其值在所有的在device上執行的函式中都可以使用
__shared__:位於共享儲存中,主要用於執行緒塊內通訊:必須定義在kernal最前,且定義時不能賦值。一般和執行緒id有關。一般前加extend修飾,一般的使用方法是:shared[threadIdx.x]=device[blockIdx.x*blockDim.x+threadIdx.x]
無修飾:在register夠用時,儲存在暫存器中,不夠用時,儲存在在local memory內,當然local Memory也只是屬於執行緒所有,不過也很慢,因為它實事上是golbal memory中的一塊空間。
__constant__:位於不變儲存器中,在kernal執行過程中不能修改,但是可以在主機中修改。而且必須定義在所有程式程式碼之前,具有檔案內作用域。__constant__修飾的量,如果是值的話,只是它的值不可更改;如果是指標的話,可以更改指標空間記憶體儲的值,但是不能讓指標重新指向;而且必須宣告在檔案的所有函式的前面,也就是說它的作用域是檔案內,因此在使用時,沒有必要把它當成引數傳入函式(我受java的影響太深了)。
訪問速度順序為:register>shared>constant>local>device
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22785983/viewspace-662156/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- CUDA 學習筆記之函式限制符筆記函式
- CUDA 學習筆記之程式棧筆記
- CUDA 學習筆記之gpu結構筆記GPU
- CUDA 學習筆記之儲存器筆記
- CUDA學習筆記之柵欄同步筆記
- CUDA 學習筆記之向量宣告使用筆記
- CUDA 學習筆記之型別轉換筆記型別
- C語言學習筆記之變數C語言筆記變數
- REDHAT LINUX學習筆記之環境變數RedhatLinux筆記變數
- Python學習筆記 - 變數Python筆記變數
- javascript學習筆記,二、變數JavaScript筆記變數
- CUDA學習筆記-1: CUDA程式設計概覽筆記程式設計
- Tensorflow學習筆記: 變數及共享變數筆記變數
- [go 學習筆記] 二、變數、常量Go筆記變數
- Activiti 學習筆記五:流程變數筆記變數
- Nginx變數詳解(學習筆記十九)Nginx變數筆記
- Python 3 學習筆記之——變數作用域、模組和包Python筆記變數
- Python學習筆記|Python之內建變數__name__Python筆記變數
- 【學習筆記】數學筆記
- ES6學習筆記(一)【變數,字串】筆記變數字串
- Python 學習筆記-2-1-變數Python筆記變數
- scala學習筆記:變數宣告中的模式筆記變數模式
- Swift學習筆記(三十二)——可變引數Swift筆記
- bootstrap 學習筆記之 文件結構不能變boot筆記
- shell指令碼程式設計學習筆記——變數指令碼程式設計筆記變數
- Swift筆記之變數講解Swift筆記變數
- Python學習筆記(2)慎重使用全域性變數Python筆記變數
- Solidity語言學習筆記————5、全域性變數Solid筆記變數
- Python3學習筆記3,變數、運算子Python筆記變數
- 【學習筆記】組合數學筆記
- 數學證明 學習筆記筆記
- 高等數學學習筆記(一)筆記
- 高等數學學習筆記(二)筆記
- 組合數學學習筆記筆記
- 快速傅立葉變換 學習筆記筆記
- Swift學習筆記(三十三)——常量引數,變數引數和inout引數Swift筆記變數
- 學習筆記:數位dp筆記
- JavaScript學習筆記---數值JavaScript筆記