- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
深入分析AVX指令集.
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的能力,所以增加了一组载入单元完成载入操作,并不是单纯的将带宽扩展一倍。这样可以在一个时钟
您可能关注的文档
最近下载
- 中央厨房工作控制流程及操作标准.doc
- N_乙基_N_氯乙基间甲苯胺的合成及应用.pdf VIP
- 消防设施操作员(高级技能操作考核)考试题库(全).pdf VIP
- 2022年消防设施操作员资格(高级技能操作考核)考试题库完整版(含答案).docx VIP
- 非ST段抬高型心肌梗死新指南.ppt
- (第二十届计算机表演赛内蒙古赛区呼和浩特市主赛场比赛时间安排.doc VIP
- 中国建设银行单位客户专用回单.PDF VIP
- 2023年江西农业大学南昌商学院计算机科学与技术专业《操作系统》科目期末试卷A(有答案).docx VIP
- 初中英语课件:一般过去时【模板课件】.ppt VIP
- 2025年混凝土质量控制及管理制度(二篇) .pdf VIP
文档评论(0)