热点推荐
ZOL首页 > 主板 > 新闻 >

英特尔AVX指令集简介

SNB平台的掌上明珠 深入分析AVX指令集

超能网 【转载】 2011年01月02日 06:03 评论

英特尔AVX指令集简介

    AVX(Advanced Vector Extensions,高级矢量扩展)指令集借鉴了一些AMD SSE5的设计思路,进行扩展和加强,形成一套新一代的完整SIMD指令集规范。


SNB系列第四弹,Sandy Bridge上的明珠AVX指令集
IDF2010上演示AVX应用

    在今年4月的IDF2010上,英特尔演示了AVX的应用,在两个不同平台上动态跟踪刘翔运行服上的五星红旗,结果显示,支持AVX的系统视频跟踪的用时为14秒,比不支持AVX的系统快了21秒,性能提升了60%以上。

    有兴趣的读者可以点击观看AVX应用主题演讲视频,时间大概在第33分钟左右。

SNB系列第四弹,Sandy Bridge上的明珠AVX指令集
英特尔AVX的新特性

英特尔AVX指令集主要在以下几个方面得到扩充和加强:
  ·支持256位矢量计算,浮点性能最大提升2倍
  ·增强的数据重排,更有效存取数据
  ·支持3操作数和4操作数,在矢量和标量代码中能更好使用寄存器
  ·支持灵活的不对齐内存地址访问
  ·支持灵活的扩展性强的VEX编码方式,可减少代码
 
支持256位矢量计算

    自1999年SSE将矢量处理能力从64位提升到128位后,SSE系列指令都只能使用128位XMM寄存器,这次AVX将所有16个128位XMM寄存器扩充为256位的YMM寄存器,从而支持256位的矢量计算。

SNB系列第四弹,Sandy Bridge上的明珠AVX指令集
128位的XMM寄存器扩展到256位的YMM寄存器

    这意味着可以同时处理8个32bit的浮点或是一个256bit的浮点,在写程序时可以忽略SSE 128bit的限制,直接写入一个可以进行多组操作,能够充分利用256bit数据位宽的代码,理想状态下,浮点性能最高能达到前代的2倍水平。

    当然有时并不是能完全能利用这256位,在大多数情况下,这些寄存器的高128位是设为0或者是“left unchanged”,同时所有的SSE/SSE2/SSE3/SSSE3/SSE4指令是被AVX全面兼容的(AVX不兼容MMX),因此实际操作的是YMM寄存器的低128位,在这一点上与原来的SSE系列指令集无异。

SNB系列第四弹,Sandy Bridge上的明珠AVX指令集
Sandy Bridge最突出的部分

    为了满足指令集带来的改进,Load载入单元也要适应一次载入256Bit的能力,所以增加了一组载入单元完成载入操作,并不是单纯的将带宽扩展一倍。这样可以在一个时钟周期内实现256位的乘、加和Shuffle运算。

    使用新的256位寄存器来提升数据I/O效率,更好的标记、传播载入的数据,动态的改变数据序列,以此来组织、访问和载入运算所需的数据,速度更快效率更高。

SNB系列第四弹,Sandy Bridge上的明珠AVX指令集
AVX增加了很多新的浮点运算指令

    AVX还引入了很多新的浮点运算指令,浮点运算能力加强,不光提升了3D游戏,还可以更有效的支持如复杂的flash显示,更快的SVG(可伸缩矢量图形)支持,更好的HTML5效果等等,相比用GPU计算来讲功耗更小,体积更小,成本也小,对GPU计算是个不大不小的冲击。

上一页 1 2 3 下一页
频道热词:Intel  computex  影驰显卡  
视觉焦点
Intel 酷睿i5 2500K(盒)
    主板新闻热点
    排行 文章标题
    TOP10周热门CPU排行榜
    • 热门
    • 新品
    查看完整榜单>>