大家好,又见面了,我是你们的朋友全栈君。
AVX2指令集的作用
介绍AVX指令集之前,先要引入一个向量的概念。所谓向量,就是多个标量的组合,通常意味着SIMD(单指令多数据),就是一个指令同时对多个数据进行处理,达到很大的吞吐量。早在1996年,Intel就在X86架构上应用了MMX(多媒体扩展)指令集,那时候还仅仅是64位向量。到了1999年,SSE(流式SIMD扩展)指令集出现了,这时候的向量提升到了128位。
Sandy Bridge的AVX将向量化宽度扩展到了256位,原有的16个128位XMM寄存器扩充为256位的YMM寄存器,可以同时处理8个单精度浮点数和4个双精度浮点数。换句话说,Sandy Bridge的浮点吞吐能力可以达到前代的两倍。不过AVX的256位向量还仅仅能够支持浮点运算,但它可以应用128位的SIMD整数和SIMD浮点路径。
到了AVX2指令集,就可以支持256位整数矢量操作了。它由Sandy Bridge架构上的第一代AVX指令集扩展增强而来,为绝大多数128位SIMD整数指令带来了256位数值处理能力,同时继续遵循AVX的编程模式。
▲AVX2中的新指令
▲AVX2的优点
对于普通用户来说,AVX2指令集的优点是增强了视频转码等应用的速度,让IVB比上一代SNB更加快捷。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/139381.html原文链接:https://javaforall.cn