泡泡网CPU频道 PCPOP首页      /      CPU     /      新闻    /    正文

Haswell详解:AVX2指令集浮点性能翻倍

    泡泡网CPU频道5月21日 Haswell到来的日子越来越近了,不仅测试成绩出来了,就连正式版盒装也已经到货了。Haswell的亮点有很多,除了之前说到的C7节能状态、GPU集显和超频空间外,还加入和TSX和AVX2指令集。不过由于TSX并不是每个Haswell处理器都支持,所以这里暂且不提。下面我们来介绍一下AVX2指令集以及其实际作用。

AVX2指令集:AVX指令集的加强版

    对于指令集和AVX指令集不了解的朋友可以先看看《AVX是什么?AVX指令集技术与应用解析》。当年AVX在SSE4指令集的基础上加入了256位矢量宽度、增强的数据排序、3/4个操作数、不对齐内存存取以及VEX编码方式,最直接的收益就是浮点性能最大提升了2倍。

AVX2的新内容

    在2011年发布的AVX2则在此基础上加入了以下新内容:

  -整数SIMD指令扩展至256位

  -2个新FMA(融合乘加,即±(a×b)±c)单元及浮点FMA指令

  -离散数据加载指令“gather”、新的位移和广播指令

理论性能:整数和浮点性能翻倍

  其中最为重要的是对256位的整数SIMD的支持,并新增60条256位浮点SIMD指令,完善从AVX开始的256位扩展,理论上可再次提升整数和浮点运算速度。

新FMA单元和指令带来更强的性能

    FMA则关系到浮点运算能力。Haswell架构中拥有2个新的FMA单元(Intel的FMA3指令),每个FMA单元支持8个单精度或4个双精度浮点数,每周期单/双精度FLOPs都要比AVX高1倍。

    FMA拥有20种指令形式,与3种操作数次序组合,形成60种新指令,为选择内存操作数或目的操作数提供了极大的灵活性。另外融合乘加还会自动选择多项式的计算过程,降低了延迟。

AVX两个128位通道独立,AVX2实现互通

    在AVX中,Intel定义了两个128位通道,分别是高通道和低通道,不同通道不能互取数据;到AVX2中,跨通道数据排列操作则实现了高低通道数据互通,效率更高。

AVX2新指令

    新的离散数据加载指令是一种访问非连续内存的基本操作,可以加载8个双字节或者4个四字节到一个目的寄存器中,提供了一种新的矢量化途径。

    另外AVX2还加入了一些移位指令和广播指令,其中移位指令包括任意到任意SIMD数据置换与矢量移位,使矢量化更高效、可靠。

实际应用:加强视频处理、游戏和专业计算性能

    理论可以说得很美好,但能不能投入到日常使用,能给性能带来多大的提升,才是用户最为关注的。

AVX2加强了音频、视频处理、游戏以及专业计算性能

    (1)目前大部分程序(包括操作系统以及游戏)的代码靠的主要是整数运算。AVX2指令集引入了对256位整数矢量指令的支持,让Haswell处理器的整数运算比上代架构有了更大提升,软件响应速度更快,运行更流畅。另外,较多使用整数运算的图像、视频处理也将受益。

  (2)新的FMA单元加强了处理器浮点运算性能。对普通用户来说,游戏效果、3D动画以及视频播放是接触浮点运算最多的应用领域;浮点运算还是通用计算的主力。AVX2指令集帮助Haswell处理器提升浮点运算性能,也就是说,Haswell处理器将能比Sandy Bridge和Ivy Bridge展现出更强的3D性能和更快更准的通用计算能力。■

2人已赞

关注我们

泡泡网

手机扫码关注