首页> 中国专利> 一种基于采样的多核模拟并行加速方法

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

摘要

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

著录项

  • 公开/公告号CN103049310A

    专利类型发明专利

  • 公开/公告日2013-04-17

    原文格式PDF

  • 申请/专利权人 中国科学院深圳先进技术研究院;

    申请/专利号CN201210589507.6

  • 发明设计人 喻之斌;须成忠;姜春涛;

    申请日2012-12-29

  • 分类号G06F9/455(20060101);

  • 代理机构深圳市科进知识产权代理事务所(普通合伙);

  • 代理人宋鹰武

  • 地址 518055 广东省深圳市南山区西丽大学城学苑大道1068号

  • 入库时间 2024-02-19 18:28:18

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-12-28

    授权

    授权

  • 2013-05-15

    实质审查的生效 IPC(主分类):G06F9/455 申请日:20121229

    实质审查的生效

  • 2013-04-17

    公开

    公开

说明书

技术领域

本发明涉及计算机体系结构系统模拟领域,具体涉及一种基于采 样的多核模拟并行加速方法。

背景技术

随着片上系统的迅猛发展、多核处理器的普及和众核处理器的出 现,单个芯片上集成的组件越来越多,如何从指数级增长的设计方案 中快速找到最优方案,逐渐成为设计此类系统的关键。例如,如何设 计拓扑结构互联成百上千个处理单元、存储单元,如何分配存储层级, 如何确定各层级所需存储空间大小等,众多设计参数将构成一个巨大 的设计空间,如何从浩瀚的设计空间中快速定位到最优的设计方案, 成为此类系统设计面临的一个重大挑战。

微体系结构模拟是新一代处理器体系结构设计初期性能评估的关 键技术。该技术利用软件方式模拟硬件的各种设计,通常需要开发模 拟框架,例如模拟器,在模拟器中模拟实现各硬件的功能,并通过在 其上运行基准测试程序初步评估设计方案。微体系结构模拟评估技术 所采用的模拟框架一般都为单线程模拟器。单线程模拟框架可以较好 地应用于单核处理器的模拟评估,以及运行单线程的基准测试程序。 但是,随着应用程序的日益庞杂,多线程程序的普及,多核、众核系 统的出现,单线程模拟框架已经无法适应此类系统的评估任务,具有 较大的局限性,具体表现在:

为了准确地反映应用程序的程序行为特征,随着当今各种应用程 序的不断变化,用于评估微体系结构性能的基准测试程序也需要做相 应的调整,譬如,随着多线程应用程序的普及以及应用程序的复杂化、 多样化,基准测试程序也需要做相应的改变,2008年普林斯顿大学发 布了新一代的多线程基准测试程序集——PARSEC。面对这些变化,传 统的单线程模拟框架在运行庞大的多线程基准测试程序时显得尤为吃 力,模拟运行一个多线程程序,往往需要几周甚至几个月的模拟时间, 超长的评估周期已经无法胜任针对多线程应用程序而设计的众核系统 的评估。

随着多核处理器的普及以及众核系统的出现,计算机硬件的并行 处理能力不断提高。传统的单线程模拟框架没有良好的并行性与扩展 性,无法采用多线程的方式并行运行在多核硬件资源上,从而没有更 好地利用这些硬件资源,造成硬件资源的浪费。传统的模拟框架多数 采用时钟周期级别的模拟精度,即该类模拟器可以精确模拟每个时钟 周期内系统所完成的操作。采用时钟周期级别模拟精度的模拟策略的 优点是可以更好地完成系统每一个细节的详尽模拟,有着较高的评估 精度,并可以反馈更多的有用信息。但是,该类模拟器由于追求模拟 精度而大大降低了模拟速度,这个缺陷在评估众核系统的设计方案时 尤为突出。

在微体系结构模拟中运用采样策略是加速模拟的一个重要方法。 该方法通过对基准测试程序的指令流运用采样策略,获取可以反映整 个程序行为特征的指令流样本片段。通过对具有代表性的指令流样本 片段的模拟完成微体系结构的性能评估。采样策略本质上是通过减少 需要模拟的指令数量加速模拟。传统的应用于微体系结构模拟的采样 策略有多种。譬如,系统采样策略从应用程序的指令流中采取相同间 隔的指令流片段作为样本,SMART Sim模拟框架运用了系统采样策略 来加速模拟;代表性采样策略是从应用程序的指令流中选取具有代表 性的,可以反映整个程序行为特征的指令流片段作为样本,该策略需 要对应用程序的行为特征进行静态的分析,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中的片段模拟模块包括:处理器模拟模块、 网络互联模拟模块和存储层级模拟模块。

本发明所提供的基于采样的多核模拟并行加速方法,综合运用了 多线程并行模拟策略、基于改进cantor set的分形采样策略以及阶段 性分段模拟策略,实现了模拟过程中的多重加速,相比于传统的单线 程模拟策略、时钟周期级别模拟策略,本发明有着大幅度模拟速度的 提升,具有高效性;可以很好地适应当前众核系统设计方案优化的需 求;进一步的,本发明所提供的片段模拟模块,比如,处理器模拟模 块、存储层级模拟模块以及网络互联模拟模块,都可以按照需求灵活 改动每个模块的配置,很好的适应了当前众核系统设计过程中需要探 索大量的设计方案的需求。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施 例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述 中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付 出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种基于采样的多核模拟并行加速方 法的流程图。

图2为本发明实施例提供的采样策略的流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结 合本发明实施例和附图,对本发明实施例中的技术方案进行清楚、完 整地描述。需要说明的是,所描述的实施例仅仅是本发明一部分实施 例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术 人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于 本发明保护的范围。

实施例

如图1所示,本实施例提供的一种基于采样的多核模拟并行加速 方法,包括:

S1:选定多线程应用程序作为多核基准测试程序;

为了更好的评估所设计的众核系统,需要扩展性比较好,且具有 代表性的多线程应用程序对其进行压力测试。比较权威且常用的多核 基准测试程序有SPLASH-2、PARSEC等。通常多核基准测试程序的输入 集越大越好,较大的输入集可以更好地对众核系统进行压力测试以及 扩展性测试。

S2:对S1中选定的多线程应用程序采用采样策略,取得每个线程 的指令流样本片段;

本实施例采用了多线程模拟框架,并且将单线程模拟框架比较常 用的加速策略——采样策略运用到多线程模拟框架中,对多核基准测 试程序的每个线程进行采样,减少每个线程需要模拟的指令数量,从 而整体上削减了需要模拟的指令数量。通过筛选对比,本实施例采用 基于cantor set(康托尔集合)的分形采样策略对各个线程的指令流 进行采样。

需要说明的是,Cantor set是一种确定性分形策略。下面对该采 样策略的过程进行详细的描述。比如,每一个线程的指令流开始可以 被看做成一整个指令流片段,cantor set的采样策略是每次将需要采 样的指令流片段分成三份,去掉中间的一份,保留两边的两份作为样 本,以此递归循环。譬如,第一次采样之后,将获得位于整个片段首 尾的两个指令流样本片段,对这两个指令流样本片段进行同样的 cantor set采样策略之后,将获得四个指令流样本片段,以此类推, 第三次采样之后将获得八个指令流样本片段。在k步采样之后,将会产 生2K个指令流样本片段。

本实施例选择采用基于cantor set的分形采样策略是因为该策略 可以更好地获取反映整个程序行为特征的样本片段。分析表明,绝大 多数应用程序具有阶段性行为特征,但是这些每个阶段的所包含的指 令数有很大的差别。基于cantor set的分形采样策略是一种非均匀采样策略,可以很好地适应应用程序这种阶段性行为特征。相比于系统 性采样,随机采样,以及二阶段采样等,不但可以快速确定采样参数, 获取样本片段,而且具有所采取得样本片段具有较高的代表性。

为了更好地捕捉应用程序的行为特征,本发明针对多线程应用程 序的特点对基于cantor set的分形采样策略进行了优化。研究表明, 多线程应用程序的中间片段通常比首尾片段有着更多的有用信息,研 究者更注重中间代码片段的模拟结果。如果第一步就采取cantor set 的采样策略,程序的中间部分将被去掉,会导致较大的模拟误差。为 了保留更多的有用的程序信息,如图2所示,本实施例在对各个线程 的指令流进行采样时采用为两个步骤:

第一步:将每个线程的指令流片段进行等分,从等分过后的指令 流片段当中选取部分指令流片段作为指令流初步样本片段。进一步的, 所述等分的份数为M(需要说明的是,所述M为大于1的自然数)份, 并以0、1、2、……、M-1、M的形式,依次对等分过后的指令流片段 进行编号,将编号为偶数的指令流片段舍弃,将编号为奇数的指令流 片段作为指令流初步样本片段。本实施例中,优选M为12,即对每个 线程的指令流片段等分为12份,并以0、1、2、……、11、12的形式, 依次对等分过后的12份指令流片段进行编号,将编号为偶数的指令流 片段舍弃,将编号为奇数的指令流片段作为指令流初步样本片段进行 保留。

第二步:将所述的指令流初步样本片段进行cantor set采样策略, 即将所述的指令流初步样本片段分为三份,去掉中间的一份,保留两 边的两份;对保留的两份各自进一步分为三份,去掉各自中间的一份, 保留各自两边的两份,以此类推,K(需要说明的是,所述K为大于1 的自然数)次过后,将获得2K份指令流片段,所述2K份指令流片段即 为指令流样本片段。

基于改进的cantor set采样策略有着较高的采样效率,且保留了 能够反映整个程序行为特征的样本片段,有着较高的准确性。另外, 该采样策略还具有独立于微体系结构的特性,即不依赖特殊的微体系 结构,当微体系结构发生改变时,不需要重新采样,节省了开销,提 高了效率。目前,基于cantor set的分形采样策略,一般被运用到单 线程模拟框架中,加速效果明显,本实施例第一次将该采样策略运用 到多线程并行模拟框架中,大大降低模拟时间。该策略不仅可以快速 确定采样中所需的参数,从而快速选定指令流样本片段,而且所选定 的指令流样本片段可以很好的保留了程序整体的行为特征,在损失较 少程序信息的前提下,大大减少了需要模拟的指令数量,显著提高模 拟评估的速度。

S3:把S2中取得的每个线程的指令流样本片段运行在模拟器的动 态代码分析模块中,将每个线程的指令流样本片段按照分割点的不同 分割成多个离散片段;

本实施例为了进一步提高模拟速度,选择了阶段性分段模拟策略, 在较高层次上对指令流片段进行模拟,弃用模拟速度较慢的时钟周期 级别的模拟策略。所述阶段性分段模拟策略是一种快速准确且容易实 现的多核模拟策略,在损失较小模拟精度的前提下,不但提高了模拟 速度,而且降低了模拟框架开发的难度。相比于时钟周期级别的模拟 策略,并不是通过追踪各个模拟核指令流水线的实际执行情况进行细 节模拟。

阶段性分段模拟策略的重要环节是将整个指令流分割成若干个指 令流片段,分割的依据是“事件”,即各种失效事件的发生作为一个分 割点,将整个指令流分成若干个阶段性片段,所述“事件”包括但不 限于:各级缓存缺失、指令分支预测失败、Load指令读取等等。动态 代码分析模块是所述阶段性分段模拟策略中的核心模块之一,作为优 选,所述动态代码分析模块进一步主要包括:指令分析预测模块,用 于分析决定指令流样本片段中指令分析预测失效事件是否发生,并根 据该失效事件来分割指令流样本片段;存储层级预测模块,用于分析 决定指令流样本片段中存储层级预测失效事件是否发生,并根据该失 效事件来分割指令流样本片段;缓存一致性预测模块,用于分析决定 指令流样本片段中缓存一致性预测失效事件是否发生,并根据该失效 事件来分割指令流样本片段;网络互联预测模块,用于分析决定指令 流样本片段中网络互联预测失效事件是否发生,并根据该失效事件来 分割指令流样本片段。

通过所述指令分支预测模块、存储层级预测模块、缓存一致性预 测模块以及网络互联预测模块之间的相互协作,共同分析决定指令流 中每个失效事件是否发生,并根据该失效事件的发生来分割整个指令 流样本片段,从而得到系统使用者所需要的多个离散片段。

这样做的依据是实验分析表明,应用程序具有阶段性行为特征, 即如果将应用程序看成是一整段指令流,这整段指令流可以看成由若 干个离散的较小指令流片段组成,而且这些离散的指令流片段中的指 令有相似的程序行为特征,多个指令流片段可能拥有相同的运行时特 征参数,譬如模拟时间相等等。分割之后的指令流样本片段就是由很 多个这样的离散片段组成。

S4:将S3中多个离散片段按照分割时分割点的不同进行分组;

通过各个指令流样本片段分割依据的分割点“事件”的不同,将 所述的离散片段分成不同的分组,具有相似程序行为特征的片段将被 分为一组,输入到下阶段模拟中的同一个片段模拟模块中。

S5:把S4中分组后的离散片段运行在对应的片段模拟模块中,得 出所述离散片段运行所需花费的模拟时间;

作为优选,所述片段模拟模块进一步包括:处理器模拟模块、网 络互联模拟模块和存储层级模拟模块。所述处理器模拟模块、网络互 联模拟模块和存储层级模拟模块分别接受属于自身分组的离散片段 (即分割并且分组后的指令流样本片段),并根据既定策略推导出该片 段运行所需花费的模拟时间。

这些片段模拟模块的原理是根据同一分组片段有相似的程序行为 特征,且有着相同的运行时参数,并可以根据既定规则推导出运行时 参数,譬如说模拟运行时间。片段模拟模块所采用的并不是时钟周期 级别的模拟策略,而是独立于微体系结构的更高层次上的模拟,通过 既定规则快速推导出每个离散片段的模拟执行时间,大大提高模拟速 度。作为优选,处理器模拟模块接收指令分支预测失败片段之后,根 据既定规则,该片段的模拟时间为:分支预测解决时间+自分支指令之 后的指令流水线深度;网络互连模拟模块接收需要核间通信片段,则 根据当前的路由策略以及网络拥塞程度直接推导给出该片段的模拟时 间;存储层级模拟模块接收到一级缓存缺失片段,则模拟时间为既定 的一级缓存缺失所需要的时间;指令流片段中没有事件发生的指令序 列,则模拟时间为:既定的每条指令执行所需要的时间乘以指令长度。

S6:将S5中所有的片段模拟模块中所输出的模拟时间相加,得出 S1中多线程应用程序的模拟执行总时间;

通过S5中处理器模拟模块、网络互联模拟模块以及存储层级模拟 模块之间的相互写作,共同完成结果采样策略之后活得的指令流样本 片段的模拟,将所述的处理器模拟模块、网络互联模拟模块以及存储 层级模拟模块三者输出的各个指令流样本片段的模拟执行时间相加, 即得到整个指令流样本片段总的模拟执行时间。

本实施例针对当前多核、众核系统迅猛发展,迫切需要高效模拟 器来辅助探索日益增大的设计优化空间问题,提供了一种基于采样的 多核模拟并行加速的方法,该方法综合运用了多线程并行模拟策略、 基于改进cantor set的分形采样策略以及阶段性分段模拟策略,在牺 牲较少模拟精度的前提下,大幅度缩减了模拟时间,提高了模拟效率, 为众核系统的性能评估以及设计方案优化提供了很好的辅助工具。同 时,本发明还充分利用了当前普及的多核硬件资源,进一步提升了模 拟速度。

具体来说,本实施例所提出的多核模拟并行加速方法,综合运用 了多线程并行模拟策略、基于改进cantor set的分形采样策略以及阶 段性分段模拟策略,实现了模拟过程中的多重加速,相比于传统的单 线程模拟策略、时钟周期级别模拟策略,本发明有着大幅度模拟速度 的提升,具有高效性;可以很好地适应当前众核系统设计方案优化的 需求;本实施例所提供的片段模拟模块,比如,处理器模拟模块、存 储层级模拟模块以及网络互联模拟模块,都可以按照需求灵活改动每 个模块的配置,很好的适应了当前众核系统设计过程中需要探索大量 的设计方案的需求;本实施例所采用的基于改进cantor set的分形采 样策略,可以快速简单的运用公式推导出采样过程中所需参数,而无 需多次模拟求证各采样参数,具有简单性。与此同时,本实施例采用 的阶段性分段模拟策略,相比于时钟周期级别的模拟策略,其模拟框 架易于实现,代码量小,具有简单易用性。

以上所述实施例仅表达了本发明的一种实施方式,其描述较为具 体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指 出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前 提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。 因此,本发明专利的保护范围应以所附权利要求为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号