thread block是给multiprocessor,还是processor运行

在下newbie,正在看CUDA的书。硬件部分讲到streaming multiprocessor和 streaming processor,我现在的疑惑是thread block到底是分配给了streaming multiprocessor还是streaming processor。

谢谢!

[

楼主您好。
我用GT430举个例子,这是一个拥有2个SM, 96个SP的300多元的fermi显卡。

首先block是分配给了SM, 但是代码的执行是又不同的单位来的。
运算一般是由SM中的SP进行的,
特殊函数一般是由SM中的SFP进行的,
访问显存是由SM进行的。

给您做个比较,也许好理解点,
我们的CPU,一个核心一个线程,这个线程既负责各种运算,也负责读写内存。这些线程很自由。
但是GPU不同,他的线程都是成编制的被他们的老大管理者。所以,他的线程执行者SP没有权力读写显存,必须由它的老大SM来进行, 也就是一组一组(warp)的进行, 而不是像CPU的一个线程那么自由。