cuda內建變量

gridDim:包含x,y,z的結構體

         表示網格在x,y,z方向上的尺寸

         目前僅能使用二維

         對應於執行參數第一個

blockIdx:包含x,y,z的結構體

          表示當前線程塊在網格中x,y,z方向上的索引

          被限制爲65535

blockDim:包含x,y,z的結構體

          表示塊在x,y,z方向上的尺寸

          目前僅能使用二維

                    對應於執行參數第二個

threadIdx:包含x,y,z的結構體

           表示當前線程在其鎖在塊中x,y,z方向上的索引

           不同型號,限制小於512/1024

dim3 myGridDim(bx,by);
dim3 myBlockDim(tx,ty);
kernal<<<myGridDim,myBlockDim>>>();


則每個線程塊有tx行ty列的線程,

x=threadIdx.x,y=threadIdx.y代表第x行第y列的那個線程;

整個網格有bx行by列的線程塊

blockIdx.x,blockIdx.y代表第x行第y列的那個線程塊;


也就是說

dim3 myGridDim(bx,by);
kernal<<<myGridDim,1>>>()
__global__ kernal()
{
   int x = blockIdx.x
///
}




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