多线程多SIMD自动向量化技术研究

来源 :国防科学技术大学 | 被引量 : 0次 | 上传用户:wlh0403
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
当前,主流通用微处理器都已经实现了多核并行以及处理器核内的SIMD并行。多线程并行且每个线程尽可能地利用SIMD并行是充分开发此类微处理器性能的必然选择。多核多SIMD体系结构的发展需要与之相适应的编程模型和编译优化技术。本文研究多线程多SIMD并行下的自动向量化技术。OpenMP编程接口和编译实现是广泛使用的多线程并行机制,典型编译器都可以在支持OpenMP并行的同时实现面向SIMD的自动向量化,但是效果还不是很理想。本文首先介绍了面向SIMD并行的自动向量化技术,基于GCC编译器剖析了自动向量化编译框架,并详细分析了自动向量化的实现过程。其次,通过对典型并行循环的测试分析,发现GCC目前已支持多种多线程并行下的自动向量化,但是对于一些赋值类循环,编译结果显示不能进行自动向量化。之后,针对GCC编译器的OpenMP编译实现和自动向量化编译实现,本文分析了OpenMP编译实现过程,着重分析了GCC编译器的自动向量化代价模型。自动向量化代价模型抽象出了自动向量化所要考虑的诸多因素。通过分析,发现GCC中自动向量化及代价模型对多线程程序的数据对齐属性判断不准确,导致自动向量化代价模型对多线程程序的代价计算不够准确,影响了一些赋值类循环在多线程下的自动向量化。最后,实现了基于数据对齐属性指导的GCC自动向量化优化。扩展了OpenMP指导命令,添加了指导数据对齐属性的子句(aligned)。通过修改OpenMP编译的前端和中端,将数据对齐属性传递到编译器的自动向量化阶段,使自动向量化代价计算更加准确,针对一些循环实现了多线并行的同时也能自动向量化。实验表明,本文的工作针对嵌套赋值循环有比较好的加速效果。
其他文献
网络处理器(NP)是结合通用CPU可编程性和ASIC高性能,为优化包处理而设计的。由于NP体系结构的复杂性和多样性,软件开发通常仅支持微代码汇编语言,程序开发难度较大。因此,需
  无线电子商务,是指利用无线通信设备与因特网有机结合,进行的电子商务活动。无线电子商务具有访问终端类型多样,显示范围较小,无线网络时延大等特点。在电子商务中,内容管理的
网络管理是保证网络的连续正常运行,或者当网络运行出现异常时能及时响应和排除故障,从而确保网络用户获得信息技术服务及他们所期望的服务质量的重要手段。随着移动网络规模
  本文首先分析了现有的多种网络计算模型,然后提出了一种基于通用网络服务的、结构简便、计算代码可用传统RAD工具开发、适应Intranet和Internet计算环境的松散的网络计算
监控与数据采集系统(SCADA)是以计算机为基础的生产过程控制与调度自动化系统本文分析了无线数据传输技术存在的问题、SCADA系统的国内外现状及发展趋势,详细探讨了GPRS技术
现今,越来越多的嵌入式实时系统应用到各行各业中,给我们的生活带来很大便利。但这些系统正在变得日益复杂,并且对可用性、可靠性、安全性等非功能特性都有严苛要求。同时,由
为了满足日益复杂的空间任务发展需求,国际空间数据系统咨询委员会(Consultive Committee for Space Data System,CCSDS)提出了高级在轨系统建议(Advanced Oribiting Systems
  网格技术是近来计算机领域的一个研究热点。网格中计算资源的使用是网格研究中的一个重点。GT3是当前网格技术的一个中间件,也是面向服务网格技术事实上的标准。GT3用RSL
随着网络的普及以及新的应用如VoD,VoIP的出现,网络的突发业务流量急剧增加,使得基于传统的PSTN的流量特征不再适合当前网络流量的分析。由于自相似模型能够更加真实地描述网络
数据的插入、删除、修改和查询操作是数据库维护的主要工作,异构分布式数据库的数据维护工作因其异构分布而变得相当困难。随着Internet的迅速发展,研发基于Web的异构分布式数