首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 109 毫秒
1.
马春燕  吕炳旭  叶许姣  张雨 《软件学报》2023,34(7):3022-3042
随着多核处理器的普及应用,针对嵌入式遗留系统中串行代码的自动并行化方法是研究热点.其中,针对具有非完美嵌套结构、非仿射依赖关系特征的复杂嵌套循环的自动并行化方法存在技术挑战.提出了一种基于LLVMPass的复杂嵌套循环的自动并行化框架(CNLPF).首先,提出了一种复杂嵌套循环的表示模型,即循环结构树,并将嵌套循环的正则区域自动转换为循环结构树表示;然后,对循环结构树进行数据依赖分析,构建循环内和循环间的依赖关系;最后,基于OpenMP共享内存的编程模型生成并行的循环程序.针对SPEC2006数据集中包含近500个复杂嵌套循环的6个程序案例,分别对其进行复杂嵌套循环占比统计和并行性能加速测试.结果表明,提出的自动并行化框架可以处理LLVMPolly无法优化的复杂嵌套循环,增强了LLVM的并行编译优化能力,且该方法结合Polly的组合优化,比单独采用Polly优化的加速效果提升了9%-43%.  相似文献   

2.
代码优化是编译器的重要阶段,是编译技术的研究重点。优化算法复杂度高,需要有效地测试用例生成方法对其进行充分的测试。提出了一种测试用例自动生成方法,能直观简单地生成具有可优化成分的程序,有针对性地对编译优化进行有效测试。重点介绍了该方法的基础、程序控制结构生成算法,并介绍了基于本方法实现的一个编译器自动测试工具。  相似文献   

3.
一种编译优化测试用例自动生成方法的设计与实现   总被引:1,自引:1,他引:0  
编译器的质量保证对提高软件产品的质量有着重要作用,对编译优化的测试是其中的核心部分.对编译优化的测试需要大量的测试用例程序.要构造这些测试用例,使用传统手工构造方法面临着效率低的问题,而基于文法的构造方法则针对性不足.从对优化的形式化描述出发来自动构造测试用例能克服这些缺点.本文设计并实现了一种基于形式化描述的编译优化测试用例程序生成方法.该方法基于编译优化的时序逻辑描述构造关键顶点控制流图,逐步转换为控制流图并得到用例程序.针对GCC(版本4.1.1)进行的覆盖率测试实验表明,该方法可以生成具有较高针对性的测试用例,并达到相当的覆盖程度.  相似文献   

4.
随着计算机体系结构的发展,分布式存储结构以其良好的扩展性逐渐占据了高性能计算机体系结构市场的主导地位.为了将现有的串行程序转换为能够在高性能计算机上运行的并行程序,研究人员提出了并行化编译器.然而,当前面向分布存储并行系统的编译器发展却相对较慢,而面向共享存储并行系统的编译器及其相应技术已逐渐成熟.一种开发面向分布存储并行系统编译器的可行方法是改进现有的面向共享存储并行系统的编译器,使其自动生成能够在分布存储结构高性能计算机上运行的MPI(Message Passing Interface)并行程序.因此,该文为面向共享存储并行系统的编译器Open64设计并实现了一个支持MPI代码生成的后端.根据分布式并行化编译的特点,主要从自动生成计算划分、改进循环优化和自动生成MPI并行代码3个方面对Open64进行了改进,使其能够实现面向分布存储的并行化编译.实验测试利用带有MPI后端的Open64对串行程序进行编译,生成的MPI并行代码可直接运行在具有分布存储结构的高性能计算机上.通过将该MPI并行代码的执行效率与传统面向分布存储并行系统编译器生成的MPI代码效率进行比较,并行效率有明显的提升.  相似文献   

5.
基于ATML测试描述文档自动生成测试程序过程中,关键是实现测试资源与测试需求的自动匹配;首先对ATML测试描述文档中测试能力、测试需求、开关、端口、能力与资源的映射等基本数据元素的表示方法进行分析研究,定义了与其对应的C++数据类型;然后在研究图论相关理论的基础上,分析了描述文档中测试路径的表示方法,确定了采用邻接矩阵表示测试路径的方法;最后,在以上研究的基础上,提出了以稀疏矩阵和单链表为基础的测试能力与测试需求匹配算法,实现了测试能力与测试需求的自动匹配;该算法在实际测试程序开发中得到了应用,结果表明该算法能够实现基于ATML描述文档的测试资源与测试需求自动匹配,并能极大提供测试程序开发效率。  相似文献   

6.
嵌入式RISC-V处理器交叉开发生成高质量目标代码的关键是GCC的移植与优化.分析GCC的基本结构和RISC-V体系结构的数据与指令特点,建立GCC后端移植机制,采用机器描述方法,生成32位riscv-none-embed-gcc编译器,实现RISC-V处理器的GCC移植,设计强度削弱的窥孔优化方法解决中间代码生成过程中CPU计算代价高的问题.验证与测试结果表明编译器编译正确并具有通用功能,优化后编译生成的目标代码体积减少约11%,提高了目标代码质量,节省了嵌入式处微理器的存储空间.  相似文献   

7.
申威众核片上多级存储层次是缓解众核“访存墙”的重要结构.完全由软件管理的SPM结构和片上RMA通信机制给应用性能提升带来很多机会,但也给应用程序开发优化与移植提出了很大挑战.为充分挖掘片上存储层次特点提升应用程序性能,同时减轻用户编程优化负担,本文提出了一种多级存储层次访存与通信融合的编译优化方法.该方法首先设计了融合编译指示,将程序高层信息传递给编译器.其次构建了编译优化收益模型并设计了启发式循环优化方案迭代求解框架,并由编译器完成循环优化方案的求解和优化代码的变换.通过编译生成的DMA和RMA批量数据传输操作,将较低存储层次空间中高访问延迟的核心数据批量缓冲进低访问延迟的更高存储层次空间中.在三个典型测试用例上进行了优化实验测试与分析,结果表明本文所提出的优化在性能上与手工优化相当,较未优化版程序性能有显著提升.  相似文献   

8.
该文提出了一种用于微处理器体系结构级测试程序自动生成的约束描述语言,并设计实现了该语言的编译器,详细介绍了语言特性以及为了生成合法体系结构级测试程序,编译器所做的特殊处理。最后给出了利用该语言对DLX微处理器进行验证的实验和结果。  相似文献   

9.
随着深度学习模型和硬件架构的快速发展,深度学习编译器已经被广泛应用.目前,深度学习模型的编译优化和调优的方法主要依赖基于高性能算子库的手动调优和基于搜索的自动调优策略.然而,面对多变的目标算子和多种硬件平台的适配需求,高性能算子库往往需要为各种架构进行多次重复实现.此外,现有的自动调优方案也面临着搜索开销大和缺乏可解释性的挑战.为了解决上述问题,本文提出了AutoConfig,一种面向深度学习编译优化的自动配置机制.针对不同的深度学习计算负载和特定的硬件平台,AutoConfig可以构建具备可解释性的优化算法分析模型,采用静态信息提取和动态开销测量的方法进行综合分析,并基于分析结果利用可配置的代码生成技术自动完成算法选择和调优.本文创新性地将优化分析模型与可配置的代码生成策略相结合,不仅保证了性能加速效果,还减少了重复开发的开销,同时简化了调优过程.在此基础上,本文进一步将AutoConfig集成到深度学习编译器Buddy Compiler中,对矩阵乘法和卷积的多种优化算法建立分析模型,并将自动配置的代码生成策略应用在多种SIMD硬件平台上进行评估.实验结果验证了AutoConfig在代码生成策略中有效地完成了参数配置和算法选择.与经过手动或自动优化的代码相比,由AutoConfig生成的代码可达到相似的执行性能,并且无需承担手动调优的重复实现开销和自动调优的搜索开销.  相似文献   

10.
为解决数字测试可交换格式(DTIF)数据难以阅读理解和依赖数字自动测试程序生成器(ADTPG)的难题,通过对IEEE标准1445—1998和IEEE标准1546-2000进行深入分析和研究,提出了“数字测试交换格式应用与开发软件”的实现方法;经实际应用表明.该软件不仅实现了DTIF数据的直观表达和编辑生成等功能以有效地解决了上述问题,而且可以作为数字电路测试诊断数据开发的辅助手段,对于提高数字测试程序的开发效率和可移植性具有显著的意义。  相似文献   

11.
Java编译程序技术与Java性能   总被引:4,自引:1,他引:3  
冀振燕  程虎 《软件学报》2000,11(2):173-178
概述了Java编译程序技术,把Java编译程序分成5类:具有解释技术的编译程序;具有及时(JIT)编译技术的编译程序;具有自适应优化技术的编译程序;本地编译程序和翻译程序.详细描述和分析了它们的体系结构和工作原理.同时也分析了编译程序技术对Java性能的影响.  相似文献   

12.
Difficulties emerging in implementing compilers of several cognate languages within the framework of a unified software system are analyzed. The problem of design of cognate language compilers of efficient structure is formulated. Ways of solution of the problem of effective construction of cognate language compilers and organization of parsing of texts in an arbitrary language are proposed and their advantages are considered.  相似文献   

13.
嵌入式系统集成开发环境中的编译器效能研究   总被引:1,自引:0,他引:1  
从分析编译器基本工作原理入手,研究了目前广泛使用的三种嵌入式系统集成开发环境(ADS1.2、RVDS2.2和Tornado2.2)中的编译器效能,通过具体测试数据,分析了编译器效能产生差异的原因,得出了结论。  相似文献   

14.
15.
Algorithms are presented which recreate infix form from reverse Polish form of algebraic expressions. The use of these algorithms in incremental compilers is discussed.  相似文献   

16.
多核技术引起了包括编译在内的计算机技术的巨大变化。教育首先要解决如何设置多核课程中编译原理知识点的问题。本文以武汉大学"多核架构及编程技术"课程为例,根据多核和编译技术的发展和课程教学经验,对多核课程中的编译原理知识点进行分析,并提出课程内容设置方面的要求。  相似文献   

17.
编译器前端乘幂运算的实现与优化   总被引:1,自引:0,他引:1  
乘幂运算是最基本的数学表达式之一,并且被大多数编译器支持,在高性能计算和密码算法中应用十分频繁。为了实现和优化乘幂运算人们提出了许多算法,比如加法链算法。该文描述了在编译器前端一个具体的新的算法,它实现了乘幂运算并且进行了优化,优化方法结合了静态最优加法链算法和Window算法。这个新的算法已经应用于GNUFortran95编译器(Gfortran),并取得良好效果。  相似文献   

18.
郭德贵  王冠成  吕帅  刘磊 《软件学报》2017,28(5):1221-1232
部分求值技术在程序优化及软件自动生成等方面,有着极为重要的作用.本文将部分求值技术应用到编译器测试中.为此,设计了一个C语言的子集peC语言,给出了该语言的部分求值策略的形式化描述,实现了peC语言的部分求值器,设计了基于部分求值技术的编译器测试框架.通过实验,本文的方法可以检测出大部分之前的其它的方法发现的GCC、LLVM编译器中的错误,此外还发现了其它方法不能发现的错误,表明将部分求值技术应用到编译器测试中是有效的.  相似文献   

19.
分块内存和多地址生成器(AGU)是DSP普遍采用的体系结构.传统的C语言编译器没有针对分块内存和多AGU结构进行代码优化,导致生成代码无法满足性能需求,影响了C语言编译器在数字信号处理领域的应用.为了解决这个问题,提出基于编译指示,与分块内存和多AGU结构相关的编译优化算法.该算法利用定义引用链和引用定义链中的数据流信息,为地址计算指令和访存指令分配AGU,从而提高生成代码的指令级并行度.实验结果表明此算法能够达到较好的优化效果.  相似文献   

20.
最大程度地优化代码和挖掘应用程序的潜在性能,是高性能编译器设计中非常重要的一个任务。基于profiling的反馈式编译优化是一种有效的编译优化模式,它通过程序运行时的剖面信息来指导对代码的优化。本文总结了GCC在实现这种模式上的一般流程、所遇到的问题和解决方法,深入分析了GCC4.0的插桩方法、反馈数据文件格式,以及在
中间语言中标注反馈信息等的实现机制。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号