本发明专利技术提供一种应用程序建模及性能预测方法,所述应用建模方法包括:从应用经编译得到的指令中获得计算指令和访存指令,根据运行所述应用的机器的体系结构特征建模计算指令和访存指令的执行,得出计算指令和访存指令的时间开销;以及根据所述体系结构特征建模所述应用在访存阶段的规则访存和/或非规则访存,得出规则访存和/或非规则访存的时间开销;以及,计算所述应用的访存阶段的时间开销。本发明专利技术能够准确且效率地预测应用性能,从而帮助应用开发者找到应用瓶颈并采取相对的优化方案。
【技术实现步骤摘要】
一种应用建模及性能预测方法
本专利技术涉及应用优化领域,尤其涉及一种应用建模以及预测应用性能的方法。
技术介绍
随着半导体工艺的进步,具有多级Cache(多级缓存)系统的处理器已经成为当前处理器的主流,处理器内缓存组件的增加满足了应用对访存局部性的需求。然而,由于当前处理器的设计越来越复杂并且Cache的大小、层次各有差异,当应用运行在具有不同体系结构的机器上时,其运行速度也不同。如何准确地预测应用在不同体系结构的机器上的性能,并且根据预测性能来优化应用是当前的研究热点之一。目前,已有一些模型可以用来预测应用的性能,如Roofline模型,该模型能够描述应用计算访存比和带宽的关系,并且预测应用的峰值性能。然而,Roofline模型没有考虑Cache的层次,因此对应用性能的预测不够准确。Holger等人提出的ECM(Execution-Cache-Memory)模型将应用的运行划分为in-core(核内)和out-core(核外)两个阶段,反映了应用在核内的计算以及在内存层次之间的传输。然而,ECM模型没有区分各级Cache(例如,L1Cache-L3Cache),其将每一级Cache上的缺失(CacheMiss)次数计为相同,对于存在数据重用的应用或者数据规模较小的应用来说,ECM模型无法准确地预测出应用的性能。
技术实现思路
为解决上述现有技术中存在的问题,根据本专利技术的一个实施例,提供一种应用建模方法,包括:从应用经编译得到的指令中获得计算指令和访存指令,根据运行所述应用的机器的体系结构特征建模计算指令和访存指令的执行,得出计算指令和访存指令的时间开销;以及根据所述体系结构特征建模所述应用在访存阶段的规则访存和/或非规则访存,得出规则访存和/或非规则访存的时间开销;以及,计算所述应用的访存阶段的时间开销。上述方法中,根据运行所述应用的机器的体系结构特征建模计算指令和访存指令的执行,得出计算指令和访存指令的时间开销包括:根据运行所述应用的机器的体系结构特征,模拟计算指令在相应的一个或多个执行端口上的执行并且模拟访存指令在相应的一个或多个执行端口上的执行,计算每个执行端口的指令执行时间;以及从执行计算指令的一个或多个执行端口的指令执行时间中,选择最长的指令执行时间作为计算指令的时间开销,并且从执行访存指令的一个或多个执行端口的指令执行时间中,选择最长的指令执行时间作为访存指令的时间开销。上述方法中,根据所述体系结构特征建模所述应用在访存阶段的规则访存,得出规则访存的时间开销包括:步骤1)根据所述体系结构特征得到各级Cache的预取策略,分析所述应用获得规则访存所涉及的数据量;步骤2)基于所述各级Cache的预取策略和所述数据量计算各级Cache的缺失次数;步骤3)根据各级Cache的缺失次数、Cache之间的带宽以及主存与最高级别的Cache之间的带宽、CacheLine的大小,计算Cache之间以及主存与最高级别的Cache之间的数据传输时间开销;步骤4)将Cache之间的数据传输时间开销相加,并且加上主存与最高级别的Cache之间的数据传输时间开销,得到规则访存的时间开销。在步骤3)中,根据下式计算Cache之间以及主存与最高级别的Cache之间的数据传输时间开销:Ti=Ni*Size(CL)/Bi其中,Ti表示i级Cache与i+1级Cache或主存之间的数据传输时间开销,Ni表示i级Cache的缺失次数,Bi表示i级Cache与i+1级Cache或主存之间的带宽,Size(CL)表示CacheLine的大小,i≥1。上述方法中,根据所述体系结构特征建模所述应用在访存阶段的非规则访存,得出非规则访存的时间开销包括:步骤a)根据所述体系结构特征,构建Cache模拟器,并且构建所述应用的非规则访存的访存序列;其中,所述Cache模拟器的输入是访存序列,并且输出是各级Cache的缺失次数。步骤b)将所述应用的非规则访存的访存序列输入所述Cache模拟器,得到各级Cache的缺失次数;步骤c)根据各级Cache的缺失次数、Cache之间的带宽以及主存与最高级别的Cache之间的带宽、CacheLine的大小,计算Cache之间以及主存与最高级别的Cache之间的数据传输时间开销;步骤d)将Cache之间的数据传输时间开销相加,并且加上主存与最高级别的Cache之间的数据传输时间开销,得到非规则访存的时间开销。上述方法中,计算所述应用的访存阶段的时间开销包括:如果所述应用在访存阶段不存在非规则访存,则将规则访存的时间开销作为所述应用的访存阶段的时间开销;如果所述应用在访存阶段存在非规则访存,则将所述规则访存的时间开销与所述非规则访存的时间开销之和作为所述应用的访存阶段的时间开销。根据本专利技术的一个实施例,还提供一种应用性能预测方法,包括:将待预测的应用应用于上述方法所建立的模型,得到所述应用的计算指令的时间开销、访存指令的时间开销以及访存阶段的时间开销;将所述访存指令的时间开销与所述访存阶段的时间开销求和;将求和结果与所述计算指令的时间开销进行比较,将其中的较大者作为所述应用的预计执行时间。本专利技术结合机器(计算机)的体系结构特征分别对应用的处理阶段以及访存阶段建模。其中,将应用的处理阶段进一步划分为计算指令的时间开销和访存指令的时间开销;并且将访存阶段进一步划分为规则访存的时间开销和非规则访存的时间开销,同时区分各级Cache。本专利技术能够更为准确和效率地预测应用性能,从而有利于帮助应用开发者找到应用瓶颈并采取相对的优化方案。附图说明以下参照附图对本专利技术实施例作进一步说明。图1是根据本专利技术一个实施例的应用建模及性能预测方法的流程图;图2是根据本专利技术一个实施例的应用建模方法的示意图;图3是根据本专利技术一个实施例的应用的访存阶段建模方法的流程图;图4是根据本专利技术一个实施例的Cache模拟器内部连接方法以及Cache与主存和寄存器的连接方法的示意图。具体实施方式为了使本专利技术的目的,技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本专利技术进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。本专利技术将应用在机器上的运行过程划分为处理阶段和访存阶段,其中处理阶段涉及应用经编译得到的指令在处理器核内的执行,而访存阶段涉及应用运行时各级缓存之间以及主存与最高级别缓存之间的数据传输。本专利技术将处理阶段进一步划分为计算指令的时间开销和访存指令的时间开销;访存阶段一方面划分为规则访存的时间开销和非规则访存的时间开销,另一方面划分为各级缓存之间的数据传输时间开销以及主存与最高级别的缓存之间的数据传输时间开销。根据本专利技术的一个实施例,提供一种应用建模及性能预测方法,参见图1,该方法分为应用建模阶段和性能预测阶段。其中,应用建模阶段包括结合(运行应用的)机器的体系结构特征对应用进行建模,以及得到应用的各个时间开销;性能预测阶段包括计算应用在机器上的执行时间。以下结合附图对这两个阶段展开详细描述。一.应用建模阶段应用建模阶段包括处理阶段建模和访存阶段建模,即对(应用经编译得到的)指令在处理器核内的执行进行建模以及对应用运行时数据的传输进行建模。现参照图2分别描述处理阶段建模和访存阶段建模。处理阶段建模本文档来自技高网...
【技术保护点】
1.一种应用建模方法,包括:从应用经编译得到的指令中获得计算指令和访存指令,根据运行所述应用的机器的体系结构特征建模计算指令和访存指令的执行,得出计算指令和访存指令的时间开销;以及根据所述体系结构特征建模所述应用在访存阶段的规则访存和/或非规则访存,得出规则访存和/或非规则访存的时间开销;以及,计算所述应用的访存阶段的时间开销。
【技术特征摘要】
1.一种应用建模方法,包括:从应用经编译得到的指令中获得计算指令和访存指令,根据运行所述应用的机器的体系结构特征建模计算指令和访存指令的执行,得出计算指令和访存指令的时间开销;以及根据所述体系结构特征建模所述应用在访存阶段的规则访存和/或非规则访存,得出规则访存和/或非规则访存的时间开销;以及,计算所述应用的访存阶段的时间开销。2.根据权利要求1所述的方法,其中,根据运行所述应用的机器的体系结构特征建模计算指令和访存指令的执行,得出计算指令和访存指令的时间开销包括:根据运行所述应用的机器的体系结构特征,模拟计算指令在相应的一个或多个执行端口上的执行并且模拟访存指令在相应的一个或多个执行端口上的执行,计算每个执行端口的指令执行时间;以及从执行计算指令的一个或多个执行端口的指令执行时间中,选择最长的指令执行时间作为计算指令的时间开销,并且从执行访存指令的一个或多个执行端口的指令执行时间中,选择最长的指令执行时间作为访存指令的时间开销。3.根据权利要求1所述的方法,其中,根据所述体系结构特征建模所述应用在访存阶段的规则访存,得出规则访存的时间开销包括:步骤1)根据所述体系结构特征得到各级Cache的预取策略,分析所述应用获得规则访存所涉及的数据量;步骤2)基于所述各级Cache的预取策略和所述数据量计算各级Cache的缺失次数;步骤3)根据各级Cache的缺失次数、Cache之间的带宽以及主存与最高级别的Cache之间的带宽、CacheLine的大小,计算Cache之间以及主存与最高级别的Cache之间的数据传输时间开销;步骤4)将Cache之间的数据传输时间开销相加,并且加上主存与最高级别的Cache之间的数据传输时间开销,得到规则访存的时间开销。4.根据权利要求3所述的方法,在步骤3)中,根据下式计算Cache之间以及主存与最高级别的Cache之间的数据传输时间开销:Ti=Ni*Size(CL)/Bi其中,Ti表示i级Cache与i+1...
【专利技术属性】
技术研发人员:孙凝晖,谭光明,谢震,
申请(专利权)人:中国科学院计算技术研究所,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。