一种基于采样的多核模拟并行加速方法技术

技术编号:8593814 阅读:272 留言:0更新日期:2013-04-18 06:57
本发明专利技术提供一种基于采样的多核模拟并行加速方法,包括,S1:选定多线程应用程序作为多核基准测试程序;S2:对S1中选定的多线程应用程序采用采样策略,取得每个线程的指令流样本片段;S3:把S2中取得的每个线程的指令流样本片段运行在模拟器的动态代码分析模块中,将每个线程的指令流样本片段按照分割点的不同分割成多个离散片段;S4:将S3中多个离散片段按照分割时分割点的不同进行分组;S5:把S4中分组后的离散片段运行在对应的片段模拟模块中,得出所述离散片段运行所需花费的模拟时间;S6:将S5中所有的片段模拟模块中所输出的模拟时间相加,得出S1中多线程应用程序的模拟执行总时间。上述步骤能显著提高模拟速度,缩短评估周期。

【技术实现步骤摘要】
一种基于采样的多核模拟并行加速方法
本专利技术涉及计算机体系结构系统模拟领域,具体涉及一种基于采样的多核模拟并行加速方法。
技术介绍
随着片上系统的迅猛发展、多核处理器的普及和众核处理器的出现,单个芯片上集成的组件越来越多,如何从指数级增长的设计方案中快速找到最优方案,逐渐成为设计此类系统的关键。例如,如何设计拓扑结构互联成百上千个处理单元、存储单元,如何分配存储层级,如何确定各层级所需存储空间大小等,众多设计参数将构成一个巨大的设计空间,如何从浩瀚的设计空间中快速定位到最优的设计方案,成为此类系统设计面临的一个重大挑战。微体系结构模拟是新一代处理器体系结构设计初期性能评估的关键技术。该技术利用软件方式模拟硬件的各种设计,通常需要开发模拟框架,例如模拟器,在模拟器中模拟实现各硬件的功能,并通过在其上运行基准测试程序初步评估设计方案。微体系结构模拟评估技术所采用的模拟框架一般都为单线程模拟器。单线程模拟框架可以较好地应用于单核处理器的模拟评估,以及运行单线程的基准测试程序。但是,随着应用程序的日益庞杂,多线程程序的普及,多核、众核系统的出现,单线程模拟框架已经无法适应此类系统的评估任务,具有较大的局限性,具体表现在:为了准确地反映应用程序的程序行为特征,随着当今各种应用程序的不断变化,用于评估微体系结构性能的基准测试程序也需要做相应的调整,譬如,随着多线程应用程序的普及以及应用程序的复杂化、多样化,基准测试程序也需要做相应的改变,2008年普林斯顿大学发布了新一代的多线程基准测试程序集——PARSEC。面对这些变化,传统的单线程模拟框架在运行庞大的多线程基准测试程序时显得尤为吃力,模拟运行一个多线程程序,往往需要几周甚至几个月的模拟时间,超长的评估周期已经无法胜任针对多线程应用程序而设计的众核系统的评估。随着多核处理器的普及以及众核系统的出现,计算机硬件的并行处理能力不断提高。传统的单线程模拟框架没有良好的并行性与扩展性,无法采用多线程的方式并行运行在多核硬件资源上,从而没有更好地利用这些硬件资源,造成硬件资源的浪费。传统的模拟框架多数采用时钟周期级别的模拟精度,即该类模拟器可以精确模拟每个时钟周期内系统所完成的操作。采用时钟周期级别模拟精度的模拟策略的优点是可以更好地完成系统每一个细节的详尽模拟,有着较高的评估精度,并可以反馈更多的有用信息。但是,该类模拟器由于追求模拟精度而大大降低了模拟速度,这个缺陷在评估众核系统的设计方案时尤为突出。在微体系结构模拟中运用采样策略是加速模拟的一个重要方法。该方法通过对基准测试程序的指令流运用采样策略,获取可以反映整个程序行为特征的指令流样本片段。通过对具有代表性的指令流样本片段的模拟完成微体系结构的性能评估。采样策略本质上是通过减少需要模拟的指令数量加速模拟。传统的应用于微体系结构模拟的采样策略有多种。譬如,系统采样策略从应用程序的指令流中采取相同间隔的指令流片段作为样本,SMARTSim模拟框架运用了系统采样策略来加速模拟;代表性采样策略是从应用程序的指令流中选取具有代表性的,可以反映整个程序行为特征的指令流片段作为样本,该策略需要对应用程序的行为特征进行静态的分析,SimPoint模拟框架运用了该策略来加速模拟。另外,还有随机采样策略、两阶段采样策略、分层采样策略等多种策略。以上所例举的采样策略都有一个共同的缺陷,即需要通过静态分析或者尝试性模拟来确定采样策略中的参数,譬如指令样本片段的大小等,而静态分析或者尝试性模拟需要花费较多的时间代价,且当所模拟的微体系结构发生变化时,需要重新进行静态分析或者尝试性模拟,重复劳动,不利于模拟的加速。
技术实现思路
本专利技术所要解决的技术问题是提供一种显著缩短模拟评估周期、保持评估的准确性,并且充分利用多核硬件资源的基于采样的多核模拟并行加速方法。为达到上述目的,本专利技术提供如下的技术方案:一种基于采样的多核模拟并行加速方法,包括:S1:选定多线程应用程序作为多核基准测试程序;S2:对S1中选定的多线程应用程序采用采样策略,取得每个线程的指令流样本片段;S3:把S2中取得的每个线程的指令流样本片段运行在模拟器的动态代码分析模块中,将每个线程的指令流样本片段按照分割点的不同分割成多个离散片段;S4:将S3中多个离散片段按照分割时分割点的不同进行分组;S5:把S4中分组后的离散片段运行在对应的片段模拟模块中,得出所述离散片段运行所需花费的模拟时间;S6:将S5中所有的片段模拟模块中所输出的模拟时间相加,得出S1中多线程应用程序的模拟执行总时间。进一步的,所述S2中的采样策略包括:将每个线程的指令流片段进行等分,从等分过后的指令流片段当中选取部分指令流片段作为指令流初步样本片段。进一步的,所述S2中的采样策略还包括:将所述的指令流初步样本片段分为三份,去掉中间的一份,保留两边的两份;对保留的两份各自进一步分为三份,去掉各自中间的一份,保留各自两边的两份,以此类推,K次过后,将获得2K份指令流片段,所述2K份指令流片段即为指令流样本片段,其中,K为大于1的自然数。进一步的,所述等分的份数为M份,并以0、1、2、……、M-1、M的形式,依次对等分过后的指令流片段进行编号,将编号为偶数的指令流片段舍弃,将编号为奇数的指令流片段作为指令流初步样本片段,其中,M为大于1的自然数。进一步的,所述S3、S4中的分割点为失效事件。进一步的,所述S3中的动态代码分析模块进一步包括:指令分析预测模块,用于分析决定指令流样本片段中指令分析预测失效事件是否发生,并根据该失效事件来分割指令流样本片段;存储层级预测模块,用于分析决定指令流样本片段中存储层级预测失效事件是否发生,并根据该失效事件来分割指令流样本片段;缓存一致性预测模块,用于分析决定指令流样本片段中缓存一致性预测失效事件是否发生,并根据该失效事件来分割指令流样本片段;网络互联预测模块,用于分析决定指令流样本片段中网络互联预测失效事件是否发生,并根据该失效事件来分割指令流样本片段。进一步的,所述S5、S6中的片段模拟模块包括:处理器模拟模块、网络互联模拟模块和存储层级模拟模块。本专利技术所提供的基于采样的多核模拟并行加速方法,综合运用了多线程并行模拟策略、基于改进cantorset的分形采样策略以及阶段性分段模拟策略,实现了模拟过程中的多重加速,相比于传统的单线程模拟策略、时钟周期级别模拟策略,本专利技术有着大幅度模拟速度的提升,具有高效性;可以很好地适应当前众核系统设计方案优化的需求;进一步的,本专利技术所提供的片段模拟模块,比如,处理器模拟模块、存储层级模拟模块以及网络互联模拟模块,都可以按照需求灵活改动每个模块的配置,很好的适应了当前众核系统设计过程中需要探索大量的设计方案的需求。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种基于采样的多核模拟并行加速方法的流程图。图2为本专利技术实施例提供的采样策略的流程图。具体实施方式为使本发本文档来自技高网
...
一种基于采样的多核模拟并行加速方法

【技术保护点】
一种基于采样的多核模拟并行加速方法,其特征在于,包括:S1:选定多线程应用程序作为多核基准测试程序;S2:对S1中选定的多线程应用程序采用采样策略,取得每个线程的指令流样本片段;S3:把S2中取得的每个线程的指令流样本片段运行在模拟器的动态代码分析模块中,将每个线程的指令流样本片段按照分割点的不同分割成多个离散片段;S4:将S3中多个离散片段按照分割时分割点的不同进行分组;S5:把S4中分组后的离散片段运行在对应的片段模拟模块中,得出所述离散片段运行所需花费的模拟时间;S6:将S5中所有的片段模拟模块中所输出的模拟时间相加,得出S1中多线程应用程序的模拟执行总时间。

【技术特征摘要】
1.一种基于采样的多核模拟并行加速方法,其特征在于,包括:S1:选定多线程应用程序作为多核基准测试程序;S2:将S1中选定的多线程应用程序中每个线程的指令流片段进行等分,从等分过后的指令流片段当中选取部分指令流片段作为指令流初步样本片段,对各个线程所述指令流初步样本片段采用基于康托尔集合的分形采样策略进行采样,取得每个线程的指令流样本片段;S3:把S2中取得的每个线程的指令流样本片段运行在模拟器的动态代码分析模块中,将每个线程的指令流样本片段按照分割点的不同分割成多个离散片段;S4:将S3中多个离散片段按照分割时分割点的不同进行分组;所述S3、S4中的分割点为失效事件;所述失效事件包括各级缓存缺失、指令分支预测失败、Load指令读取;S5:把S4中分组后的离散片段运行在对应的片段模拟模块中,得出所述离散片段运行所需花费的模拟时间;S6:将S5中所有的片段模拟模块中所输出的模拟时间相加,得出S1中多线程应用程序的模拟执行总时间。2.根据权利要求1所述的基于采样的多核模拟并行加速方法,其特征在于,所述S2中的采样策略还包括:将所述的指令流初步样本片段分为三份,去掉中间的一份,保留两边的两份;对保留的两份各自进一步分为三份,去掉各自中间的一份,保留各自两边的两份,以此类推,K次过后,将获得2K份指令流片段,所述2K份指令流片段即为指令流样本片段,其中,K为大于1的自然数。3.根据权利要求1所述的基于采样的多核...

【专利技术属性】
技术研发人员:喻之斌须成忠姜春涛
申请(专利权)人:中国科学院深圳先进技术研究院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1