AMD的解决方法是将原有的4D矢量运算拓展到4D矢量+1D标量架构,并命名为Supersclar(超标量),而4D+1D的运算架构也一直使用至现在的DX11显卡上。AMD的Supersclar架构在一个周期内可以进行5次矢量运算或者一次标量+一次矢量运算,而且5D指令只需要一个发射端口,每个流处理器所需的晶体管较少,设计难度也大大减小,缺陷依然是遇到标量运算时效率降低,AMD通过大幅增加流处理器单元的数量并增加分支预测单元(Branch Execution Unit)改善指令分配问题,在驱动设计上要付出更多努力。
![]()
AMD的Superscalar架构沿用至今
与AMD的循序渐进相比,NVIDIA的解决方式更有革命性。NVIDIA的首款DX10架构G80中使用了标量设计,所有运算不管是4D矢量、3D+1D、2D+2D或者1D标量全都转为标量计算,这样标量运算中效率一直为100%,不过矢量运算中也存在着效率下降的问题,因为G80一个周期内只能执行一次运算,执行4D矢量需要四个周期才能完成。NVIDA采用异步架构将流处理器的频率与核心频率分离,流处理器的频率大幅提升至1.3G以上,几乎达到了核心频率的两倍,即使是4D矢量运算速度也有保证。
NVIDIA的标量流处理器无异于一次突破,此后的游戏以及通用计算程序中证明了此架构的优秀。除了频率提高一倍的流处理器弥补了数量上的劣势外,最主要的还是全标量架构的高执行效率,G80中每个指令都可以1D标量进行运算,利用率可以一直保持在100%,而AMD的4D+1D架构需要将指令组合成适合5D运算的VLIW(超长指令)才能保证充分利用所有流处理器,一旦重组不成功或者指令不适合重组,那就无法发挥出流处理器数量众多的优势,因此AMD显卡的理论浮点运算能力非常强劲,但在实际应用中相比NVIDIA的显卡并不突出,甚至有所不如,从Folding@home中的贡献排名中也一窥而知。