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

paypal$10的代金券,选购美国VPS

paypal贝宝可撸$10的代金券!这两天paypal出了活动,本次并没有其他的限制,只要注册国区的paypal,使用国内的手机号和62开头的银联卡,就可以获得10美元的代金券,这个代金券购买产品需要大于10.1美元,站长给大家推荐几个方式,可以白嫖一年的VPS,有需要的朋友可以看看比较简单。PayPal送10美元活动:点击直达活动sfz与绑定卡的号码可以重复用 注册的邮箱,手机号与绑的银联卡必须...

LightNode($7.71/月)香港cn2精品线路

LightNode官网LightNode是一家位于香港的VPS服务商.提供基于KVM虚拟化技术的VPS.在提供全球常见节点的同时,还具备东南亚地区、中国香港等边缘节点.满足开发者建站,游戏应用,外贸电商等应用场景的需求。为用户带来高性能服务器以及优质的服务的同时还提供丰厚的促销活动,新用户注册最高送$20。注册用户带新客即可得10%返佣。商家支持PayPal,支付宝等支付方式。官网:https:/...

UCloud年度大促活动可选香港云服务器低至年134元

由于行业需求和自媒体的倾向问题,对于我们个人站长建站的方向还是有一些需要改变的。传统的个人网站建站内容方向可能会因为自媒体的分流导致个人网站很多行业不再成为流量的主导。于是我们很多个人网站都在想办法进行重新更换行业,包括前几天也有和网友在考虑是不是换个其他行业做做。这不有重新注册域名重新更换。鉴于快速上手的考虑还是采用香港服务器,这不腾讯云和阿里云早已不是新账户,考虑到新注册UCLOUD账户还算比...

avx指令集为你推荐
游戏用户超6亿32游戏钱包是什么来的?.cn域名cn是什么域名?怎么查询商标如何查询商标注册硬盘工作原理硬盘的工作原理是什么?同ip网站查询我的两个网站在同一个IP下,没被百度收录,用同IP站点查询工具查询时也找不到我的网站,是何原因?百度关键词价格查询如何查到推广关键词的价钱?lcoc.toptop weenie 是什么?lcoc.topoffsettop和scrolltop的区别baqizi.cc讲讲曾子杀猪的主要内容!baqizi.cc誰知道,最近有什麼好看的電視劇
日本私人vps 美国vps推荐 荷兰vps 淘宝二级域名 阿云浏览器 host1plus mediafire 国内永久免费云服务器 双12活动 英文站群 三拼域名 帽子云 免费cdn gtt 东莞idc 台湾google 中国电信网络测速 主机返佣 睿云 谷歌搜索打不开 更多