剛寫的函數和變量的限定符csdn既然沒有給我保存,鬱悶~~
接着看 執行配置
在調用一個__global__函數的時候需要指定執行配置:<<< Dg, Db, Ns, S >>>
Dg:grid的大小和維度,爲dim3類型。Dg.x * Dg.y是grid的大小。
Db:block的維度和大小,爲dim3類型。Db.x * Db.y * Db.z 是Block的大小。
Ns:size_t類型的,爲一個函數的動態shared內存。
內建變量:
gridDim:dim3類型的,包含grid的維度
blockIdx:uint3類型的,block在grid的位置
blockDim:dim3類型,包含block的維度
threadIdx:uint3類型的,Thread在block中的位置
warpSize:int類型,線程中的warp大小.?warp在CUDA中是什麼概念呢?
?warp的概念:
今天在討論過程中,向liuli師兄請教這個warp。聽他講後,我對warp是這樣理解的:
warp是GPU的processor中線程並行的一個單位。在Nvidia中是16個線程爲 一個warp。每次執行的時候,這16個線程同時平行執行。每個線程對於share內存的訪問對應一個bank。
依然不明白block中不是允許有256個線程嘛,這256個線程難道不是平行運行嗎?