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

看板VideoCard (顯卡板)作者 (mself)時間15年前 (2010/06/03 00:04), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/4 (看更多)
※ 引述《jk21234 ( 1569 11 /47)》之銘言: : ※ 引述《mself (mself)》之銘言: : : NVIDIA 一張顯卡上有 1~20 個 stream multiprocessor (SM),視顯卡型號而異 : : 每個 SM 有 16KB 大小的 shared memory : : 一份 CUDA 程式, : : 假設會產生了 1024 個 blocks,每個 block 有 128 threads : : 因為不知道(或不能預期)顯卡 SM 的個數 : : 也不知道幾個 block 會被配置給一個 SM : : coding 的時候,要怎麼知道 : : kernel 裡可以宣告多少 shared memory 來用呢? : : 感謝各位 : SM跟Block一對一 一個是硬體性質一個是軟體定義 : 所以每個SM/Block能用的Shared memory都一樣是16KB. : 放1024個block在比如說16個SM的晶片會怎樣?輪流進去執行啊..... : 類似你在單一一顆cpu上多工,要context switch. 就我瞭解,SM 跟 block 有對應,但好像不是 1 對 1, 數個 block 會一起在一個 SM 上輪流執行, 視 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: 203.67.104.65 ※ 編輯: mself 來自: 203.67.104.65 (06/03 00:04)
文章代碼(AID): #1C1e3uKF (VideoCard)
文章代碼(AID): #1C1e3uKF (VideoCard)