中block的概念 GPU中的幾個基本概念

2021-10-14 17:52:14 字數 1962 閱讀 1156

streaming processor(sp): 最基本的處理單元。gpu進行平行計算,也就是很多個sp同時做處理。現在sp的術語已經有點弱化了,而是直接使用thread來代替。乙個sp對應乙個thread

warp:warp是sm排程和執行的基礎概念,通常乙個sm中的sp(thread)會分成幾個warp(也就是sp在sm中是進行分組的,物理上進行的分組),一般每乙個warp中有32個thread.這個warp中的32個thread(sp)是一起工作的,執行相同的指令,如果沒有這麼多thread需要工作,那麼這個warp中的一些thread(sp)是不工作的

(每乙個執行緒都有自己的暫存器記憶體和local memory,乙個warp中的執行緒是同時執行的,也就是當進行平行計算時,執行緒數盡量為32的倍數,如果執行緒數不上32的倍數的話;假如是1,則warp會生成乙個掩碼,當乙個指令控制器對乙個warp單位的執行緒傳送指令時,32個執行緒中只有乙個執行緒在真正執行,其他31個 程序會進入靜默狀態。)

streaming multiprocessor(sm):多個sp加上其他的一些資源組成乙個sm, 其他資源也就是儲存資源,共享記憶體,寄儲器等。可見,乙個sm中的所有sp是先分成warp的,是共享同乙個memory和instruction unit(指令單元)。從硬體角度講,乙個gpu由多個sm組成(當然還有其他部分),乙個sm包含有多個sp(以及還有暫存器資源,shared memory資源,l1cache,scheduler,spu,ld/st單元等等)

thread–>block–>grid:

cuda在執行的時候是讓host裡面的乙個乙個的kernel按照執行緒網格(grid)的概念在顯示卡硬體(gpu)上執行。當要執行這些任務的時候,每乙個grid又把任務分成一部分一部分的block,block再分執行緒來完成。每個grid中的任務是一定的。二維執行緒塊的索引關係為如下:

物理層:在gpu中最小的硬體單元是sp(這個術語通常使用thread來代替),而硬體上乙個sm中的所有sp在物理上是分成了幾個warp(每乙個warp包含一些thread),warp中的sp是可以同時工作的,但是執行相同的指令,也就是說取指令單元取一條指令同時發射給warp中的所有的sp(假設sp都需要工作,否則有些是idle的).可見,在硬體上乙個sm->warps->threads(sp).

邏輯層:乙個kernel對應乙個grid,該grid又包含若干個block,block內包含若干個thread。grid跑在gpu上的時候,可能是獨佔乙個gpu的,也可能是多個kernel併發占用乙個gpu的(需要fermi及更新的gpu架構支援)。

simt架構:simt中文譯為單指令多執行緒,英文全稱為single instruction multiple threads。如同cpu中的simd。gpu中的simt體系結構相對於cpu的simd中的概念。為了有效地管理和執行多個單執行緒,多處理器採用了simt架構。此架構在第乙個unified computing gpu中由nvidia公司生產的gpu引入。不同於cpu中通過simd(單指令多資料)來處理向量資料;gpu則使用simt,simt的好處是無需開發者費力把資料湊成合適的向量長度,並且simt允許每個執行緒有不同的分支。 純粹使用simd不能並行的執行有條件跳轉的函式,很顯然條件跳轉會根據輸入資料不同在不同的執行緒中有不同表現,這個只有利用simt才能做到

gpu的單位表示 GPU中的幾個基本概念

物理概念 streaming processor sp 最基本的處理單元。gpu進行平行計算,也就是很多個sp同時做處理。現在sp的術語已經有點弱化了,而是直接使用thread來代替。乙個sp對應乙個thread warp warp是sm排程和執行的基礎概念,通常乙個sm中的sp thread 會分...

GPU中與CUDA相關的幾個概念

今天說說gpu的硬體結構中與cuda相關的幾個概念 thread block grid warp sp sm sp 最基本的處理單元,streaming processor 最後具體的指令和任務都是在sp上處理的。gpu進行平行計算,也就是很多個sp同時做處理 sm 多個sp加上其他的一些資源組成乙...

GPU中與CUDA相關的幾個概念

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!今天說說gpu的硬體結構中與cuda相關的幾個概念 thread block grid warp sp sm sp 最基本的處理單元,streaming processor 最後具體的指令和任務都是在sp上處理的。gpu進行平行計算,也就是很多個s...