一种基于机器学习的推测多线程划分方法

文档序号:9616159阅读:868来源:国知局
一种基于机器学习的推测多线程划分方法
【技术领域】
[0001] 本发明属于计算机技术领域,涉及一种推测多线程技术,特别涉及一种基于机器 学习的推测多线程划分方法。
【背景技术】
[0002] 随着指令级并行遇到越来越多的瓶颈和片上多处理器的迅速发展,如何更加有效 的利用核资源成为当前研究热点,推测多线程作为一种线程级并行技术得到迅速发展。特 别是针对使用基于指针的数据结构如图和树等进行处理的非规则程序,其存在大量的只有 在执行时才能确定的模糊数据依赖关系,而线程级推测并行在允许存在控制和数据依赖的 情况下,通过并行编译器将非规则串行程序分解为多个线程单元,在执行时将其依次分别 分配给空闲的处理器核单元来并行执行,而程序并行执行的正确性则由底层的硬件根据相 应的执行模型来保证。线程级推测技术摆脱了传统并行化方法不能有效消解模糊数据依赖 关系的局限,从而在并行化非规则程序方面展现出好的应用前景。
[0003] 在线程级推测执行过程中,串行程序被划分为多个推测线程并行执行,每个线程 分别执行程序的不同部分,并严格按照串行语义顺序执行。推测多线程程序的执行时,有 且仅有一个线程为确定线程,该线程可以提交其执行结果,而其他线程均为推测线程,线程 间以前驱后继的形式保持串行程序的语义。每个推测线程通过一对激发指令来标识,通过 引入预计算片段(Pre-computationSlice,P-slice)预测推测线程的live-ins变量(活 跃变量,被线程体使用但其值并非由该线程定义值)的值。一对激发指令由线程激发点 (SpawningPoint,SP)和准控制无关点(ControlQuasiIndependentPoint,CQIP),即新 线程的起始点构成,当程序执行到SP点时,若有空闲核资源,则分配线程到该处理器执行; 当确定线程执行到CQIP点时,将验证其直接后继线程在P-slice产生的live-ins数据,若 验证正确,则确定线程提交其执行结果;若验证失败,则撤销此后继推测线程及其所有推测 子线程,然后跳过P-slice片段,将该后继线程作为确定线程来执行。
[0004] 在推测多线程中如何合理地分解非规则串行程序对于提高加速比有很大的影响, 传统的线程划分方法主要应用启发式规则,通过对线程粒度、数据依赖距离等加以选择控 制来优化程序的分解过程。其局限性在于不同的程序通常具有不同的结构特征,而基于启 发式规则的方法以一种单一的优化方案来对所有程序进行优化,因此不能保证所有的非规 则程序均能获得最优的划分。

【发明内容】

[0005] 本发明的目的在于克服上述现有应用启发式规则以一种单一的优化方案来对所 有程序进行优化的局限性,提供一种基于机器学习的推测多线程划分方法,该方法能够依 据程序特征来优化最优划分方案,对不同非规则程序具有更好的适应性。
[0006] 为达到上述目的,本发明采用以下技术方案:
[0007] -种基于机器学习的推测多线程划分方法,包括以下步骤:
[0008] 1)从非规则程序集中提取程序特征,并将提取的程序特征注释到程序的控制流图 CFG上,同时以数组结构来存储程序关键路径上的基本块,得到以带注释的图联合数组的方 式表达的程序集;
[0009] 2)基于SUIF编译器构造程序控制流图CFG,并用程序剖析信息和结构化分析方法 将构造的程序控制流图依次转化为加权控制流图WCFG和超级块控制流图SCFG,然后对程 序集分别进行循环部分和非循环部分的线程划分,得到由程序特征和最优划分方案构成的 训练样本集;
[0010] 3)提取待划分非规则程序的特征,利用基于图的相似性比较算法计算待划分的非 规则程序特征与训练样本集的程序特征的相似性,得到最相似的样本程序,然后对最相似 的样本程序的划分阈值进行加权计算,并将计算结果作为最优划分阈值应用到待划分非规 则程序中完成推测多线程划分。
[0011] 所述步骤1)中依据影响程序加速比的因素从非规则程序集中提取程序特征,并 使用图G和数组A联合的数据结构来存储程序特征;其中影响程序加速比的因素包括线程 粒度、负载均衡、数据依赖以及控制依赖;提取的程序特征包括动态指令数、循环概率、分支 概率、数据依赖数和数据依赖距离;图G是带注释的控制流图,图G中的节点的属性为动态 指令数,边的属性为由循环分支概率、数据依赖数、数据依赖距离组成的三元组;数组A中 的兀素4;表不关键路径上的基本块。
[0012] 所述步骤2)中在进行循环部分的线程划分时,根据剖析器分析得到的迭代次数、 循环体大小以及循环体之间的数据依赖数来决定循环部分的划分,只有当激发下一次迭代 是盈利的,才将每个迭代指定为一个候选线程;并且在划分循环部分时,依据线程粒度和数 据依赖数将候选线程的激发点SP插入到循环体内,将准控制无关点CQIP即候选线程的起 始点插入到循环分支指令前。
[0013] 判断激发下一次迭代是盈利的标准为:循环体的线程粒度ThreadSizee[3, 32], 且迭代之间的数据依赖数DDCe[3, 9]。
[0014] 所述步骤2)中在进行非循环部分的线程划分时,将当前候选线程初始化为空,以 起始点作为当前线程划分的参考点,获得从起始点到最近一个后向支配节点的最可能路 径,仅当最可能路径上所有基本块的动态指令数满足经验值设定的线程粒度阈值范围条 件,并且与后继待划分部分的最优依赖数小于经验值设定的阈值时,则获得由最可能路径 上的节点构成的候选线程;若大于线程粒度上限,则将被进一步划分;若小于线程粒度下 限,则当前起始点的最近后向支配节点不会激发新的线程,将最可能路径上的节点加入到 当前候选线程;每一步递归将当前参考点的最近后向支配节点作为当前候选线程的起始 点,直到当前非循环部分的结束节点结束为止。
[0015] 所述步骤2)中分别针对循环部分和非循环部分进行线程划分,得到程序的划分 方案,然后对程序特征及其相应的最优划分方案进行联合表达,得到训练样本集;其中划分 方案表示为线程粒度上限、线程粒度下限、数据依赖数、激发距离上限和激发距离下限的五 维阈值组合,训练样本T表示为(kV··,#),其中,表示第i个程序的程 序特征,表示第i个程序对应的最优划分,N表示程序总个数。
[0016] 所述步骤3)中待划分的非规则程序特征与训练样本集的程序特征的相似性比较 方法为:分别提取待划分的非规则程序和训练样本集的程序在起始点和结束点之间的所有 路径,比较二者所有路径的相似性,加权累加后得到图的相似性,具体计算公式如式(1)所 示:
[0018] 其中Κ-ΙG2)为图G1和图G2的相似性,wall^为图G1的程序执行路径,walk丨 为图G2 的程序执行路径,Kwalk(walki,walk)为walkJPwalk.j的相似性,Kwalk(walkG1,walkG2) 为图G1和图G2的关键路径的相似性,p为权值参数。
[0019] 所述步骤3)中对最相似的样本程序的划分方案五维阈值进行加权计算,获得待 划分非规则程序的最优划分阈值,计算公式如式(8)所示:
[0020]
[0021] 其中TH,表示第j个待求阈值,j= 1~5,e为欧拉数,th表示距离待划分过程 最近的第1个过程的第j个阈值,也^表示距离待划分过程最近的第i个过程的第j个阈 值,参数c表示选取的最相似样本数;五维阈值为线程粒度上限、线程粒度下限、数据依赖 数、激发距离上限和激发距离下限。
[0022] 相对于现有技术,本发明具有以下有益效果:
[0023] 本发明提供的基于机器学习的推测多线程划分方法,克服了现有应用启发式规则 以一种单一的优化方案来对所有程序进行优化的局限性。该方法通过对程序特征进行分析 及表示,并分别对循环部分和非循环部分执行不同的线程划分策略以获得由程序特征及其 最优化分方案构成的训练样本集,从而通过将待划分的非规则程序特征与训练样本集的程 序特征进行比较,应用最相似的样本程序的划分方案对待划分的非规则程序进行推测多线 程划分。本发明依据程序特征来比较待划分的非规则程序与训练样本集的程序的相似性, 将最相似样本的划分方案应用到待划的非规则分程序中,能够依据程序特征来优化最优划 分方案,对不同非规则程序具有更好的适应性。本发明还具有以下优点:
[0024] 1)通过使用本发明提供的基于机器学习的推测多线程划分方法,能够避免像现有 的基于启发式规则的方法那样,以一种单一的优化方案来对所有非规则程序进行线程划分 的局限性,本发明的基于机器学习的推测多线程划分方法依据程序特征决定优化的划分方 案,对不同非规则程序具有更好的适应性。
[0025] 2)本发明提供的基于机器学习的推测多线程划分方法能够对基于动态数据结构 的非规则程序进行并行化处理,获得较好的加速
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1