基于数据级自动向量化的编译优化研究综述.docVIP

基于数据级自动向量化的编译优化研究综述.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于数据级自动向量化的编译优化研究综述.doc

  基于数据级自动向量化的编译优化研究综述 摘要: SIMD扩展部件是一种在多媒体程序和科学计算程序中提供指令并行的加速部件。本文首先介绍SIMD扩展部件的背景及行业现状,然后从挖掘方法、指针别名这2个角度介绍了SIMD现阶段发展情况,在此基础上并对SIMD编译优化方向进行了展望。 中国 8/vie   关键词: SIMD; 自动向量化; 数据级并行   中图分类号: TP393   文献标志码:A   : 2095-2163(2016)06-0068-04   0引言   为了提高多媒体业务的整体集成性能,当代处理器均已陆续采用了基于SIMD的指令集扩展,意图在一个时钟周期上操作多个同构数据,并且该方法已在专用处理器和通用处理器中得到了高效使用,较早如Texas C62XX(Texas Instruments,1998)、Intel IA32(Intel 2000)、AMD K6(Advanced Micro Devices,1999)等等。SIMD是single instruction and multiple data 的简写,主要用于实现同时处理相同数学运算的同构操作数[1]。   上世纪,Intel率先在奔腾处理器中加入MMX[2],旨在提高有关图形、影像和声音等应用的处理速度,同时,支持的指令也较为清晰简单。随后即有SSE、SSE2、SSE3、SSE4.1的相继面世,其中的SSE[3]是MMX的超集。具体来说,SSE能够提供更高分辨率的图像浏览,获取高精优质的音视频,在指标效果愈加改进的语音识别方面却只需占取更少的CPU资源,当然,在功能方面,完善了之前非对齐访问相关的应用设计,增加了跨幅、插入、寻找等操作。在此之后应运而生的AVX、AVX2与IMCI,涉及的编译技术则从基于基本块对程序进行分析转到基于循环的分析,尤其对逻辑关系更加复杂的多重循环展开了向量化并行度的深入讨论;更进一步地,应用场景也由图形图像处理延伸到高性能计算中。与此同时,除了Intel积极行动之外,还有许多厂商纷纷进入SIMD的研发天地,重点包括VIS(Sun SPARK)]、MAX(HP PA-RISC处理器)、BlueGene/L[4](IBM)、MVI-2(DEC Alpha)[5]、国产的SD插件不仅在多媒体加速方面获得了成功应用,还已延拓到数字信号处理、图形图像、游戏加速等多个领域[8]。当然就优化实力而言,现阶段SIMD扩展在天然的数据并行、重复的访存模式、重复性的操作局部数据,FFT(快速傅里叶变换)、编解码方面的效果较为明显。并且,在后续的发展实践中,人们发现同样可以使用SIMD来加速科学计算程序,如在对DNA序列进行比对、求根运算和矩阵运算、以及加解密算法等的研发处理中,SIMD早已渗透到方方面面[9]。而指针的别名分析、复杂的数据依?和控制依赖、以及不规则的访问模式等等,却都阻碍着向量指令的有效挖掘[10]。   本文第一节对比传统向量机和SIDM扩展部件的体系结构说明SIMD的优势,通过列举手写汇编和自动向量化引出自动编译。第2、3节探讨分析了发掘方法、数据布局和部分优化算法。第4节论述了编译优化的未来发展趋势,第5节则给出了全文总结。   [BT4]1SIMD研发概述   [BT5]1.1体系结构的对比   并行处理计算机在结构方面主要为以下几种:流水线结构、多功能部件结构、阵列结构、多处理机结构和数据流结构[11]。其中,流水线结构将指令执行过程分为若干段,每段执行指令的一部分。当本段指令执行后而即将进入下一段时,下条指令就会流入本段。因此,流水线计算机在整个流水线上可以对若干指令来设定并行处理。SIMD就是在一个控制器下对多个处理单元来选择提供控制[12],对一队列数据中的所有元素进行同类操作,以此实现空间并行,相对于SIMD只是一个通用处理器的插件而言,传统向量机的存储系统和互联结构都展开了专门的设计。   [BT5]1.2使用途径   SIMD挖掘可划分为2类:手写汇编和自动向量化。具体来说,手写汇编即手工向量化[13],这就对程序员提出了重点要求,也就是需要具备丰富的实战经验。以及对体系结构和指令集的丰厚知识。但在大规模并行的条件下,指令间数据、控制依赖关系较为复杂,手写汇编工作量甚大,出错概率增加,因而生成的代码很难具备普适性[14],且不同的处理器,向量化指令集在配置上也各有不同,相应地也未能呈现良好可移植性。而自动向量化则是从编译器角度出发,通过对程序的控制流、数据流进行分析,自主实现标量代码向量化的方法。在此过程中,程序员已无需考虑应用程序的具体细节,更遑论对程序的单独设计修改,工作量由此将大大减少。不仅如此,编译器还可以对程序生成各种优化处理,这一切均已使得编译器自动向量化正日

您可能关注的文档

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档