請問 CUDA 每個 block 可使用多少 shar … - 顯卡

By Skylar DavisLinda
at 2010-06-03T00:04
at 2010-06-03T00:04
Table of Contents
※ 引述《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 回來呢?
--
: ※ 引述《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 回來呢?
--
Tags:
顯卡
All Comments
Related Posts
清理風扇

By George
at 2010-06-02T23:35
at 2010-06-02T23:35
買顯示卡可以買過保的嗎..

By Zora
at 2010-06-02T23:32
at 2010-06-02T23:32
M4A785TD-V EVO在Win7 64bit上播放1080P?

By Kelly
at 2010-06-02T23:14
at 2010-06-02T23:14
M4A785TD-V EVO在Win7 64bit上播放1080P?

By Jacob
at 2010-06-02T22:44
at 2010-06-02T22:44
請問 CUDA 每個 block 可使用多少 share …

By Frederic
at 2010-06-02T22:44
at 2010-06-02T22:44