CUDA學習(三十四)

2021-09-21 12:41:08 字數 1518 閱讀 1392

c語言擴充套件:

函式執行空間說明符:

函式執行空間說明符表示函式是在主機上還是在裝置上執行,以及函式是從主機還是從裝置中呼叫。

__device__:

__device__執行空間說明符宣告乙個函式:

__global____device__執行空間說明符不能一起使用。

__global__空間說明符將乙個函式宣告為乙個核心。 這樣的功能是:

__global__函式必須具有void返回型別,並且不能是類的成員

任何對__global__函式的呼叫都必須指定其執行配置,如執行配置中所述

__global__函式的呼叫是非同步的,這意味著它在裝置完成執行之前返回

__host__:

__host__執行空間說明符宣告了乙個函式:

__global____host__執行空間說明符不能一起使用。

__device____host__執行空間說明符能一起使用。

然而,在這種情況下,該功能是為主機和裝置編譯的。 應用程式相容性中引入的__cuda_arch__巨集可用於區分主機和裝置之間的**路徑:

__host__ __device__ func()

__noinline____forceinline__:

編譯器在適當的時候內聯任何__device__函式;

如果可能的話,__noinline__函式限定符可以作為編譯器不提示內聯函式的提示。

__forceinline__函式限定符可用於強制編譯器內聯函式

__noinline____forceinline__函式限定符不能一起使用,也不能將函式限定符應用於內聯函式。

可量記憶體空間說明符:

變數儲存空間說明符表示變數的裝置上的記憶體位置。

在裝置**中宣告的自動變數不包含本節中描述的__device____shared____constant__記憶體空間說明符,通常駐留在暫存器中。 但是,在某些情況下,編譯器可能會選擇將其放置在本地記憶體中,這可能會產生不良的效能影響,詳見裝置記憶體訪問。

__device__:

__device__記憶體空間說明符宣告駐留在裝置上的變數。

在接下來的兩節中定義的其他記憶體空間說明符中至多有乙個可以與·__device__·一起用來進一步表示該變數屬於哪個記憶體空間。 如果它們都不存在,則變數:

題解三十四

輸入整數陣列 arr 找出其中最小的 k 個數。例如,輸入4 5 1 6 2 7 3 8這8個數字,則最小的4個數字是1 2 3 4。示例 1 輸入 arr 3,2,1 k 2 輸出 1,2 或者 2,1 示例 2 思路 我們可以使用乙個大小為 k 的大頂堆,將陣列中的元素依次入堆,當堆的大小超過 ...

CUDA學習(五十四)

cooperative groups 介紹 cooperative groups 是對cuda 9中引入的cuda程式設計模型的擴充套件,用於組織通訊線程組。合作組允許開發人員表達執行緒通訊的粒度,幫助他們表達更豐富,更高效的並行分解。歷史上,cuda程式設計模型為同步協作執行緒提供了乙個簡單的構造...

GNU make manual 翻譯 三十四

繼續翻譯 a directive is an instruction for make to do something special while reading the makefile.these include reading another makefile note including o...