首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 15 毫秒
1.
在源代码挖掘领域,程序分类任务是实现机器自主理解源代码的基础工作。虽然自然语言处理相关模型和基于抽象语法树的系列模型已经被广泛应用于分类程序源代码,但这些工作没有考虑源代码中的数据流、控制流等数据信息。提出一种方法用于构建包含数据信息和语法结构的代码图EAST,并结合基于注意力机制的门控图神经网络模型(GGANN)实现程序分类。GGANN模型的注意力机制考虑到节点拓扑结构性质的差异性,从而对模型信息传播过程进行改进。实验表明,改进后的GGANN模型在程序分类任务上的精度高达98%。  相似文献   

2.
本文描述先进科学计算机(ASC)FORTRAN编译程序和优化被编译程序的执行时间的方法。概述语言的扩充和编译程序的组织。讨论了传统的标量优化技术和由ANS(美国国家标准)标准FORTRAN源代码发现和生成向量运算的技术。重点放在向量运算和并行加工的优化生成方面。这里描述的向量和并行加工技术可用于各类向量机或并行处理机。讨论了说明此编译程序的很多功能和特征的许多例子。  相似文献   

3.
张媛媛  赵荣彩  韩林 《计算机工程》2012,38(7):266-268,272
循环变换可提高程序性能,但对其向量化后可能会导致代码性能损失,并不一定会得到预期性能提升。针对该问题,结合目标体系结构特征,在Open64中实现一个基于多面体表示指导循环变换的向量化收益评估模型。该模型可以有效分析各种循环变换方案的代价,选择向量化收益最大的方案组合作为最终的向量化方案。对SPEC测试集的swim等5个程序进行测试,结果表明,收益评估结果与实测向量化加速比相近,可避免盲目优化。  相似文献   

4.
源代码迁移技术旨在将源代码从一种编程语言转换至另一种编程语言,以减轻开发人员迁移软件项目的负担.现有研究通常利用神经机器翻译(NMT)模型将源代码转换为目标代码,但这些研究忽略了代码结构特征,导致源代码迁移性能不佳.为此,本文提出了基于代码语句掩码注意力机制的源代码迁移模型CSMAT (code-statement masked attention Transformer).该模型利用Transformer的掩码注意力机制(masked attention mechanism),在编码时引导模型理解源代码语句的语法和语义以及语句间上下文特征,在译码时引导模型关注并对齐源代码语句,从而提升源代码迁移性能.本文使用真实项目数据集CodeTrans进行实证研究,并使用4个指标评估模型性能.实验结果验证了CSMAT的有效性,同时验证了代码语句掩码注意力机制在预训练模型的适用性.  相似文献   

5.
为了发挥向量计算机的高效,必须极大限度地提高执行程序的向量运算比例。对于FORTRAN语言而言,急需设计一个软件系统,将一个传统的FORTRAN源程序,或者说符合FORTRAN77标准的程序(即是标量运算的程序)自动地改写成一个向量FORTRAN源程序,向量识别器就是这样的一个软件系统。  相似文献   

6.
本文主要通过插桩技术对程序的指令进行分析,寻找到程序代码中低效冗余的数据存取语句,对这些语句进行改进,在运行结果不变的前提下,使得在运行程序过程中对于计算机相关部件的使用更加合理和高效,降低机器运行该程序的能耗,起到对程序代码能耗优化的作用。本研究通过Intel Pin[1]工具对于程序代码指令的分析发现,常见程序中存在一种低效冗余的数据存取代码,该代码对于数据多次写入后才读。对这种代码改进前后使用根据计算机部件级硬件性能计数器相关读数建立的模型[2]对于程序能耗进行测量,结果显示对程序能耗降低起到了明显作用,可以作为程序代码能耗优化的一种有效方法,特别是对于运行时间长能耗高的科学计算程序。  相似文献   

7.
采用自适应遗传算法(AGA)优化筛选改进高斯核函数支持向量机(SVM)参数模型进行人脸特征分类。支持向量机的泛化性能主要取决于核函数类型和核函数参数及惩罚系数C,本文在传统高斯核函数基础上提出改进高斯核函数作为支持向量机的非线性映射函数,并使用自适应遗传算法优化筛选核函数参数和支持向量机惩罚系数,将优化后的SVM模型用于人脸库进行实验仿真。实验结果表明,本文方法比传统高斯核函数支持向量机分类器模型有更高识别率。  相似文献   

8.
传统的静态编译器优化存在着各种限制,为此,提出了一种运行期动态优化的对策。在程序的执行过程中,持续检测程序运行的profile信息,并根据这些信息对程序代码进行优化变换,创建并运行程序代码的优化版本。这种运行期动态优化操作是直接针对程序的二进制代码的,不针对程序语言或编译器。这不仅带来优化的透明性,还使得老版本的源代码即遗留代码也可以从优化技术中获得性能提升。  相似文献   

9.
<正> 前言YH机是具有多功能部件的向量机。在处理向量运算时,多到对128个分量的一对向量操作数一旦启动以后,可以一拍一个地流出结果。但它对标量运算的速度就慢得多。因此,提高标量运算的速度是很重要的。标量循环优化(以下简称循环优化)就是在保持计算结果不变的前提下努力提高标量运算速度的一种优化方法。(一)循环优化的意义为了节省算题时间,用户应尽可能地采用数组处理的方法或利用向量识别器来发掘FORTRAN 源程序中的向量成分。但是由于物理、数学上的要求以及时间、人力等条件的限制,致使很大一部分程序只能用标量语句来实现。FORTRAN 程序段中如果带有DO 循环结构的话,程序的执行时间主要是花在DO 循  相似文献   

10.
引言 对于嵌入式系统,最终代码的体积和效率取决于由编译器生成的可执行代码,而非开发人员编写的源代码;但是,源代码的优化可以帮助编译器生成更加优质的可执行代码.因此,开发人员不仅要从整体效率等因素上去构思源代码体系,也要高度关注编译器的性能和编译优化的便捷性.  相似文献   

11.
为了实现代码缺陷与代码味道的自动探测与优化, 提升优化与重构的效率, 设计并开发了一套名为SCORT的源代码优化与重构工具。SCORT将源代码解析为抽象语法树, 再探测其中存在的代码缺陷和代码味道, 最后对缺陷和味道进行自动优化和重构。在SCORT中已经实现了对15种常见代码缺陷和六种常见代码味道的检测以及自动优化与重构, 提供了多种代码味道的自动重构算法, 且具有良好的可扩展性。通过对三个待测项目的探测和优化实验结果表明, 对于常见代码缺陷的探测和优化, SCORT的精确率、召回率和准确率均可达100%; 对于部分常见的代码味道, SCORT尚需进一步完善。SCORT有助于开发人员提高代码质量, 减少源代码中存在的缺陷和味道。  相似文献   

12.
针对现有的深度学习模型将程序代码考虑为一个串行序列而错失较大性能优化空间的问题,提出了一种新的基于深度图网络的程序启发式优化方法.该方法采用图神经网络对程序的数据和依赖图进行建模,自动从源代码中抽取有效程序特征,然后再将抽取的特征输入下游模型进行循环向量化参数预测.在LLVM循环向量测试集上,所提出的方法取得了2.08倍的加速比,与现有方法相比提高了12%的性能.  相似文献   

13.
自动向量化编译是利用处理器的多媒体扩展指令集提升多媒体程序性能的理想工具.但目前的研究不能有效加速实际程序.其主要原因是:普通算术操作的向量化不一定有性能提升;而多媒体典型操作因为其在源代码中表现形式多样而不能充分向量化.为了解决这一问题,文章对经典向量化算法进行改进以灵活统一地向量化这两类操作.主要的改进是增加了两个步骤:统一操作的不同表现形式和识别有价值的向量化操作.改进后的算法可以充分利用指令集生成高效代码,从而对实际多媒体程序拥有良好效果.此外,该算法可扩展性也很强.  相似文献   

14.
基于k-gram的静态软件胎记无法较好区分2个代码量差距较大的程序,且其胎记的鲁棒性一般。为此,将程序k-gram碎片的频数向量作为软件胎记,以其中一个程序的k-gram碎片集为基准对另一个程序的频数向量进行预变换,计算变换后的2个频数向量之间夹角的余弦,作为胎记的相似度。实验结果表明,对于Java类文件的检测,该胎记的可信性和鲁棒性均有一定提高。  相似文献   

15.
针对传统浊度传感器的非线性误差,无法满足直接对水中浊度进行精确测量的需求,提出了一种支持向量机的方法补偿其性能。而支持向量机中惩罚系数和核参数决定了其补偿的性能,传统支持向量机寻参方法速度慢、运算量大,具有一定的局限性。针对其参数的选择优化提出了改进的网格搜索法优化支持向量机,即采用改进的网格搜索法来针对水质浊度监测传感器补偿系统的特性来优化选择惩罚系数和核参数。实验结果表明,基于网格搜索法的支持向量机测量精度达到93.0%,其各项测量误差满足实际标准要求。  相似文献   

16.
张其良  张昱  周坤 《计算机科学》2017,44(4):16-20, 29
随着程序规模和复杂性的增加,代码重构在改善软件质量、性能以及提高软件的扩展性和维护性等方面至关重要。目前的Eclipse中,C源代码重构工具的函数提取只能处理一些简单的代码,且处理过程需要人工参与,不能自动化处理。为此,提出一种C源代码级别自动化的函数提取方法(CCodeExtractor),它通过指定提取条件,在保证语义一致的前提下,将符合条件的代码片段自动分离成一个单独的函数,并将其放到新文件中,而原代码片段替换成了一个函数调用。为了验证CCodeExtractor的有效性,结合循环分析和优化在实际应用中的广泛应用,在LLVM上实现了一个提取循环的工具,将程序中满足条件的for循环封装成单独的函数。在实验中,使用该工具对6个不同规模的程序进行了测试并且对比了变换前后程序运行的结果。实验结果表明,CCodeExtractor代码提取方法在保证程序语义不变的前提下,适用于不同规模的程序。  相似文献   

17.
随着向量长度的不断增长, SIMD扩展部件得以处理更为庞大的数据级并行,但程序的并行阈值也随之提高.对于现有的自动向量化编译器,如果在分析阶段不能从串行代码中发掘出足够的数据级并行以完全填充向量寄存器,则不会进入相应的向量代码变换阶段,从而无法向量化.较长的向量长度使得某些并行性不足的程序失去了向量化的机会,造成了性能下降.为了更加充分的利用SIMD部件,介绍了一种面向基本块的非满载向量化方法ISLP.基于开源GCC编译器,从并行性检测、代码生成和代价模型3个方面详细阐述了ISLP的设计与实现.在标准测试集上的实验结果表明,该方法可以有效地对超字级并行性不足的程序进行向量化处理,提高程序执行效率.选取的测试用例在向量化后的平均加速比达到1.14,性能较常规SLP方法提升11.8%.  相似文献   

18.
对于超字级并行(SLP)算法不能有效地处理大型程序中并行代码率较小,且可向量化的代码中可能存在对向量化不利的代码的问题,提出了一种新型的SLP改进算法NSLPO。首先,将程序中不能向量化的非同构语句进行同构化处理,定位SLP丢失的向量化机会;然后,通过冗余节点添加构建最大通用子图,通过冗余删除等优化过程得到同构化之后的补充SLP图,提高程序中代码的并行性;最后,运用节流法将对向量化有害的代码摒除在向量化之外,仅对它们进行标量处理,通过只向量化处理那些向量化有收益的代码以尽可能地提升程序效率。在一组广泛使用的内核测试集中进行实验,结果显示,与SLP算法相比,NSLPO算法性能更优,其执行时间比SLP平均减少9.1%。  相似文献   

19.
针对模拟电路实际使用过程中的可靠性问题,提出一种基于改进相关向量机的模拟电路故障预测方法。在提取被测电路的故障特征参数之后,将传统相关向量机中单个核函数改进为多个不同核函数组合形成混合核函数,提高算法的泛化性能。利用量子方法改进人工蜂群算法提升其优化效果以对各个核函数的权重因子寻优,从而提高算法的预测精度。将离散灰色模型与多核相关向量机相结合,提升算法的长期趋势预测性能。仿真结果表明,该方法的绝对误差、相对误差和测试误差均小于传统的相关向量机预测方法。  相似文献   

20.
代码搜索引擎(code search engines,CSE)的产生和互联网上日益增加的开源代码工程,使得软件开发人员在软件开发的过程中可以大量的重用已有的源代码。然而大部分开发人员使用CSEs只是简单完成相关代码搜索。该文给出了一种通用的范型挖掘过程模型,能够充分利用CSEs,通过挖掘源代码范型保证重用代码的质量,并详细的说明了该范型挖掘过程模型在三个方面辅助软件质量改进。  相似文献   

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

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