AVX2指令集使整数和浮点运算速度翻倍
Haswell看点之一:AVX2指令集使整数和浮点性能翻倍
指令集的更新对于普通用户的影响主要体现在整数运算和浮点运算两方面。包括操作系统以及游戏在内的计算机日常应用代码主要依靠整数运算。AVX2指令集引入了对256位整数矢量指令的支持,让Haswell处理器的整数运算比上代架构有了更大提升,软件响应速度更快,运行更流畅。另外,较多使用整数运算的图像、视频处理也将受益。
在浮点运算出现较多的领域,比如说游戏效果、3D动画以及视频播放等方面,新的FMA单元也可以加强了处理器浮点运算性能。AVX2指令集帮助Haswell处理器提升浮点运算性能,也就是说,Haswell处理器将能比Sandy Bridge和Ivy Bridge展现出更强的3D性能和更快更准的通用计算能。
指令集的全面更新是Haswell的一大看点。从2011年初发布的SandyBridge架构之后,英特尔就一直在使用AVX指令集,此后一直延续至SandyBridge-E以及IvyBridge架构。而此番Haswell的最大更新就是采用了全面更新的AVX2指令集。
AVX2是由AVX指令集扩展增强而来的,为绝大多数128位SIMD整数指令带来了256位数值处理能力,同时继续遵循AVX的编程模式。除此之外,AVX2还提供了一系列增强的功能性,包括数据元素的广播(broadcast)、逆变(permute)操作,每个数据元素可变位移计数的矢量位移指令,从内存中拾取非相邻数据元素的指令等等。
具体的扩展包括以下几个方面:支持的整点SIMD数据宽度从128位扩展到256位。Sandy Bridge虽然已经将支持的SIMD数据宽度增加到了256位,但仅仅增加了对256位的浮点SIMD支持,整点SIMD数据的宽度还停留在128位上,
增强广播、置换指令支持的数据元素类型、移位操作对各个数据元素可变移位数的支持、跨距访存支持。根据资料显示,每核心每时钟周期的单精度、双精度浮点均翻一番,可执行两个FMA操作,还有其他一些新的指令。一级、二级缓存的管理方式和容量都没变,但得益于AVX2,带宽均翻了一番,对于AVX2代码和老代码都有效。
其中最为重要的是对256位的整数SIMD的支持,并新增60条256位浮点SIMD指令,完善从AVX开始的256位扩展,理论上可再次提升整数和浮点运算速度。仅仅通过这一项指令集的提升,处理器峰值浮点运算单元的运算能力就可以翻倍。