CUDA 四 執行配置與內建變數

2021-08-18 01:15:41 字數 729 閱讀 3752

執行配置是針對__global__函式的,並在其呼叫的地方指定。指明執行緒網格、執行緒塊的尺寸,以及共享記憶體的大小和流。

形式為:<<>>

dg、db:分別表示執行緒網格的大小和執行緒塊的大小,型別為dim3的結構體,有x、y、z三個成員變數,預設的建構函式會將其成員變數賦值為1,而int3則是只含有x、y、z三個成員變數的簡單c結構體,不含任何成員函式,所以其初值未知的;

ns:size_t型別,指明共享記憶體的大小,可選項,預設0;

s:cudastream_t型別(實質為custream_st *

),指明流,可選項,預設0;

例如:__global__ void fun();    //__global__函式形式

fun<<>>();//呼叫形式

主要有五個內建變數,它們只在執行在裝置上的函式內有效

griddim:執行緒網格的尺寸或大小,dim3型別的變數,其值為在指定執行配置時的第乙個引數dg;

blockidx:執行緒塊索引,指示執行緒網格中的某一塊,為int3型別,各個分量的值最大值為對應griddim分量值減1,因為索引是基於0開始的;

blockdim:每個執行緒塊尺寸或大小,為dim3型別,其值為在指定執行配置時的第二個引數db;

threadidx:執行緒索引,為uint3型別,指示某一線程塊中的某乙個執行緒,各個分量的最大值為對應blockdim分量值減一,索引基於0開始;

warpsize:後續補充。

cuda的內建變數

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

awk(四) 常用內建變數

以下為awk內建變數 argc 命令列引數個數 filename 當前輸入文件的名稱 fnr 當前輸入文件的當前記錄編號,尤其當有多個輸入文件時有用 nr 輸入流的當前記錄編號 nf 當前記錄的字段個數 fs f 字段分隔符 awk f etc passwd awk begin etc passwd...

OpenGL GLSL 內建變數與 常用內建函式

在著色器中我們一般都會宣告變數來在程式中使用,但是著色器中還有一些特殊的變數,不宣告也可以使用。這些變數叫做內建變數。內建變數,相當於著色器硬體的輸入和輸出點,使用者利用這些輸入點輸入之後,就會看到螢幕上的輸出。通過輸出點可以知道輸出的某些資料內容。當然,實際上肯定不會這樣簡單,這麼說只是為了幫助理...