【发布时间】:2011-04-10 09:10:00
【问题描述】:
我在 cuda 中编写了一个应用程序,它在每个块中使用 1kb 的共享内存。 由于每个 SM 中只有 16kb 的共享内存,所以总共只能容纳 16 个块(我理解正确吗?),虽然一次只能安排 8 个,但现在如果某个块忙于做内存操作,所以其他块将被调度到 gpu 上,但是所有共享内存都被其他 16 个块使用,这些块已经在那里调度,所以 cuda 不会在同一个 sm 上调度更多块,除非之前分配的块完全完成?或者它将某些块的共享内存移动到全局内存,并在那里分配其他块(在这种情况下我们应该担心全局内存访问延迟吗?)
【问题讨论】: