cuda中變數的屬性

2021-07-05 22:37:23 字數 1366 閱讀 5936

device

亞程式中宣告的變數可以有以下幾種屬性

(device,managed, constant, shared

和pinned)

:device

資料儲存在

device

全域性儲存器中,可以通過以下方式宣告:

real

::a(10)

attributes(device)::a 或

real

,device

::b(10)

managed

可用於host

和device

**,可以在

host

和device

之間遷移,取決於最初讀取位置。可以被

host

讀寫,但在

device

上只能不

kernels

讀取,在

device

上,mannaged

變數有點類似於

device

變數,但沒有分配到

device

上。constant 稱為

device constant

變數,分配在

device constant

記憶體空間,

device constant

變數不能被

device

子程式設定和修改,可以被

host

子程式修改,

device constant

不可以是動態分配的。

shared 稱為

(device) shared

變數,僅被

device

子程式宣告和訪問,或者被其他

device

子程式通過傳遞變數訪問,分配位置在

thread

塊的device shared

記憶體,變數壽命為

thread

塊的壽命,可以被

thread

塊中任何乙個執行緒讀寫。

pinned

pinned

變數必須是動態可分配陣列,分配時在

host

頁面鎖定記憶體,因而從頁面鎖定記憶體到

device

記憶體是比

host

正常記憶體拷貝要快的,作業系統和裝置對其使用和大小可能有限制,若是得不到頁面鎖定記憶體,將被非同步分配到

host

正常記憶體中。

texture

f90指標,real

或者integer

資料,僅在

device

子程式讀,不可以寫。通過分量的快取在裝置中,提高**效能。

**:

cuda的內建變數

thread 執行緒 乙個執行緒可作為乙個運算單元,多個thread可組成乙個block 塊 threadidx.x block中當前thread在x方向上的id.threadidx.y block中當前thread在y方向上的id.block 塊 乙個block中可包含多個thread,多個blo...

CUDA程式設計 列印顯示卡屬性

列印顯示卡屬性 2017 11 8 includeusing namespace std int main int devicecount cudagetdevicecount devicecount returns in devicecount the number of devices cout...

C 中的變數 字段 域 屬性 屬性過程

在c 中 域 表示與物件或類相關聯的變數,修飾符不論是不是public。與字段類似 字段 表示與物件或類相關聯的變數。通常來講修飾符是public的成員變數稱為字段,而private更適合說是區域性變數。與域類似 屬性 表示域或字段的自然擴充套件,使得在保證封裝性的基礎上實現了訪問私有成員的便捷性。...