CUDA的執行配置與內建變量

剛寫的函數和變量的限定符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個線程難道不是平行運行嗎?

發佈了26 篇原創文章 · 獲贊 12 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章