CPU/GPU真融合!Intel新酷睿权威评测
第三章/第四节 SandyBridge架构解析:新增AVX高级矢量扩展指令集
Westmere相比Nehalem,唯一的改进就是新增AES加密解密指令集,在特定应用下速度提升非常显著,但由于一般人很少用到加密和解密应用,因此这一改进几乎可以被忽视了。
现在SandyBridge相比Westmere,在AES指令集的基础上,又新增了AVX(高级矢量扩展)指令集,这个指令集就非同一般了,Intel打算用它来逐步取代已经服役几十年的SSE(单指令多数据流式扩展)指令集,AVX指令集的重要性可见一斑!
所谓的矢量,就是带有方向的标量……在数学上的表现就是多个参数的代数式,也就是多个标量的集合。为了更好地表示多个标量,AVX高级矢量扩展将原有的128位浮点指令扩展到了256位,可以同时处理8个32位(4字节)的浮点数或者一个256位的数:
AVX指令集是和SandyBridge微架构紧密结合的,因此,微架构的浮点寄存器也要从128位扩展到256位,此外,Load单元也要适应一次载入256位的能力,SandyBridge没有直接扩展原有Load单元的位宽,而是通过增加了一个Load单元来达到256bit Load的能力,如下图所示:
可以看到,在0、1、5端口都增加了256位宽度AVX指令执行单元。
最后,Intel提到了,由于128位SSE指令与256位AVX指令位宽不同,在混合编码的时候,指令切换需要进行额外的寄存器高位保留操作,因此混用SSE/AVX将会导致性能损失。应尽量向新指令集进行迁移。
最后,Intel给出了在如前所述的4种常见运算下的AVX指令集加速比(AVX vs SSE over Sandy Bridge)。可以看出,在硬件环境不变的情况下,如果软件支持AVX指令集的话,速度提升可达1.5-2.5倍之多!
看来Intel是铁定决心要改进CPU的浮点运算能力,SandyBridge的下一代IVYBridge将会新增FMA指令集,FMA是同时进行一个乘法和一个加法的运算,在图形操作上很是常见,相信关注GPU图形技术的朋友们已经会比较熟悉。看得出来未来的处理器,CPU与GPU之间的界限将会非常模糊了。