用于处理单元的动态资源分配的方法和设备与流程

文档序号:11293457阅读:255来源:国知局
用于处理单元的动态资源分配的方法和设备与流程
本发明总体上涉及处理单元的动态资源分配,并且更具体地涉及通过下述方式而执行动态资源分配的方法和设备:向任务块分配处理单元,使得有效地利用中央处理单元(CPU)资源和图形处理单元(GPU)资源两者。

背景技术:
可以使用计算软件来实现诸如CPU、GPU和粗粒度可重构体系结构(CGRA)的处理单元。下面参考图1和2来更详细地描述CPU、GPU和CGRA。如图1中所示,CPU110可以包括执行实际计算的至少一个内核115,并且GPU120可以包括执行实际计算的至少一个处理元件(PE)125。而且,在图1中,与存储器130相关联地图示了CPU110和GPU120两者。近来,已经广泛地使用了具有多个内核的处理器或具有多个PE的GPU。具体地说,诸如GPU的高端处理单元可以包括成百上千的PE。图2图示了粗粒度可重构体系结构(CGRA)的配置。在CGRA中,布置了许多处理元件(功能单元,FU)使得在其间传送输入和输出以用于有组织的处理。以动态的方式来调整要计算的数据的路径和用于处理数据的FU。在CGRA中,如该名称所暗示,通过软件手段可以以较为粗粒度的方式而不是以细粒度的方式来调整用于使用所布置的硬件部件的方法和序列。一个PE可以迅速地执行小操作,并且大量的互连的PE可以执行大的和复杂的操作。在图2中,多个PE通过网格风格的网络来互连。通过PE的可调整的路径来计算操作数。一个PE可以从相邻的PE接收输入,并且产生至相邻的PE的输出,并且可以具有用于存储暂时值的寄存器文件、用于提供重新配置信息的配置存储器和用于计算运算的FU(ALU)。当处理单元的数量增大时,重要的是,有效地管理包括这些处理单元的资源以提高整体系统性能。通常,当CPU调用GPU时启动GPU处理。为了GPU执行任务,CPU可以设置GPU寄存器。已经利用硬件线程来与GPU并行地执行多个操作。使用这些硬件线程,可以将处理元件编组,并且多组处理元件可以并行地执行。如上所述,系统通常向最大化并行操作执行演进。然而,现有技术倾向于依序利用CPU和GPU。图3是图示使用CPU和GPU资源的任务的依序处理的图。更具体地,图3图示了随着时间的CPU310和GPU320的利用。参见图3,正在处理任务的CPU310在特定的时间点调用GPU320。当GPU处理任务时,CPU等待在GPU处的任务的完成。然而,CPU也可以处理不同的任务或程序。在GPU执行期间,不是可以利用所有的处理元件。具体地说,如图3中所示,仅使用活动的处理元件330,并且剩余的处理元件340保持处于空闲状态中。当在GPU处结束任务的处理时,GPU向CPU返回处理结果,CPU然后继续随后的处理。

技术实现要素:
技术问题如上所述,在依序的资源利用中,不同时利用CPU和GPU,并且不是使用GPU的所有处理元件。当在GPU中未将任务进行划分时,单个任务可能占用整个GPU。因为大多数应用程序不利用GPU的所有处理元件,所以可能浪费GPU资源,使得系统性能变差。技术方案已经作出了本发明以至少处理上面的问题和/或缺点,并且至少提供下述的优点。因此,本发明的一个方面提供了一种通过下述方式来执行动态资源分配的方法和设备:向任务块分配处理单元,使得有效地利用CPU资源和GPU资源两者。根据本发明的一个方面,提供了一种用于具有至少一个处理单元的系统的动态资源分配的方法。接收关于要向其分配资源的任务的信息,并且将所述任务划分为一个或多个并行任务单元。所述一个或多个并行任务单元被转换为任务块,所述任务块具有基于所述一个或多个并行任务单元的估计的执行时间和是否在所述一个或多个并行任务单元之间存在依赖性而形成的形状。通过将所述任务块布置在具有时间轴和处理单元轴的资源分配平面上来向所述任务块分配资源。根据由所述资源分配平面确定的资源分配信息来执行所述任务。根据本发明的另一个方面,提供了一种用于具有至少一个处理单元的系统中的动态资源分配的设备。所述设备包括动态资源分配块,所述动态资源分配块接收关于资源要被分配到的任务的信息,将所述任务划分为一个或多个并行任务单元,将所述一个或多个并行任务单元转换为任务块,所述任务块具有基于所述一个或多个并行任务单元的估计的执行时间和是否在所述一个或多个并行任务单元之间存在依赖性而形成的形状,并且所述动态资源分配块通过将所述任务块布置在具有时间轴和处理单元轴的资源分配平面上来向所述任务块分配资源。所述设备也包括至少一个处理单元,所述至少一个处理单元根据由所述资源分配平面确定的资源分配信息来执行所述任务。根据本发明的另一个方面,提供了一种用于具有至少一个处理单元的系统的动态资源分配的制造品。所述制造品包括机器可读介质,所述机器可读介质包含一个或多个程序,所述一个或多个程序当被执行时执行下述步骤:接收关于资源要被分配到的任务的信息,并且将所述任务划分为一个或多个并行任务单元;将所述一个或多个并行任务单元转换为任务块,所述任务块具有基于所述一个或多个并行任务单元的估计的执行时间和是否在所述一个或多个并行任务单元之间存在依赖性而形成的形状;通过将所述任务块布置在具有时间轴和处理单元轴的资源分配平面上来向所述任务块分配资源;以及,根据由所述资源分配平面确定的资源分配信息来执行所述任务。有益技术效果根据本发明的实施例,可以同时并行地使用在系统中的CPU资源和GPU资源,提高了整体系统效率。附图说明通过下面结合附图进行的详细描述,本发明的上面和其他方面、特征和优点将更清楚,在附图中:图1是图示CPU和GPU的配置的图;图2是图示CGRA的配置的图;图3是图示使用CPU和GPU资源的任务的顺序处理的图;图4是图示根据本发明的一个实施例的动态资源分配系统的框图;图5A和5B是图示根据本发明的一个实施例的、通过在图4中所示的系统的动态资源分配而产生的任务块的图;图6是图示根据本发明的一个实施例的任务块产生方法的流程图;图7是图示根据本发明的一个实施例的用于在资源分配平面上布置任务块的规则的图;图8是图示根据本发明的一个实施例的在资源分配平面上的任务块布置方法的流程图;图9是图示根据本发明的一个实施例的、根据图8的方法在资源分配平面上的任务块的移动的图;图10是图示根据本发明的一个实施例的、图4的动态资源分配块450的内部结构的图;图11是图示根据本发明的一个实施例的、构成图10的处理库1020的寄存器单元的内部结构的图;图12是图示根据本发明的一个实施例的、构成图10的处理库1020的寄存器单元的组合的图;图13是图示根据本发明的一个实施例的、通过图4的动态资源分配块450执行的资源分配方法的流程图;图14是图示根据本发明的一个实施例的、图13的步骤S1330的调度方法的流程图;以及图15是图示根据本发明的一个实施例的动态资源分配方法的流程图。具体实施方式参考附图详细描述本发明的实施例。可以通过相同或类似的附图标号来指示相同或类似的部件,虽然在不同的图中示出了它们。可以省略在本领域中已知的构造或处理的详细说明,以避免混淆本发明的主题。本发明提供了使得能够有效利用CPU和GPU资源的动态资源分配方法和设备。图4是图示根据本发明的一个实施例的动态资源分配系统的框图。该动态资源分配系统可以包括CPU410、GPU420、CGRA430、存储器440和动态资源分配块450。CPU410、GPU420和CGRA430是能够处理任务的处理单元的示例。具体上,CPU410可以是具有多个内核的多核处理器415。GPU420不仅可以执行图形操作,而且可以与CPU410合作地处理大量任务。为了实现这些功能,GPU420可以包括多个PE。包括CPU410和GPU420的处理单元向动态资源分配块450提供关于要处理的任务的信息,从动态资...
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1