迭代计算特征识别的方法研究

第1页 / 共10页

第2页 / 共10页

第3页 / 共10页

第4页 / 共10页

第5页 / 共10页

第6页 / 共10页

第7页 / 共10页
试读已结束,还剩3页,您可下载完整版后进行离线阅读
迭代计算特征识别的方法研究-知知文库网
迭代计算特征识别的方法研究
此内容为付费资源,请付费后查看
1020
立即购买
您当前未登录!建议登陆后购买,可保存购买订单
付费资源
© 版权声明
THE END
目录摘要(关键词)1引言..21.1研究背景与意义.21.2国内外研究现状.21.3本文的研究内容.31.4本文的组织结构.42程序阶段检测分类技术与动态二进制插桩52.1基于动态二进制插桩的pim程序分析技术52.1.1动态二进制插桩技术的优势.52.1.2 intel Pin-动态二进制插桩框架.62.2本章小结8【参考文献】迭代计算特征识别的方法研究【摘要】为了应对网络空间信息服务面临的海量空间数据发布和大规模用户并发访问的挑战,现如今的大数据应用对内存容量和性能提出了更高的要求,完成高性能计算系统功能优化的研究显得尤为重要。而高性能计算应用往往具有迭代计算的特征,应用的计算和访存特征一般都与正在执行的指令密切相关,因此识别一次迭代中不同的执行代码区城,以及识别出程序迭代发生过程会有助于更准确地分析和预测应用执行特征。不同的代码区城对应着不同的执行阶段,HPC应用的迭代中一般具有多个不同的执行阶段。以常见的卷积神经网络训练为例,一次训练迭代中包含卷积层、池化层、全连接层等多个执行阶段。不同的执行阶段具有截然不同的计算和访存特征,所以识别出一次迭代中不同的执行阶段,并对各个阶段的计算和访存特征进行刻画是至关重要的。为了从性能上优化这些具有普遍迭代计算特征的高性能计算系统,本文将通过程序阶段识别技术,利用Scarphase程序阶段分类方法实现分析和识别典型应用程序中的迭代计算过程和阶段信息,并在此基础上成功识别出计算机应用程序在执行中发生迭代计算过程的时间片段,并使用Inte|Pin动态二进制插桩框架,同时为了减少开销时间对其Pintools中算法进行优化,采集其中迭代计算过程中的访存地址特征,以达到以更好地通过资源调度分配或者数据预取等手段提高系统性能的目的。【关键词】高性能应用:程序阶段分类:迭代计算:内存访存特征:基本块向量第1页共9页1引言1.1研究背景与意义在大数据时代和高性能应用广泛的今天,高性能应用如人工智能,机器学习,深度学习等应用往往存在明显的迭代计算特征,即周期性地执行特定的代码指令。举一个高性能应用中比较经典的例子:机器学习。机器学习的广泛应用离不开迭代计算的执行过程。在机器学习实践的应用中,机器学习系统的一般流程包括了数据源获取、预处理数据、验证、最终投入运用预估等内容,在这之中模型训练的过程中存在普遍的迭代计算特征,为了达到所预期的机器学习模型,并且提升机器学习模型的识别率和准确性,通常需要大量数据集对模型进行训练,训练数据,再根据训练结果调整选择的模型所暴露的一些参数,然后再次回到训练过程,根据训练结果调整模型参数,不断重复,最终经过海量的迭代训练得到最终模型,这个过程具有明显迭代计算特征,而这整个训练模型的迭代阶段几乎是整个应用系统中最耗费时间和性能的过程。因此,识别迭代计算过程的方法研究也会为高性能应用的性能提升优化指出新的方向。从识别迭代运算的方法展开研究,对迭代计算典例合理分析和识别,针对下一次的迭代运算、访存特性展开描述。通过前几轮迭代的信息来预测下一轮迭代的计算和访存数据区域,据此充分利用预取、复用、局部性等优化方法,提升HP℃应用访存性能,相邻迭代中往往具有相同的执行阶段,相同执行阶段具有类似的计算和访存特征。从硬件层面上,利用前几轮迭代的信息来预测下一轮迭代的计算和访存密度关系,依此提前对硬件资源进行合理的调度,提高硬件资源利用率,迭代计算阶段识别与访存特征对于实现计算机设备硬件方面可以提供有效的技术数据参考,根据这些特征理论上设计专门面向高性能计算的存储器设备和应用,对内存的性能,硬件开销,功耗等设计进行优化。从软件层面上,通过获取迭代计算阶段识别和访存特征,可以对程序进行迭代计算分析和优化,利用迭代计算的规律,在进行一个迭代程序阶段时,根据上一次迭代循环的访存特征去预测下一次迭代过程的访存情况,减少缓存命中时间,降低缓存的失效率,从而提升访存平均时间,维持相较低的运行开销。除此之外,在涉及迭代计算的多个高性能应用领域中,识别程序执行过程中的迭代计算过程,获取到的迭代计算特征与访存特征将为进一步提升高性能应用系统的性能和内存预测方法提供重要数据依据和支撑。1.2国内外研究现状在国内外目前的研究方向中,提升高性能应用的运算速度以及性能的方法主要分为大体着重于硬件或软件实现。从硬件方面上实现对高性能应用的计算速度提升的方法一般有优化硬件中的结构设计或者专门设计面向适配高性能计算特征计算过程的计算机硬件组件,随着大数据和高性能应用的持续普及化,针对更高性能存储器的要求也愈发急切,例如近几年比较新的存储器技术的提出:DC Gilmer等人研发的NRAM技术,是一个新型高性能存储器技术,具备众多优点同时继承了FRAM(ferroelectric Random Access Memory)的高速写入、高读写耐久性,又具备与相当的大容量,并实现很低的功耗。着重使用软件实现的技术一般会对程序适当分析和识别,整体提升程序数据、指令存在的局限性,让内存缓存失效率有所降低,划分主要有软件预取、循环变换等方式,运用程序分析方式,能够获取下一步程序具体的访问数据或是指令,由此能够在信息之上代入现代处理器所支持的一些非阻塞指令。对比所谓的硬件预取,软件预取能够更轻易的按照软件自身的特性合理拟定。早些时候,软第2页共9页件预取技术集中焦点在密集性内存操作程序,对此应用程序分析技术4,就能够获悉之后程序执行时可能应用到的相关数据信息,由此预取数据。比如M,Youfengt通过分析程序的步幅模式(Stride Pattern)来实现数据预取,Beyls K和Cong J等人-s分析程序对数据访问的复用距离(Reuse Distance)对程序执行过程进行分析来实现数据预取。Chilimbi TM等人例研发了一项动态软件预取框架对软件之中存在的热数据流加以分析,转而完成指针之上的数据结构数据预取作业。Cog,Json等人【网利用循环变换针对迭代空间变换、调度等操作完成数据访问局部性的提升。应用循环变换技术,既能够让指令局部性特点有所提升,也可以让指令转变执行顺序而让数据的局部性获得提升。而本文使用的方法可以归类为上述软件实现方法,通过识别出迭代计算的过程以及识别迭代计算过程中的内存访问模式,对下一次迭代计算进行预测,并研究如何提高识别的准确性和维持系统较低的开销,进而可以提高运算效率。1.3本文的研究内容本课题的目的是设计一种有能力识别例如机器学习模型等的典型高性能应用在运行过程中的迭代计算过程的识别技术方法,并学习采集其在进行迭代计算任务的访存地址数据和性能指标,对之后下一次迭代计算提供所需数据和访存特征提供参考,以达到提高系统预测准确率与减少系统开销的目的。本课题的主要工作内容展示如图1-1所示,针对于目前少有能直接识别程序执行中迭代计算过程的框架和应用,因此为了实现识别程序迭代计算过程的目的,需要先使用程序阶段分类技术,对程序执行过程中相同阶段内出现的特征值进行收集,分类出程序阶段信息,然后设计迭代识别算法对程序阶段信息进行识别,确定应用程序迭代计算阶段的执行具体分布,本文提出了一种基于Scarphase程序阶段分类方法的识别迭代解决方案,并且借助基于动态二进制插桩技术
喜欢就支持一下吧
点赞0 分享
相关推荐
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容