Re: [請益] 請問 CUDA 每個 block 可使用多少 shar …
※ 引述《HsiaoCC (Learning To Live)》之銘言:
: ※ 引述《jk21234 ( 1569 11 /47)》之銘言:
: : 所以,SM和Block在"某個時段內,獨佔的1:1執行"
: : 如果你覺得不容易理解,它還蠻接近一顆cpu執行多工的方式.
: : 切換也應該是context switch.有同樣的缺點就是切換再怎麼頻繁,
: : 對幾百MHZ的晶片來說,都是巨大的效能損失.....
: : (如果我沒記錯,cuda文件有描述context switch部分...)
: : 所以也不用擔心你在程式中使用不到16KB的shared memory.
: 來閒扯一下他背後的運作,就 GT200 系列來說
: 每個 SM 在 resource 允許的情況下,最多能同時保持 1,024 個 computing threads
: 且每次 SM 最多只允許抓取 8 個 blocks,且不能超過 resource limitation
恕刪~
: 回到正題,shared memory 如果需求的量超過,是沒辦法被執行的,只能等到在 SM 中
: 的工作都做完,resource release 了才行~~~
我把我瞭解到的說一下,請各位看看對不對
GT200系列 每個 SM 有 16K 個 register 與 16KB shared memory
SM 能同時能保持 8 個 block,總計 1024 個 computing threads
這四者都是 resource limitation
假如今天我寫一個 kernel 用了 16KB shared memory
總共產生有 1024 block,每個 block 128 thread
那麼 SM 就只能抓取 1 個 block 來執行 (因為 shared memory 到達上限)
(雖然 thread 總數...等還沒有到達上限)
而這個 CUDA 程式很可能使 SM 有很多 stall
因為 128 thread 可能不足以 hide latency
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.73.54.16
推
06/03 10:11, , 1F
06/03 10:11, 1F
→
06/03 10:13, , 2F
06/03 10:13, 2F
→
06/03 10:15, , 3F
06/03 10:15, 3F
→
06/03 10:17, , 4F
06/03 10:17, 4F
推
06/05 12:42, , 5F
06/05 12:42, 5F
討論串 (同標題文章)
VideoCard 近期熱門文章
PTT數位生活區 即時熱門文章