指令深入分析AVX指令集

avx指令集  时间:2021-03-10  阅读:()

S N B平台掌上明珠深入分析AVX指令集

指令集是指CPU能执行的所有指令的集合每一指令对应一种操作任何程序最终要编译成一条条指令才能让CPU识别并执行。 CP U依靠指令来计算和控制系统所以指令强弱是衡量CPU性能的重要指标指令集也成为提高CPU效率的有效工具。

CPU都有一个基本的指令集 比如说目前英特尔和AMD的绝大部分处理器都使用的是X86指令集 因为它们都源自于X86架构。但无论CPU有多快 X86指令也只能一次处理一个数据这样效率就很低下毕竟在很多应用中数据都是成组出现的 比如一个点的坐标XYZ和颜色RG B 、多声道音频等。为了提高CPU在某些方面的性能就必须增加一些特殊的指令满足时代进步的需求这些新增的指令就构成了扩展指令集。

英特尔C PU扩展指令集演变

英特尔在1996年率先引入了MMXMulti Media eXtens ions多媒体扩展指令集也开创了SIMDSingle Instruction Multiple Data单指令多数据指令集之先河 即在一个周期内一个指令可以完成多个数据操作MMX指令集的出现让当时的MM XP entium大出风头。

英特尔处理器扩展指令集演变史图片来源后藤弘茂

SSEStreaming SIMD Extensions流式单指令多数据扩展指令集是1999年英特尔在Pentium III处理器中率先推出的并将矢量处理能力从64位扩展到了128位。在Willamette核心的Pentium 4中英特尔又将扩展指令集升级到S SE2 2000年 而S SE3指令集2004年是从Presc ott核心的Pentium 4开始出现。

SSE4 2007年指令集是自SSE以来最大的一次指令集扩展它实际上分成P enryn中出现的S S E4.1和Nehalem中出现的S S E4.2其中S S E4.1占据了大部分的指令共有47条Nehalem中的S SE4指令集更新很少只有7条指令这样一共有54条指令称为SSE4.2。

Sandy Bridge支持AVX指令集

当我们还在惯性的认为英特尔将推出S SE5时不料半路杀出来个程咬金 2007年8月 AMD抢先宣布了SSE5指令集(SSE到SSE4均为英特尔出品)英特尔当即黑脸表示不支持S SE5转而在2008年3月宣布Sandy Bridge微架构将引入全新的AVX指令集 同年4月英特尔公布AVX指令集规范随后开始不断进行更新业界普遍认为支持AVX指令集是Sandy Br idge最重要的进步没有之一。

英特尔AVX指令集简介

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

IDF2010上演示AVX应用

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

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

英特尔AVX的新特性

英特尔AVX指令集主要在以下几个方面得到扩充和加强

·支持256位矢量计算浮点性能最大提升2倍

·增强的数据重排更有效存取数据

·支持3操作数和4操作数在矢量和标量代码中能更好使用寄存器

·支持灵活的不对齐内存地址访问

·支持灵活的扩展性强的VEX编码方式可减少代码

支持256位矢量计算

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

128位的X MM寄存器扩展到256位的YMM寄存器

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

当然有时并不是能完全能利用这256位在大多数情况下这些寄存器的高128位是设为0或者是“LEFTunchanged” 同时所有的S SE/S SE2/S SE3/S S SE3/S SE4指令是被AVX全面兼容的AVX不兼容M MX  因此实际操作的是YMM寄存器的低128位在这一点上与原来的SSE系列指令集无异。

Sandy Bridge最突出的部分

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

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

AVX增加了很多新的浮点运算指令

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

支持3操作数和4操作数

通常一条计算机指令包括有操作码和操作数operands 操作码决定要完成的操作操作数指参加运算的数据及其所在的单元地址。 比如movaps xmm1,xmm0就是一个双操作数 SSE指令movaps为操作码其功能是将xmm0寄存器的内容复制给xmm 1 。

新的3操作数和4操作数格式

AVX指令集改进和加强了原有的在3个操作数指令的编码和语法使之更灵活。 比如要实现xmm 10=xmm9+xmm 1的功能 以前需要两个指令执行movapps xmm 10,xmm9 将xmm9寄存器数据c opy到xmm 10addpd xmm 10,xmm 1 将xmm 1和xmm 10寄存器数据相加并存放到xmm 10

应用AVX指令集新的3操作数方式可以直接由一条指令就能完成vaddpd xmm 10,xmm9,xmm 1

显然AVX三操作数能带来更少的寄存器复制并且代码也更精简。

4操作数虽然是AMD在S S E5中首先提出的但英特尔的AVX也能支持这一方式其最终收益是对AVX 128和AVX 256使用非破坏性语法减少寄存器间的拷贝精简代码增加load/op fusion的机会。movaps xmm0,xmm4movaps xmm 1,xmm2blendvps xmm 1,m 128

比如上面的三条指令利用4操作数可以不需要使用隐含的xmm0直接由下面一条指令完成vblendvp s xmm 1,xmm2,m 128,xmm4

支持灵活的不对齐内存地址访问

CPU在工作时只能按照内部数据位宽长度比如说32bit的整倍数为边界进行内存操作即只能从地址0、 32、 64、 96. ..处进行存取而不能从27、 58、 83等非边界地址处进行。如果一定要取这些非边界地址处的内容则必须用若干个操作将其凑出来 因而大大影响存取效率。

一个结构体的设计长度却并不一定是32的倍数例如一个六个字符的结构其长度为48位如果多个这样的结构在内存中顺着摆放则许多结构的起始地址将不在边界处 因此编译程序总是会将每个结构的尾部都加入一些必要的空白将其凑成32的整数倍这就是边界对齐的基本道理。

传统的指令中 当访问不对齐内存unaligned memory ac c es s时需要相当大的访问周期甚至会有惩罚性延时极大地降低速度。

而在AVX指令集中 以VE X前缀编码的算术指令和内存访问指令在访问内存时更灵活既可访问对齐的内存地址也可访问未对齐的数据。当然访问未对齐数据多少都会有损失但相对传统的指令来说所承受的惩罚要小得多。

革新的VEX指令编码方式

英特尔在2008年春天的I DF上介绍AVX的时候就表示AVX的重点在于采用了称为“VEX(Vector Extension)”革新的指令编码方式。

随风云25元/月 ,德阳高防云服务器 2核2G 10M 75元/月 内蒙古三线BGP服务器 2核2G 5M

公司介绍成都随风云科技有限公司成立于2021年,是国内领先的互联网业务平台服务提供商。公司专注为用户提供低价高性能云计算产品,致力于云计算应用的易用性开发,并引导云计算在国内普及。目前公司研发以及运营云服务基础设施服务平台(IaaS),面向全球客户提供基于云计算的IT解决方案与客户服务,拥有丰富的国内BGP、双线高防、香港等优质的IDC资源。公司一直秉承”以人为本、客户为尊、永续创新&...

Boomer.host:$4.95/年-512MB/5GB/500GB/德克萨斯州(休斯顿)

部落曾经在去年分享过一次Boomer.host的信息,商家自述始于2018年,提供基于OpenVZ架构的VPS主机,配置不高价格较低。最近,主机商又在LET发了几款特价年付主机促销,最低每年仅4.95美元起,有独立IPv4+IPv6,开设在德克萨斯州休斯顿机房。下面列出几款VPS主机配置信息。CPU:1core内存:512MB硬盘:5G SSD流量:500GB/500Mbps架构:KVMIP/面板...

亚州云-美国Care云服务器,618大带宽美国Care年付云活动服务器,采用KVM架构,支持3天免费无理由退款!

官方网站:点击访问亚州云活动官网活动方案:地区:美国CERA(联通)CPU:1核(可加)内存:1G(可加)硬盘:40G系统盘+20G数据盘架构:KVM流量:无限制带宽:100Mbps(可加)IPv4:1个价格:¥128/年(年付为4折)购买:直达订购链接测试IP:45.145.7.3Tips:不满意三天无理由退回充值账户!地区:枣庄电信高防防御:100GCPU:8核(可加)内存:4G(可加)硬盘:...

avx指令集为你推荐
ip购买不同的ID不同的IP买同一个店铺同样的商品属于虚假交易吗?futureshop笔记本电脑一般国外比国内便宜多少中老铁路地铁路是怎么造的?是钻地吗?蓝色骨头手机宠物的一个蓝色骨头代表多少级,灰色又代表多少级,另外假如有骨头又代表多少级陈嘉垣陈浩民、马德钟强吻女星陈嘉桓,求大家一个说法。psbc.com邮政储蓄卡如何激活同一ip网站同IP的网站互相链接会被K吗?seo优化工具想找一个效果好的SEO优化软件使用,在网上找了几款不知道哪款好,想请大家帮忙出主意,用浙江哪款软件效果好seo优化工具seo优化软件有哪些?lcoc.top日本Ni-TOP是什么意思?
域名查询系统 过期备案域名查询 北京vps 187邮箱 jsp主机 cpanel主机 英语简历模板word 国内加速器 php空间申请 沈阳主机托管 电信网络测速器 游戏服务器出租 免费网络 永久免费空间 石家庄服务器 fatcow cc攻击 sockscap怎么用 八度空间论坛 总线制报警主机 更多