当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于为异构系统划分计算机应用的自动学习技术技术方案

技术编号:28978272 阅读:19 留言:0更新日期:2021-06-23 09:24
本申请涉及用于为异构系统划分计算机应用的自动学习技术。用于为异构系统划分计算机应用的自动学习技术系统、装置和方法可以提供用于识别与功能相关联的优先级数据结构的技术,其中,优先级数据结构以优先级顺序列出硬件资源类型。如果第一类型的硬件资源可用,则该技术还可以将第一类型的硬件资源分配给该功能,其中,第一类型的硬件资源在优先级数据结构中具有最高优先级。另外,如果第一类型的硬件资源不可用,则该技术可以以优先级顺序将第二类型的硬件资源分配给该功能。

【技术实现步骤摘要】
用于为异构系统划分计算机应用的自动学习技术
各实施例总体上涉及应用分区。更具体地,各实施例涉及用于为异构系统划分计算机应用的自动学习技术。
技术介绍
给定的计算机应用(例如,软件)通常被编写为在计算系统中的特定处理器(例如,中央处理单元/CPU)上执行。然而,随着新型处理器(例如,专用加速器)的开发,使得应用能够在新处理器上高效地执行可能涉及应用代码的昂贵且耗时的重写。即使应用被编写为在包含异构处理器的集合的计算系统上执行,使得应用能够在具有不同异构处理器的集合的计算系统上高效地执行仍可能涉及应用代码的昂贵且耗时的重写。
技术实现思路
根据本公开的第一方面,提供了一种计算系统,包括:网络控制器;处理器,所述处理器耦合至所述网络控制器;以及存储器,所述存储器耦合至所述处理器,所述存储器包括可执行程序指令的集合,所述指令在由所述处理器执行时,使得所述计算系统执行以下操作:识别与功能相关联的优先级数据结构,其中,所述优先级数据结构以优先级顺序列出硬件资源类型;如果第一类型的硬件资源可用,则将所述第一类型的硬件资源分配给所述功能,其中,所述第一类型的硬件资源在所述优先级数据结构中具有最高优先级;以及如果所述第一类型的硬件资源不可用,则以所述优先级顺序将第二类型的硬件资源分配给所述功能,其中,所述硬件资源类型是处理器类型或存储器类型中的一种。根据本公开的第二方面,提供了一种半导体装置,包括:一个或多个衬底;以及逻辑单元,所述逻辑单元耦合至所述一个或多个衬底,其中,所述逻辑单元至少部分地以可配置逻辑单元或固定功能硬件逻辑单元中的一个或多个实现,耦合至所述一个或多个衬底的所述逻辑单元用于:识别与功能相关联的优先级数据结构,其中,所述优先级数据结构以优先级顺序列出硬件资源类型;如果第一类型的硬件资源可用,则将所述第一类型的硬件资源分配给所述功能,其中,所述第一类型的硬件资源在所述优先级数据结构中具有最高优先级;以及如果所述第一类型的硬件资源不可用,则以所述优先级顺序将第二类型的硬件资源分配给所述功能。根据本公开的第三方面,提供了一种方法,包括:识别与功能相关联的优先级数据结构,其中,所述优先级数据结构以优先级顺序列出硬件资源类型;如果第一类型的硬件资源可用,则将所述第一类型的硬件资源分配给所述功能,其中,所述第一类型的硬件资源在所述优先级数据结构中具有最高优先级;以及如果所述第一类型的硬件资源不可用,则以所述优先级顺序将第二类型的硬件资源分配给所述功能,其中,所述硬件资源类型是处理器类型或存储器类型中的一种。根据本公开的第四方面,提供了一种半导体装置,包括:用于识别与功能相关联的优先级数据结构的设备,其中,所述优先级数据结构以优先级顺序列出硬件资源类型;用于如果第一类型的硬件资源可用,则将所述第一类型的硬件资源分配给所述功能的设备,其中,所述第一类型的硬件资源在所述优先级数据结构中具有最高优先级;以及用于如果所述第一类型的硬件资源不可用,则以所述优先级顺序将第二类型的硬件资源分配给所述功能的设备,其中,所述硬件资源类型是处理器类型或存储器类型中的一种。附图说明通过阅读以下说明书和所附权利要求书,并且通过参考以下附图,实施例的各种优点对于本领域技术人员而言将变得显而易见,在附图中:图1是根据实施例的软件堆栈的示例的框图;图2是根据实施例的库版本集合的示例的框图;图3A和图3B是根据实施例的遥测数据的示例的框图;图4是根据实施例的处理器调度表的示例的框图;图5是根据实施例的操作调度器的方法的示例的流程图;图6是根据实施例的操作性能增强型计算系统的方法的示例的流程图;图7是根据实施例的性能增强型计算系统的示例的框图;图8是根据实施例的半导体装置的示例的图示;图9是根据实施例的处理器的示例的框图;以及图10是根据实施例的基于多处理器的计算系统的示例的框图。具体实施方式现在转向图1,例如,示出了用于诸如ONEAPI之类的统一编程模型的软件堆栈20。所示统一软件堆栈20包括0级接口22、0级接口22以下的系统软件(SW)24、0级接口22以上的系统软件26和开发者接口28。0级接口22以下的系统软件24与异构处理器的集合36进行通信。异构处理器的集合36可以包括例如硬件,诸如CPU(例如,其可以支持标量操作和/或功能)、GPU(图形处理单元,例如,其可以支持向量操作和/或功能)、AI(人工智能)加速器(例如,其可以支持矩阵操作和/或功能)和FPGA(现场可编程门阵列,例如,其可以支持空间操作和/或功能)。另外,开发者接口28与优化的中间件和相关联的框架进行交互,该优化的中间件和相关联的框架又支持一个或多个优化的应用38。在实施例中,堆栈20的自动分区器(partitioner)部分包括调度器30,其维护例如优先级数据结构(prioritizationdatastructure),例如处理器调度表(PDT)数据库32、存储器分配表(MAT)数据库34等。在一个示例中,调度器30使用优先级数据结构来跨异构处理器的集合36自动地划分库功能的执行。如将更详细地讨论的,PDT数据库32可以以优先级顺序并基于每个功能来列出处理器类型。例如,库的集合40可以包括为异构处理器的集合36中的每种类型的处理器构建的功能。在这种情况下,所示PDT数据库32将指定哪个处理器类型具有用于执行所讨论的功能的最高优先级,哪个处理器类型具有用于执行所讨论的功能的次高优先级,等等。类似地,MAT数据库34可以指定哪个存储器类型(例如,缓存、易失性存储器、非易失性存储器)具有用于所讨论的功能的数据结构的最高存储优先级,哪个存储器类型具有用于所讨论的功能的数据结构的次高存储优先级。在一个示例中,基于在功能的执行期间收集的遥测信息来生成优先级数据结构。因此,所示优先级数据结构可以通过使得能够基于每个功能自动地识别更佳执行配置来增强性能、功率/能量效率和/或可伸缩性。实际上,通过随时间更新优先级数据结构,所示堆栈20提供了跨异构处理器的集合36划分功能执行的自动学习解决方案。图2示出了多个库版本50,其中,使用基本库50a(“Libk”)来构建CPU库50b、GPU库50c、AI库50d和FPGA库50e。在所示的示例中,基础库50a中的每个功能(“Func_1”到“Func_m”)在基础库50a的其他版本50中具有对应物。如果某些库版本50或一些底层功能在给定类型的处理器上不可用,则可以向调度器和/或应用链接器指示这样的条件。图3A示出了遥测信息60(例如,简档信息)的示例,遥测信息60包括功能标识符(ID)66、第一遥测记录62、第二遥测记录64等。所示遥测记录62、64跟踪例如与功能ID66相对应的功能的连续执行的操作条件,例如,参数大小和值、存储器要求、执行时间、线程数量、功耗等。遥测记录62、64还可以记录一天中的时间、功能执行的性能和功率简档特征等。还可以收集信息,例如硬件能力的利用(例如,单指令多数据/SIMD本文档来自技高网...

【技术保护点】
1.一种计算系统,包括:/n网络控制器;/n处理器,所述处理器耦合至所述网络控制器;以及/n存储器,所述存储器耦合至所述处理器,所述存储器包括可执行程序指令的集合,所述指令在由所述处理器执行时,使得所述计算系统执行以下操作:/n识别与功能相关联的优先级数据结构,其中,所述优先级数据结构以优先级顺序列出硬件资源类型;/n如果第一类型的硬件资源可用,则将所述第一类型的硬件资源分配给所述功能,其中,所述第一类型的硬件资源在所述优先级数据结构中具有最高优先级;以及/n如果所述第一类型的硬件资源不可用,则以所述优先级顺序将第二类型的硬件资源分配给所述功能,其中,所述硬件资源类型是处理器类型或存储器类型中的一种。/n

【技术特征摘要】
20191220 US 16/722,7781.一种计算系统,包括:
网络控制器;
处理器,所述处理器耦合至所述网络控制器;以及
存储器,所述存储器耦合至所述处理器,所述存储器包括可执行程序指令的集合,所述指令在由所述处理器执行时,使得所述计算系统执行以下操作:
识别与功能相关联的优先级数据结构,其中,所述优先级数据结构以优先级顺序列出硬件资源类型;
如果第一类型的硬件资源可用,则将所述第一类型的硬件资源分配给所述功能,其中,所述第一类型的硬件资源在所述优先级数据结构中具有最高优先级;以及
如果所述第一类型的硬件资源不可用,则以所述优先级顺序将第二类型的硬件资源分配给所述功能,其中,所述硬件资源类型是处理器类型或存储器类型中的一种。


2.根据权利要求1所述的计算系统,其中,所述指令在被执行时,使得所述计算系统执行以下操作:
在所述功能的执行期间收集遥测信息;以及
基于所述遥测信息来生成所述优先级数据结构,其中,所述第二类型的硬件资源是下一可用类型的硬件资源,其中,所述遥测信息包括参数大小和值、存储器要求、执行时间、线程数量、或功耗中的一者或多者,并且其中,所述优先级数据结构是处理器调度表或存储器分配表中的一者。


3.根据权利要求1所述的计算系统,其中,所述指令在被执行时,使得所述计算系统执行以下操作:
在所述功能的多次执行期间收集遥测信息;以及
基于所述遥测信息来修改所述优先级数据结构。


4.根据权利要求3所述的计算系统,其中,所述指令在被执行时,使得所述计算系统执行以下操作:
将第一遥测信息存储到第一遥测记录中,其中,所述第一遥测信息与所述功能的第一次执行相关联;以及
将第二遥测信息存储到第二遥测记录中,其中,所述第二遥测信息与所述功能的第二次执行相关联。


5.根据权利要求3所述的计算系统,其中,所述指令在被执行时,使得所述计算系统执行以下操作:
将第一遥测信息存储到遥测记录中,其中,所述第一遥测信息与所述功能的第一次执行相关联;以及
将第二遥测信息存储到所述遥测记录中,其中,所述第二遥测信息与所述功能的第二次执行相关联。


6.一种半导体装置,包括:
一个或多个衬底;以及
逻辑单元,所述逻辑单元耦合至所述一个或多个衬底,其中,所述逻辑单元至少部分地以可配置逻辑单元或固定功能硬件逻辑单元中的一个或多个实现,耦合至所述一个或多个衬底的所述逻辑单元用于:
识别与功能相关联的优先级数据结构,其中,所述优先级数据结构以优先级顺序列出硬件资源类型;
如果第一类型的硬件资源可用,则将所述第一类型的硬件资源分配给所述功能,其中,所述第一类型的硬件资源在所述优先级数据结构中具有最高优先级;以及
如果所述第一类型的硬件资源不可用,则以所述优先级顺序将第二类型的硬件资源分配给所述功能。


7.根据权利要求6所述的半导体装置,其中,耦合至所述一个或多个衬底的所述逻辑单元用于:
在所述功能的执行期间收集遥测信息;以及
基于所述遥测信息来生成所述优先级数据结构,其中,所述第二类型的硬件资源是下一可用类型的硬件资源,其中,所述遥测信息包括参数大小和值、存储器要求、执行时间、线程数量、或功耗中的一个或多个,并且其中,所述优先级数据结构是处理器调度表或存储器分配表中的一个。


8.根据权利要求6所述的半导体装置,其中,耦合至所述一个或多个衬底的所述逻辑单元用于:
在所述功能的多次执行期间收集遥测信息;以及
基于所述遥测信息来修改所述优先级数据结构。


9.根据权利要求8所述的半导体装置,其中,耦合至所述一个或多个衬底的所述逻辑单元用于:
将第一遥测信息存储到第一遥测记录中,其中,所述第一遥测信息与所述功能的第一次执行相关联;以及
将第二遥测信息存储到第二遥测记录中,其中,所述第二遥测信息与所述功能的第二次执行相关联。


10.根据权利要求8所述的半导体装置,其中,耦合至所述一...

【专利技术属性】
技术研发人员:穆罕默德·R·哈格海特萨拉·巴格索基
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1