作者jk21234 ( 1569 11 /47)
看板VideoCard
标题Re: [请益] 请问 CUDA 每个 block 可使用多少 shar …
时间Thu Jun 3 00:49:15 2010
※ 引述《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