指令深入分析avx指令集

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

SNB平台掌上明珠深入分析AVX指令集

指令集是指CPU能行的所有指令的集合每一指令 一操作任何程序最要 成一条条指令才能CPU 并行。CPU依靠指令来算和控制系所以指令强弱是衡量CPU性能的重要指指令集也成提高CPU效率的有效工具。

CPU都有一个基本的指令集 比如目前英特和AMD的大部分理器都使用的是X86指令集 因它都源自于X86架构。但无CPU有多快 X86指令也只能一次理一个数据 效率就很低下 竟在很多用中数据都是成出的 比如一个点的坐 XYZ和色 RGB 、多声道音等。 了提高CPU在某些方面的性能就必增加一些特殊的指令足代步的需求 些新增的指令就构成了展指令集。

英特 CPU 展指令集演

英特在1996年率先引入了MMX Multi Media eXtensions 多媒体展指令集 也了SIMD Single Instruction Multiple Data 指令多数据指令集之先河即在一个周期内一个指令可以完成多个数据操作 MMX指令集的出 当的MMX Pentium大出 。

英特 理器展指令集演史片来源后藤弘茂

SSE Streaming SIMD Extensions 流式指令多数据展指令集是1999年英特在Pentium III理器中率先推出的 并将矢量理能力从64位展到了128位。在Willamette核心的Pentium 4中英特又将展指令集升到SSE2 2000年  而SSE3指令集 2004年是从Prescott核心的Pentium 4始出 。

SSE4 2007年指令集是自SSE以来最大的一次指令集展 它 上分成Penryn中出

的SSE4.1和Nehalem中出的SSE4.2其中SSE4.1占据了大部分的指令 共有47条Nehalem中的SSE4指令集更新很少 只有7条指令 一共有54条指令称SSE4.2 。

Sandy Bridge支持AVX指令集

当我 在性的 英特将推出SSE5  不料半路出来个程咬金 2007年8月 AMD先宣布了SSE5指令集(SSE到SSE4均英特出品) 英特当即黑表示不支持SSE5 而在2008年3月宣布Sandy Bridge微架构将引入全新的AVX指令集 同年4月英特公布AVX指令集范随后始不断行更新 界普遍 支持AVX指令集是Sandy Bridge最重要的步没有之一。

英特AVX指令集介

AVX Advanced Vector Extensions 高矢量展指令集借了一些AMD SSE5的思路 行展和加强 形成一套新一代的完整SIMD指令集范。

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位XMM寄存器 次AVX将所有16个128位XMM寄存器充256位的YMM寄存器从而支持256位的矢量算。

128位的XMM寄存器展到256位的YMM寄存器

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

当然有并不是能完全能利用 256位在大多数情况下 些寄存器的高128位是 0或者是“LEFTunchanged”  同所有的SSE/SSE2/SSE3/SSSE3/SSE4指令是被AVX全面兼容的 AVX不兼容MMX  因此 操作的是YMM寄存器的低128位在一点上与原来的SSE系列指令集无异。

Sandy Bridge最突出的部分

了足指令集来的改 Load入元也要适一次入256Bit的能力所以增加了一入元完成入操作 并不是 的将 展一倍。 可以在一个 周期内 256位的乘、加和Shuffle运算。

使用新的256位寄存器来提升数据I/O效率 更好的 、播入的数据 的改数据序列 以此来 、 和入运算所需的数据速度更快效率更高。

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

AVX 引入了很多新的浮点运算指令浮点运算能力加强 不光提升了3D游 可以更有效的支持如 的flash示 更快的SVG 可伸矢量形支持 更好的HTML5效果等等相比用GPU算来功耗更小体更小 成本也小 GPU算是个不大不小的冲。支持3操作数和4操作数

通常一条算机指令包括有操作和操作数operands 操作决定要完成的操作操作数指参加运算的数据及其所在的元地址。比如movaps xmm1, xmm0就是一个双操作数SSE指令movaps操作其功能是将xmm0寄存器的内容制xmm1 。

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

AVX指令集改和加强了原有的在3个操作数指令的 和法使之更灵活。比如要xmm10 = xmm9 + xmm1的功能 以前需要两个指令行movapps xmm10, xmm9 将xmm9寄存器数据copy到xmm10addpd xmm10, xmm1 将xmm1和xmm10寄存器数据相加 并存放到xmm10

用AVX指令集新的3操作数方式 可以直接由一条指令就能完成vaddpd xmm10, xmm9, xmm1

然AVX三操作数能来更少的寄存器制 并且代也更精 。

4操作数然是AMD在SSE5中首先提出的但英特的AVX也能支持一方式其最收益是AVX 128和AVX 256使用非破坏性法减少寄存器的拷精代增加load/op fusion的机会。

movaps xmm0, xmm4movaps xmm1, xmm2blendvps xmm1,m128

比如上面的三条指令 利用4操作数 可以不需要使用含的xmm0 直接由下面一条指令完成vblendvps xmm1, xmm2,m128, xmm4

支持灵活的不 内存地址

CPU在工作只能按照内部数据位 度比如 32bit 的整倍数 界行内存操作即只能从地址0 、32 、64 、96. . . 行存取 而不能从27 、58 、83等非界地址 行。如果一定要取些非界地址的内容 必用若干个操作将其凑出来 因而大大影响存取效率。

一个并构的体 度却 不一定是32的倍数例如一个六个字符的构其度48位如果多个 的构在内存中着放 多构的起始地址将不在界 因此 程序是会将每个将的尾部都加入一些必要的空白凑其 成 32的整数倍 就是界 的基本道理。

的指令中 当 不 内存unaligned memory access  需要相当大的 周期 甚至会有 性延极大地降低速度。

而在AVX指令集中 以VEX前 的算指令和内存 指令在 内存更灵活既可

的内存地址 也可 未 的数据。当然 未 数据 多少都会有失但相 的指令来所承受的 要小得多 。

革新的VEX指令 方式

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

VEX 指令解决方案x86指令集容易 但是每次于新指令和新数据型的增加都会在操作 opcode之前增加了一个字的前 prefix 从而 展的支持。 的就来指令集的 化和命令度增加从而致二制的冗余和增加CPU命令解硬件的 性。

VEX 方式解决了个  VEX的构想就是 prefix中包含的信息在1个字的payload中全部包括了prefix的内容 短指令度从而极大地降低了无的code size浪 。并且在今后入的新的寄存器中 128bits或更的256bits的数据 也将在payload中 。

Intel AVX vs.AMD XOP 片来源后藤弘茂

VEX prefix分2个字和3个字的版本即前部分使用C4h和C5h 。AMD的XOP指令集采用了似的方式 XOP前字改成了8Fh 然前不同但是payload部分的格式与VEX是相同的。AVX的VEX的 系 也反了英特 理器今后的化  它解决了x86系列CPU在解能力上的不足。

AVX是Sandy Bridge最重要的改

AVX相SSE来的理速度提升

英特AVX指令集将矢量理能力提升到256bit理上可以CPU的浮点性能最大提升两倍 而且革新的VEX 方式也突破x86在解方面的瓶 非常得期待。

由于AMD的SSE5和AVX指令集功能似 并且AVX包含更多的秀特性 然SSE5是要早于AVX宣布的但在去年AMD是决定支持AVX避免 者徒增 度。同AMD改写SSE5 重定 XOP 、CVT16和FMA4指令集。AMD有人甚至暗示由于受到了AVX指令集影响 Bulldozer的划从2010年延到了2011年。

AVX作Sandy Bridge理器最重要的改在几天后将亮登 除硬件支持外 件上的支持也是必不可少的所幸的是windows 7 SP1已 始支持英特AVX指令集了 。

Sharktech云服务器35折年付33美元起,2G内存/40G硬盘/4TB流量/多机房可选

Sharktech又称SK或者鲨鱼机房,是一家主打高防产品的国外商家,成立于2003年,提供的产品包括独立服务器租用、VPS云服务器等,自营机房在美国洛杉矶、丹佛、芝加哥和荷兰阿姆斯特丹等。之前我们经常分享商家提供的独立服务器产品,近期主机商针对云虚拟服务器(CVS)提供优惠码,优惠后XS套餐年付最低仅33.39美元起,支持使用支付宝、PayPal、信用卡等付款方式。下面以XS套餐为例,分享产品配...

GigsGigsCloud(年付26美元)国际线路美国VPS主机

已经有一段时间没有听到Gigsgigscloud服务商的信息,这不今天看到商家有新增一款国际版线路的美国VPS主机,年付也是比较便宜的只需要26美元。线路上是接入Cogentco、NTT、AN2YIX以及其他亚洲Peering。这款方案的VPS主机默认的配置是1Gbps带宽,比较神奇的需要等待手工人工开通激活,不是立即开通的。我们看看这款服务器在哪里选择看到套餐。内存CPUSSD流量价格购买地址1...

搬瓦工:新增荷兰机房 EUNL_9 测评,联通 AS10099/AS9929 高端优化路线/速度 延迟 路由 丢包测试

搬瓦工最近上线了一个新的荷兰机房,荷兰 EUNL_9 机房,这个 9 的编号感觉也挺随性的,之前的荷兰机房编号是 EUNL_3。这次荷兰新机房 EUNL_9 采用联通 AS9929 高端路线,三网都接入了 AS9929,对于联通用户来说是个好消息,又多了一个选择。对于其他用户可能还是 CN2 GIA 机房更合适一些。其实对于联通用户,这个荷兰机房也是比较远的,相比之下日本软银 JPOS_1 机房可...

avx指令集为你推荐
原代码什么是原代码www.5ff.comhttp://www.940777.com/网站,是不是真的网投六合www.5any.com我想去重庆上大学sodu.tw台湾人看小说的网站是hao.rising.cn电脑每次开机的时候,都会弹出“http://hao.rising.cn/?b=34” 但是这个时ename.com趫 是什么意思?莱姿蔓莎琳蒂蔓的护肤怎么样呢?新广告法新广告法9月1日起正式执行 极限用语罚款20万起carlymilo衣服品牌 BABY MILO 中国有没有店` 产品有的买吗?苦木丹话梅丹是不是垃圾食品
深圳域名空间 阿云浏览器 阿里云os 京东商城双十一活动 韩国名字大全 100m独享 太原网通测速平台 Updog 789电视剧 空间登录首页 带宽租赁 丽萨 买空间网 开心online 九零网络 cloudflare 美国vpn服务器 paypal登陆 linuxvi命令 免费服务器代理 更多