本帖最后由 lizoyu 于 2010-11-27 17:16 编辑
好歹有人思考这些问题了..
只有688MHz核心频率的GPU带宽有108.5GB/s吗?
CPU靠的是强大的Branch Prediction(分支预测),所以它的Pipeline(流水线)可以很长,这就是高频率的表现.但CPU的线程往往很少,所以整个pipeline是比GPU的要窄的.
首先Thread在Pipeline上工作.
分支预测是指当Thread(线程)执行到一个分岔口时,不知道走哪边才正确,就像yes or no.就需要预测,如果预测错误,这个Thread就会被重置,必须重新开始,造成延迟.但CPU内的分支预测成功率还是很高的,所以效率不低.
GPU拥有Multi-Threading,指多线程并行运算.当GPU遇到分支障碍时,由于并行运算,可以立刻挂起这个Thread,切换到另一个thread继续,这样大大地缩短了延迟时间.所以GPU的Pipeline不会太长,但是比CPU的pipeline要宽.
如果GPU忙不过来,CPU是不会帮忙的,理由跟上面所说的有关.
而且也不会出现GPU跟不上显存速度,这个关系颠倒了,
是GPU命令显存给予数据,不是显存硬塞数据给GPU. |