热点推荐
ZOL首页 > 显卡 > 评测 >

SM双warp调度与并行指令

改变翻天覆地 史上最全Fermi架构解读

CBSi中国·ZOL 作者:中关村在线 濮元恺 责任编辑:龚力成 【原创】 2010年03月26日 06:14 评论
在本页阅读全文(共16页)

    ●SM单元的双warp调度能力

    Fermi的每一个SM都有两个指令发送单元,可以同时让两个warp相互独立的并发运行。Fermi的Dual warp调度机制可以同时并发调度两个warp的一条指令分别在16个一组的CUDA core上进行计算,或者在16个存/取单元运行,或者4个SFU上运行。Fermi的调度器并不需要在指令流之间进行附属检查。利用如此优美的双发射调度机制,使得Fermi可以让硬件的计算能力达到极致。


30亿晶体管的咆哮
Fermi架构的Warp运行关系

    在Fermi架构中,非常多的指令可以进行双发射,例如两条整数运算指令,两条浮点数运行指令,或者混合的整数,浮点,存取,和SFU特殊处理指令都可以被并发执行。单精度和双精度的指令一样可以并发执行。

    ●并行指令更自由

    NV不断充实周边资源,使用更激进的架构,而AMD不断扩大流处理器规模,都是为了更好的隐藏延迟。GT200架构已经可以控制SMIT活用跳转来在实现线程在不同的SM单元之间进行跳跃。命令单元为multi-thread模式,能够执行Out-of-Order指令,而当处理warp命令流时则是In-Order,而根据NV架构设计师John Nickolls的介绍,GT200架构实际warp中的线程也能够支持Out-of-Order。

    Fermi在每个SM前端都有两个Warp调度器和两个独立分配单元,和SM其它部分完全独立,均可在一个时钟循环里选择发送一半Warp,而且这些线程可以来自不同的Warp。分配单元和执行硬件之间有一个完整的交叉开关(Crossbar),每个单元都可以像SM内的任何单元分配线程(不过存在一些限制)。

    作为运算单元的CUDA核心在Fermi的SM每个单元中共2个组,每组16个,SFU有4组,载入/存储单元16个。这4个小组能够各自并行执行不同的Warp不同的指令。由于CUDA核心是16个一组,16线程并列会让物理vector变长。因此2个周期能够以32线程构成的单Warp的一个指令。载入/存储单元也同样如此。SFU因为是4线程并列,因此是以8周期执行1个warp。这样指令单元本身增加到了2个,各个指令单元能够每个周期发出2条指令。可以说Fermi实现的并行化指令自由度更高。

上一页 1 ...6 7 8 9 10 ...16 下一页
频道热词:华硕主板  Intel  AMD  
视觉焦点
显卡评测热点
排行 文章标题
TOP10周热门显卡排行榜
  • 热门
  • 新品