指令深入分析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指令集了 。

萤光云(16元/月)高防云服务器自带50G防御

螢光云官網萤光云成立于2002年,是一家自有IDC的云厂商,主打高防云服务器产品。在国内有福州、北京、上海、台湾、香港CN2节点,还有华盛顿、河内、曼谷等海外节点。萤光云的高防云服务器自带50G防御,适合高防建站、游戏高防等业务。本次萤光云中秋云活动简单无套路,直接在原有价格上砍了一大刀,最低价格16元/月,而且有没有账户限制,新老客户都可以买,就是直接满满的诚意给大家送优惠了!官网首页:www....

AlphaVPS(€3.99/月)VPS年付15欧,AMD EYPC+NVMe系列起

AlphaVPS是一家保加利亚本土主机商(DA International Group Ltd),提供VPS主机及独立服务器租用等,数据中心包括美国(洛杉矶/纽约)、德国、英国和保加利亚等,公司办公地点跟他们提供的保加利亚数据中心在一栋楼内,自有硬件,提供IPv4+IPv6,支持PayPal或者信用卡等方式付款。商家提供的大硬盘VPS主机,提供128GB-2TB磁盘,最低年付15欧元起,也可以选择...

VPSMS:53元/月KVM-512MB/15G SSD/1TB/洛杉矶CN2 GIA

VPSMS最近在做两周年活动,加上双十一也不久了,商家针对美国洛杉矶CN2 GIA线路VPS主机提供月付6.8折,季付6.2折优惠码,同时活动期间充值800元送150元。这是一家由港人和国人合资开办的VPS主机商,提供基于KVM架构的VPS主机,美国洛杉矶安畅的机器,线路方面电信联通CN2 GIA,移动直连,国内访问速度不错。下面分享几款VPS主机配置信息。CPU:1core内存:512MB硬盘:...

avx指令集为你推荐
编程小学生惊库克大家觉得VIPCODE少儿编程怎么样?存储备份手机备份到内部存储怎么查询商标如何查询商标注册同一服务器网站同一服务器上的域名/网址无法访问抓站工具一起来捉妖神行抓妖辅助工具都有哪些?杨丽晓博客杨丽晓是如何进入娱乐圈的?partnersonline国内有哪些知名的ACCA培训机构dpscycle寻求LR 高输出宏朴容熙这个网诺红人叫什么www.zzzcn.com哪里有免费看书的网站
域名批量查询 paypal认证 wdcp godaddy域名优惠码 xfce 阿里云代金券 2017年万圣节 租空间 蜗牛魔方 40g硬盘 200g硬盘 工作站服务器 域名转接 如何注册阿里云邮箱 香港亚马逊 smtp虚拟服务器 上海电信测速网站 云营销系统 lamp什么意思 lamp兄弟连 更多