自動駕駛之心Occupancy從入門到精通全棧課程學(xué)習(xí)筆記
2023-08-18 16:40 作者:a365981109 | 我要投稿
Occupancy
每個SM:occupancy = active warps/maximum warps
CUDA Toolkit中有一個幫助用戶確定grid和block大小的工具:/usr/local/cuda-8.0/tools

?小線程塊:每個塊的線程太少導(dǎo)致在所有硬件資源完全利用之前,已經(jīng)達(dá)到了每個SM最多的warps。比如一個線程塊只有10個thread,那么一個線程塊就要占用一個warp。
?大線程塊:每個塊太多的線程導(dǎo)致每個線程可以利用SM的資源更少。
選擇策略:根據(jù)kernel的計算量調(diào)整block的size,并進(jìn)行多次實驗發(fā)現(xiàn)最優(yōu)的grid和block的設(shè)置。
?每個block中含有的thread是warpSize的整數(shù)倍數(shù)。
?避免一個block太少的thread,一個block最少128或256個線程。
?盡量使block的數(shù)目大于GPU的SM的數(shù)目。
標(biāo)簽: