Re: [請益] 請問 CUDA 每個 block 可使用多少 shar …

看板VideoCard (顯卡板)作者 ( 1569 11 /47)時間15年前 (2010/06/03 00:49), 編輯推噓0(000)
留言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
文章代碼(AID): #1C1ekDKx (VideoCard)
文章代碼(AID): #1C1ekDKx (VideoCard)