Re: [請益] 請問 CUDA 每個 block 可使用多少 shar …
看板VideoCard (顯卡板)作者jk21234 ( 1569 11 /47)時間15年前 (2010/06/03 00:49)推噓0(0推 0噓 0→)留言0則, 0人參與討論串2/4 (看更多)
※ 引述《mself (mself)》之銘言:
: ※ 引述《jk21234 ( 1569 11 /47)》之銘言:
: : SM跟Block一對一 一個是硬體性質一個是軟體定義
: : 所以每個SM/Block能用的Shared memory都一樣是16KB.
: : 放1024個block在比如說16個SM的晶片會怎樣?輪流進去執行啊.....
: : 類似你在單一一顆cpu上多工,要context switch.
: 就我瞭解,SM 跟 block 有對應,但好像不是 1 對 1,
: 數個 block 會一起在一個 SM 上輪流執行,
所以,SM和Block在"某個時段內,獨佔的1:1執行"
如果你覺得不容易理解,它還蠻接近一顆cpu執行多工的方式.
切換也應該是context switch.有同樣的缺點就是切換再怎麼頻繁,
對幾百MHZ的晶片來說,都是巨大的效能損失.....
(如果我沒記錯,cuda文件有描述context switch部分...)
所以也不用擔心你在程式中使用不到16KB的shared memory.
: 視 register 用量,以及 thread 數上限而定
: 假設現在是 8 個 block 在 1 個 SM 上輪流執行
: 是不是每個 block 只能有 2 KB shared memory 呢?
: 還是說每個 block 都能用滿 16 KB,但不是正在執行的 block
: 的 shared memory (context) 會 switch 到 global memory
: 要執行時在 switch 回來呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.37.141.3
討論串 (同標題文章)
VideoCard 近期熱門文章
PTT數位生活區 即時熱門文章