Itanium 2上编译器性能调优方法的研究

来源 :中国科学院计算技术研究所 | 被引量 : 1次 | 上传用户:ln86119
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
编译器是一种将高级程序设计语言编写的源程序转化为语义等价的机器语言程序的系统软件。在这个过程中,编译器常常会对于输入代码进行优化,从而可以得到更好的性能或者是减少生成的代码大小等。通常对于通用处理器的编译器,性能往往是最重要的目标。开发编译器的种种优化的最终目的都是为了提高程序的性能。然而,在编译器的开发过程中,我们常常会遇到这样一种情况:在经历了很长时间的设计和实现之后,编译器可以正常运行,但是却达不到预期的优化效果,有些时候性能甚至出现了下降的情况。在这种情况下,我们就需要对基准测试用例进行分析来找出性能下降的原因。该过程我们称为性能分析。性能分析的主要目的是找到现有程序的瓶颈之处,通过对这些地方的编译优化进行分析,发现现有优化的不足并对其进行改进,从而获得性能提升。 Itanium 2是由Intel以及HP公司联合推出的一款用于高性能服务器的64位通用处理器。Itanium 2采用的是显式指令集并行(Explicitly Parallel Instruction Com-puting,EPIC)结构。EPIC结构中软硬件接口可以使得软件更好地发掘编译时信息并有效地将这些信息传递给硬件。EPIC结构提供了强大的硬件支持使得编译器能够在很大范围内的代码作全局优化。这些优化可以使得指令级并行性(Instruction LevelParallelism,ILP)更好地暴露给硬件,从而可以使得硬件资源得到更好的利用。同时,对于编译好的代码,EPIC结构可以很好地进行动态运行时优化。这样使得软件以及硬件的联系更加紧密,从而使得编译器的地位更加重要。 本论文主要讨论Itanium 2处理器上的编译器的性能分析与调优方法。论文首先介绍了性能分析与调优的基本过程以及其意义。之后,我们介绍了Itanium 2上用于性能分析与调优的常见工具以及Itanium 2本身对于性能分析和调优提供的硬件支持。在此基础上,论文讨论了Itanium 2上的性能分析以及调优的基本方法以及步骤。最后,我们给出了具体的调优实例。我们主要的调优对象是开放源代码编译器ORC(OpenResearch Compiler)。通过利用Itanium 2提供的硬件计数器及其丰富的性能监测与分析工具,我们对于SPEC CPU2000中的mgrid浮点程序进行调优。通过调优,我们发现: 1.ORC编译器中产生局部性提示的部分可以被改进。目前,ORC对所有的预取指令都产生nta的局部性提示。这里,nta表示在所有的存储层次上都没有时间局部性。对于浮点程序,大部分预取都是在循环中进行的。很显然,nta不太符合这种情况。 2.ORC编译器的代码生成部分没有很好的利用Itanium 2体系结构的特点。一个例子就是lfetch指令(预取指令)的自增模式。在该模式下,每次lfetch指令在预取
其他文献
相对许多行业而言,信息处理技术正在飞速发展。随着计算机硬件技术的发展,软件技术也是日新月异。从目前的情况来看,电信企业已经建立了相对完善的OLTP(联机事务处理)系统。随着
随着下一代网络技术的发展,传统PSTN网络上的语音业务将逐步迁移到IP网络上。VoIP技术为基于IP网络的语音通信提供了强大而有效的手段,以该技术为基础的语音通信将成为下一代
本文为多智能体系统定义了一个称之为知识结构的逻辑框架,来进行智能体的知识推理.在知识推理过程中,使用”变量忘记”(VariableForgetting)来作为基本操作,并证明算法上可以用
当前,社交媒体,如Twitter1, Facebook2,新浪微博3等,越来越融入现代人的生活,成为人们生活中的一部分。微博不仅仅是用来发布信息,很多时候也用来寻求帮助或寻找信息,越来越
随着以通讯、互联网为主的科学技术的发展,信息的获取和利用越来越方便和快捷,使得信息技术正在静悄悄改变我们的生活,改变我们的世界。但是,海量信息的出现也使得人们越来越
谱聚类算法是近年来机器学习和模式识别领域最重要也是最热门的基础算法之一。谱聚类算法将聚类问题转换为图的分割问题,通过对相应的拉普拉斯矩阵的特征向量进行聚类,找到对
随着Internet的发展,大量的信息在Internet上传输,一些重要数据的安全性问题也变得日益突出。前几年IETF提出的IPSec协议成为一种新的IP层安全解决方案。此协议的实施可对路由
传统的视频管理系统只注重效率,而不注重视频的运算能力。对于客户端而言,缺乏对客户即时的变化作出响应的能力,例如在拖动网络视频播放器时会出现网络中断的现象,其根本原因在于
未来对计算速度、系统可靠性和成本实效性的要求必将促使发展另外的计算机模型来取代传统的冯·诺依曼型结构的计算机。随着计算机网络的出现,一个新的梦想成为可能——分布
计算机网络的迅速发展给人们工作和生活带来了巨大便利,同时也对网络管理提出了更高要求。随着网络规模的扩大,网络的管理和维护越来越困难。如何保证网络运行的安全性,是各机构