自适应地选择执行模式的系统和方法与流程

文档序号:12512712阅读:263来源:国知局
自适应地选择执行模式的系统和方法与流程
本发明要求于2014年12月30日递交的发明名称为“自适应地选择执行模式的系统和方法”的第14/585,738号美国非临时申请案的在先申请优先权,该在先申请的内容以引入的方式并入本文。
技术领域
本申请大体涉及处理流程和执行模式(例如顺序、并行等)领域。
背景技术
:众多的电子技术,例如数字计算机、计算器、音频设备、视频设备和电话系统在商业、科学、教育和娱乐的大部分领域的数据、创意和趋势的分析和传递方面促进了生产率的提高和降低了成本。这些活动常常涉及复杂的处理,而且信息处理方式(例如顺序地、并行地等)会影响性能。传统方法或任务执行通常受限于几个预定的执行模式(例如顺序和并行)中的一个。不同的执行模式通常具有不同的优点和潜在的问题。顺序编程是原始执行模式之一,并且仍然在许多应用中使用。顺序编程较为直截了当,可以很好地理解。并且由于程序通常以直序列流动,顺序编程通常不涉及程序的不同部分之间的复杂的时序协调。然而,顺序编程通常仅限于在一个时间执行一个任务,并需要大量的时间来完成整个程序。并行计算通过基本上在同一时间执行各种操作从而改进某些应用中的性能。由于大量增加的网络规模和对越来越困难的问题的解决尝试,并行计算已成为计算机体结构(例如多核心处理器等)的主导模式之一。并行计算在许多应用中可能是有利的,但是并行编程的各个方面也可能是有问题并会导致显著障碍(例如多个组件之间的更多通信量、多个任务之间的同步、竞争条件、开发通常比顺序编程更难等)的。有一些传统的框架方法。然而,这些方法通常有限制。例如,仅限于在一个时间以一个固定的执行模式选择一个预定的框架。一旦预先确定,执行模式通常就不会改变。一个特定、固定、预定的执行模式的表现能力可根据不同的情况(例如问题大小、数据配置、高速缓存占用率等)而变化。一些传统试图尝试提取并行性,但常常需要更多的运行时间和操作系统(operatingsystem,简称OS)扩展。有一些其他的使用机器学习来映射启发式决策的传统方法,但这些试图通常受限于基于编译器的自动并行化试图的预定,这些试图常常是有问题的(例如,难以处理不规则程序、不适应输入类型等)。技术实现要素:本发明描述了促进高效和有效的自适应执行模式选择的方法和系统。在一实施例中,系统包括:多个执行单元;存储器;以及内嵌在处理组件中的控制器,其中所述处理组件耦合至所述存储器且耦合至所述多个执行单元,所述控制器能够针对所述多个执行单元引导执行模式选择。所述控制器还能够:参与定义操作;建立多个定义对,所述定义对通过执行基于有引导的机器学习的训练将定义特点映射;在实时运行时执行动态执行模式的自适应选择。在一示例性实施中,由控制器执行的方法包括:收集多个由所述控制器控制的多个执行单元的相关信息;通过执行包括进行有引导的机器学习的训练来将定义特点关联到执行模式;进行执行模式的自适应选择;发起利用选择的执行模式的实际运行。所述自适应选择是动态执行的。一示例性系统包括:学习模块,用于接收信息;执行模块,用于运行试验和选择多个执行模式中的执行模式,其中所述执行模块还用于在使用人工神经网络实时运行时选择所述动态执行模式;耦合至所述执行模块的运行模块,所述执行模块用于发起基于来自所述模块的选择的执行模式的任务的运行。附图说明以下包含在说明书中并形成本说明书的一部分的附图用于示例性地阐述本发明的原理,不是用于将本发明限制到其示出的特定实施。除非另有具体说明,附图不是按比例绘制的。图1是本发明一实施例提供的示例性流程的流程图。图2是一实施例提供的系统的方框图。图3是一实施例提供的示例性执行模式选择流程或方法的流程图。图4是一实施例提供的有引导的机器学习流程的流程图。图5是一实施例提供的自适应选择流程的流程图。图6是一实施例提供的示例性系统的方框图。图7是一实施例提供的示例性人工神经网络设计的方框图。图8示出了一实施例提供的示例性应用的图。图9是本发明一实施例提供的示例性自适应执行模式选择的方框图。具体实施方式现将详细地对本发明的各种实施例、附图示出的示例做出参考。虽然会结合这些实施例进行描述,但可以理解的是它们并不用于将本发明限制于这些实施例。相反,本发明公开旨在覆盖可以包括在由所附权利要求书限定的本发明公开的精神和范围内的替代物、修改和等同物。另外,在以下本发明的详细描述中,阐述了许多特定细节以便提供对本发明的透彻理解。然而,可以理解的是,实际应用中,可以不包括本发明的这些特定细节。在其它实例中没有详细描述众所周知的方法、流程、组件和电路,以免对本发明的各方面造成不必要地模糊。本发明描述了促进高效和有效的自适应执行模式选择的方法和系统。所述自适应执行模式选择是部分动态进行的,并涉及改变到某执行模式。程序任务的智能的自适应选择能够在多种执行模式间(例如顺序、并行等)进行。所述自适应执行模式选择也能够包括选择与所述执行模式相关联的参数。在一实施例中,控制器接收与执行模式选择相关联的历史信息,参加关于执行模式选择的训练,以及自适应地选择动态执行模式。所述历史信息可以包括定义或者描述程序任务或者输入的特征。所述训练可以使用类似人工神经网络的方法,在所述方法中,自动的有引导的机器学习方法建立执行模式和基于历史信息的任务/输入特征定义之间的关系。所述训练操作为试运行中使用的初步执行模式选择(以及必要时的参数选择)的确定提供了指导。自适应选择是基于试运行动态执行的。在所述试运行期间收集的额外的任务特征信息和输入特征信息由所述控制器在前馈程流程(例如,带有实时计算等)中使用,这产生了在当前系统条件下的适配执行模式选择。持续运行时间操作利用了所述适配执行模式选择。额外的信息可以从所述持续运行时间操作中收集,也用来产生改变或者升级到所述适配执行模式选择。图1是本发明一实施例提供的流程100的流程图。流程100包括选择为执行任务使用的执行模式。执行模式的选择是动态实时进行的。示例性方法的所述操作的总体概述是初始展示的,新的自适应执行模式选择方法的更多解释在具体说明的后面部分进行描述。在块110,接收新的或者当前任务或者程序的有关信息。所述信息可以包括与执行所述任务(或者程序)相关联的信息和与所述任务的输入相关联的信息。应理解的是,能接收到不同类型的信息。在块120,执行自适应执行模式的选择流程。在一实施例中,关于任务特征定义和输入特征定义历史信息被收集起来,人工神经网络类型训练使用有引导的机器学习方法来执行。在试运行中,使用基于人工神经网络训练结果的初步执行模式选择来发起任务。从所述试运行中收集额外的当前任务特征信息和当前输入信息,并将其用于产生或者参与带有适配执行模式选择实际运行。在块130,根据使用适配执行模式的实际运行来执行任务。应理解的是,可以执行多种应用或者程序。在一示例性实施中,额外的自适应执行模式选择操作可以被再次发起(例如在一特定的时间段、一个触发事件之后),以确定在所述执行模式选择中的改变是否合适。图2是本发明一实施例提供的系统200的方框图。执行模式选择系统200包括控制器210、存储器220,以及中央处理器内核231、232、233和234。中央处理器内核231、232、233和234进行与各种任务相关联的处理操作。控制器210引导所述中央处理器内核231、232、233和234执行的所述处理操作的所述执行模式和参数选择。在一实施例中,控制器210还包括执行与所述执行模式选择相关联的操作的处理电路。存储器220存储所述控制器210和中央处理器内核231、232、233和234的信息。在一实施例中,系统200设置在集成电路(或者组件)中,控制器210内嵌于所述集成电路,并耦合至所述存储器220。所述控制器引导执行模式选择。所述模式选择可包括多种执行模式(例如顺序、并行等)和与选择模式相关联的参数。控制器210参加包括收集信息(例如涉及任务特征、输入特征、与执行模式选择相关联的启发等)的多种定义操作。所述输入然后进行指向多种特征定义(例如任务特征定义、输入特征定义等)的学习较佳模式选择的训练操作。所述训练操作可以包括带有有引导的机器学习的神经网络类型操作。基于所述训练的结果,所述控制器能够执行执行模式选择,包括:发起试验版任务;从所述试验版任务收集特征;选择前馈程序(例如带有实时计算)中的适配执行模式;发起利用所述适配执行模式选择的流程的实际运行。图3是根据一实施例的示例性执行模式选择流程300的流程图。模式选择流程300类似于在块120执行的执行模式选择流程。执行模式选择流程300包括选择运行程序或者执行任务时采用的执行模式(例如顺序、并行等)的机制。如果选择并行执行模式,所述执行模式选择流程也能选择与所述选择的并行执行模式使用的参数。在块310,执行信息收集流程。所述信息收集流程可包括收集历史信息(例如从类似任务的之前运行中收集)。所述信息可以包括与任务特征集的定义、输入特征集和与执行模式选择相关联的启发相关联的信息。所述启发可以包括为应用或者程序选择执行模式的流程步骤的算法或者集合。在一示例性实施中,前馈神经网络的流程步骤的集合基于特征特点(例如,来自任务特征集、输入特征集等)和多种执行模式之间的加权关系的合计选择执行模式。所述任务特征定义可以包括多个定义或者描述任务的特征或者特点(例如,所述任务中包括的指令的个数、多个与任务相关联的任务参数、执行时间、所述任务的存储器占用率等)多个元素。输入特征的定义可以包括多个定义或者描述所述输入(例如输入的长度或者规模、输入类型、输入数据的维数等)的特征或者特点的元素。在块320,执行学习流程。在一实施例中,定义信息与执行模式相关联。嵌入的控制器可以利用前馈人工神经网络方法,其包括使用来自块310和受监督的机器学习机制中的信息的预训练。在一实施例中,训练示例收集自历史运行。所述训练样本包括输入和输出的对。每对训练样本有两部分:所述任务/输入特征集和对应的执行模式。每个模式的具体参数可以存储在表或者数组中供将来使用。所述学习流程提供多种在试运行中使用的初步执行模式选择。在块330,执行自适应执行模式的选择流程。所述自适应执行模式选择流程是部分动态执行的。试运行是利用来自块320的所述初步执行模式选择结果进行的。关于当前程序任务(例如任务特征定义、输入特征定义等)的试运行的信息被收集起来。所述自适应执行模式选择包括程序任务的试运行,基于试运行结果的实际运行执行模式选择,以及发起使用来自实际运行适配执行模式选择结果的程序任务的实际运行。新的自适应执行模式选择方法的更多解释在具体说明的后面部分进行描述。图4是一实施例提供的有引导的机器学习流程400的流程图。有引导的机器学习流程400类似于块320中的有引导的机器学习流程。有引导的机器学习流程400指向关于从执行模式到定义特点的关联的执行模式选择流程的训练。在块410,接收任务特征定义和输入特征定义。在块420,计算所述控制器的当前输出。在块430,计算所述当前输出与目标输出的差异。所述差异被用作成对训练样本数据第二部分。在块440,确定所述差异是否大于阈值。在块450,误差返传播到所述计算包括计算所述控制器的当前输出的流程(例如块420),包括:如果所述差异大于所述阈值则调整所述连接权重。在块460,如果所述差异不大于所述阈值,则处理下一个样本。与所述任务特征和数据特征相关联的从第一样本至最后样本的样本会继续进行上述操作。图5是一实施例提供的自适应选择流程500的流程图。自适应选择流程500类似于块330中的自适应选择流程。系统可以有在实时运行时实施自适应选择流程的自适应选择机制。有三个主要的阶段:试运行阶段、方案选择阶段,以及实际运行阶段。在块510,发起试验版任务。所述试验版可以在系统开始运行时发起。在块520,从所述试验版中收集输入数据特征集定义和任务特征集定义。所述信息可以在一段时间之后输入至控制器中供自适应当前执行模式选择使用。在块530,确定适配执行模式选择方案。在选择所述执行模式中的一个时,收集的特征被输入至所述控制器。不同于所述学习程序,所述控制器的所述选择程序是基于前馈的,并且计算是实时进行的。所述控制器的所述输出是在当前系统条件下选择的模式。在块540,采用选择的执行模式来执行流程。系统可以带着所述控制器(例如顺序或者并行)提供的方案来开始运行。并行模式参数可以从所述人工神经网络控制器设计中包含的表或者数组中获取。图6是一实施例提供的示例性系统600的方框图。系统600包括学习模块610、执行模式选择模块620,和运行模块630。学习模块610接收训练样本信息610。训练样本信息610包括执行模式的任务特征集信息、输入特征集信息,和启发信息。学习模块620建立所述执行模式到对应任务特征集信息的启发信息和输入特征集信息之间的关系。关于所述关系的信息被转发到执行模式选择模块630,所述执行模式选择模块630基于关系信息建立了方案(例如方案1、2、3等)。当前程序信息625(例如所述当前程序的输入和任务特征等)也被输入至执行模式选择模块630,并选择了一种方案。指定的“当前”执行模式方案被转发到运行模块650,所述运行模块650基于所选择的执行模式方案执行各种任务。应理解的是,可以针对当前程序的不同部分选择不同的执行模式方案。包括输入特征和任务特征信息当前运行样本信息670被转发到学习模块620。所述学习模块620可以建立新的(或者修正后的)的在1)所述执行模式到对应任务特征集信息的启发信息和2)输入特征集信息之间的关系。所述新的(或者修正后的)关系信息可用于修改当前执行模式选择,也能合并到将来决策中。图7是一实施例提供的人工神经网络设计700的方框图。人工神经网络设计700包括多种输入和输出。所述输入和输出之间会有多个隐藏的层(未示出)。人工神经网络设计700建立多种特征和执行模式选择之间的关系。有多种与所述多种执行模式(例如i、j、k等指定的)相关联的特征(例如特征1、特征2、特征N等)。在本示例性实施中,所述多种执行模式包括,例如,顺序、带参数集1的并行和带参数集2的并行。所述特征是反馈到计算组件710、720和730的分配权重(例如W1i、W2j、Wni等)。所述计算组件710、720和730建立了所述特征的特点和所述多种执行模式之间的加权关系。应理解的是,所述新的执行模式选择可以由多种程序任务(例如循环程序任务、图程序任务等)进行。图8示出了根据一实施例的示例性应用800的图。应用800是一种程序,包括多种与处理任务A、B、C、D、E和F相关联的多种节点,所述处理任务A、B、C、D、E和F在边811、812、813、814、815、816、817和819代表的图中进行耦合。所述任务或者节点了解之前的任务或者节点。在一实施例中,所述应用以与任务A相关联的处理开始,并以与任务F相关联的处理结束。所述应用800包括任务A和任务F之间的多种其他流程任务(例如B、C、D等)。所述边可以代表所述任务(例如输入、输出等)和分配的权重之间的多种关系。对路径中的加权边进行合计以取得路径的总成本或者影响,从而得到A和F之间的最短路径。应理解的是,所述示例性应用的图可以有带有不同数量的节点和边的不同设置。所述执行模式选择流程可以用来选择针对执行程序循环任务的执行模式。在一示例性应用中,所述循环是基于下列程序任务的:M[2X4]N[4X4]for(i=1;i<10;i++)for(j=1;j<10;j++){Kij=Mij+Nij;}。其中M和N是两个维数组,两者可以相加产生二维数组K。在上述例子中,总计有100个任务或者迭代来计算K的元素。计算K的各个元素的增加指令是相同的,但是每个操作或者迭代使用不同输入数据(来自所述M和N数组)。因此,各个增加任务或者操作可以在大约相同的时间里执行。基于输入(例如来自M和N)的数量和指令(例如所述增加功能)的数量来选择执行模式。如果选择了并行执行模式,也基于运行时间的系统信息(例如可用的CPU内核数量或者可用的存储器数量等)来选择与所述并行执行模式相关联的参数(例如在同一时间待执行的任务的数量等)。应理解的是,M、N和K是在不同应用领域有多种不同含义的通用指标。例如,他们可以是包含对应图像中的像素的数值(例如照度值、纹理映射值等)的矩阵。指数范围可以变化(例如10x10、1024x758等),还可以取决于所述应用(例如对应图像的格式或者分辨率的值等)。还应理解的是,循环可以包括多个不同输入和迭代指令。在一可选的实施例中,循环程序任务有超过M[2X4]和N[4X4]个的输入和超过Kij=Mij+Nij个的迭代指令。图9是本发明一实施例提供的示例性自适应执行模式选择的方框图。系统200接收信息901、902、903和904。所述信息包括关于在多种程序任务的历史执行中使用的任务特征定义,输入特征定义和所述执行模式定义的信息。程序任务901是顺序执行的、带有很少指令和很少输入的循环程序任务。程序任务902是并行执行的、带有很多指令和很多输入的循环程序任务。程序任务903是顺序执行的、带有很少指令和很少输入的图程序任务。程序任务904并行执行的、带有很多指令和很多输入的图程序任务。程序任务905是并行执行的、带有很少指令和很多输入的循环程序任务。程序任务906是是顺序执行的、带有很多指令和很少输入的循环程序任务。程序任务907是并行执行的、带有很少指令和很多输入的图程序任务。程序任务908是顺序执行的、带有很多指令和很少输入的图程序任务。控制器210进行学习操作并产生下列样本定义特征和对应执行模式选择结果的对。样本方案模式选择很少指令/很少输入顺序很多指令/很多输入并行很多指令/很少输入并行很少指令/很多输入顺序控制器210接收与第一任务相关联任务特征和输入特征信息910。任务特征和输入特征信息910指示所述第一任务包括很少输入和很少指令。利用上述映射,控制器210选择顺序执行模式作为初步执行模式。所述第一任务的试运行使用CPU231来顺序执行,并且收集额外的当前任务特征和输入特征信息。控制器210进行适配执行模式选择,并且如果所述试运行指示所述顺序模式选择是合适的,所述控制器210继续使用所述顺序执行模式作作为适配执行模式。如果所述顺序执行模式没有基于所述试运行来合适地执行,所述控制器则改变到其他执行模式。控制器210接收与第二任务相关联的任务特征和输入特征信息920。任务特征和输入特征信息920指示所述第二任务包括很少输入和很少指令。利用上述映射,控制器210选择并行模式作为初步执行模式。所述第二任务的试运行使用CPU232和233并行执行,并且额外的当前任务特征和输入特征信息被收集。控制器210进行适配执行模式选择,并且如果所述试运行指示所述并行模式选择是合适的,所述控制器210继续使用所述并行执行模式作为适配执行模式。如果所述并行执行模式没有基于所述试运行来合适地执行,所述控制器则改变到其他执行模式。本文中所述的实施例是以计算机可执行指令(例如程序模块)的大背景来讨论的,这些计算机指令位于某种形式的计算机可读介质,并由一个或多个计算机或其它设备执行。举例来说,计算机可读存储介质可以包括非瞬时性计算机存储介质。非临时性计算机可读存储介质包括除了过渡、传播信号之外的所有的计算机可读介质。计算机可读的存储介质包括在用于存储计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术中所实现的易失性和非易失性、可移动和不可移动介质。一般而言,程序模块包括例程、程序、对象、组件以及数据结构等,其执行特定任务或实现特定抽象数据类型。根据各种实施例中的需要,程序模块的功能可以组合或分布。尽管本文中已经揭示某些实施例和方法,但所属领域的技术人员将从前述揭示内容显而易见,在不脱离本发明的精神和范围的情况下可以对此类实施例和方法进行变化和修改。希望本发明将仅限于所附权利要求书以及可适用法律的规则和原理所需的范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1