异构核心的自动内核迁移制造技术

技术编号:9601155 阅读:109 留言:0更新日期:2014-01-23 05:44
一种用于在多个异构核心之间自动地迁移工作单元的执行的系统和方法。计算系统包括具有单指令多数据微架构的第一处理器核心以及具有通用微架构的第二处理器核心。编译器预测在程序中的给定位置处的函数调用的执行迁移到不同的处理器核心。编译器创建数据结构以支持移动与在给定位置处的函数调用的执行相关联的实时值。操作系统(OS)调度器至少将在程序顺序中的给定位置之前的代码调度到第一处理器核心。响应于接收迁移条件得到满足的指示,OS调度器将实时值移动至由数据结构指示的位置以便由第二处理器核心访问并且将在给定位置之后的代码调度至第二处理器核心。

【技术实现步骤摘要】
【国外来华专利技术】异构核心的自动内核迁移
本专利技术涉及计算系统,并且更具体地,涉及在多个异构核心之间自动地迁移工作单元的执行。
技术介绍
任务的并行化用来增加计算机系统的吞吐量。为此,编译器可以从程序代码提取并行化的任务以在系统硬件上并行地执行。在单核心架构的情况下,单核心可以包括被配置成执行多个线程的深管线。为了进一步增加硬件上的并行执行,多核架构可以包括多个通用核心。该类型的架构可以被称为同构多核架构。该类型的架构可以提供比单核心架构更高的指令吞吐量。一些软件应用程序不可以被频繁地划分成并行任务。此外,特定任务可能未在通用核心上有效地执行。计算密集任务的特定指令可能造成共享资源的不成比例的共享,这使得共享资源的重新分配延迟。这样的特定任务的实例可以包括加密、视频图形渲染以及碎片收集。为了克服常规通用核心的性能限制,计算机系统可以将特定任务卸载到专用硬件。该硬件可以包括单指令多数据(SIMD)并行架构、现场可编程门阵列(FPGA)、以及其它专门的核心。具有不同类型的核心的架构的类型可以被称为异构多核架构。取决于任务的调度,该类型的架构可以提供比同构多核架构更高的指令吞吐量。在许多情况下,特定的软件应用程序具有各工作项的执行或并行函数调用在本身内是数据依赖的数据并行度。例如,第一工作项与第二工作项可以是数据独立的,并且第一和第二工作项中的每一个在具有SIMD微架构的核心内在独立的路径上被调度。然而,在第一和第二工作项中的每一个内执行的指令量可能是数据依赖的。依赖于各工作项的数据,实施为分支指令的条件测试对于第一工作项而言可能通过,但是对于第二工作项而言可能未通过。在第二工作项停止执行并且等待且第一工作项继续进行其不间断执行时,并行执行的效率可能下降。当由于已通过的测试仅少许工作项继续执行而由于未通过的测试工作的项目的大部分空闲时,低效率增加。在由异构多核架构中的OS调度器执行的工作项的有效的功能匹配任务之后,系统性能由于特定软件应用程序的数据依赖行为可能仍然下降。
技术实现思路
构想了用于在多个异构核心之间自动地迁移工作单元的执行的系统和方法。在一个实施方案中,计算系统包括具有第一微架构的第一处理器核心以及具有不同于第一微架构的第二微架构的第二处理器核心。在一个实施方案中,第一微架构是单指令多数据(SIMD)微架构,并且第二微架构是通用微架构。计算系统包括耦接到第一和第二处理器核心中的每一个的存储器。存储器存储包括一个或多个计算内核或函数调用的计算机程序。由于编译器横跨给定的函数调用的指令,所以编译器被配置成预测在给定位置处的函数调用迁移到不同的处理器核心的执行。编译器创建数据结构以支持移动与在给定位置处的函数调用的执行相关联的实时值。这样的实时值可以被称为“上下文”。操作系统(OS)内的调度器至少将在程序顺序中的给定位置之前的代码调度到第一处理器核心。响应于接收迁移条件得到满足的指示,OS调度器将实时值移动至由数据结构指示的位置以便由第二处理器核心访问并且将在程序顺序中的给定位置之后的代码调度至第二处理器核心。为了判定迁移条件是否得到满足,第一和第二处理器核心中的每一个被配置成判定已经到达出口点的函数调用的多次并行执行迭代是否在给定的阈值之上。根据对下列描述和附图的参照进一步解释这些和其它实施方案。附图说明图1是具有异构多核架构的示例性处理节点的一个实施方案的一般化框图。图2是利用计算内核的源代码的一个实施方案的一般化框图。图3是用条件语句限定计算内核的源代码的一个实施方案的一般化框图。图4是在硬件资源与计算内核之间的调度分配的一个实施方案的一般化框图。图5是对于两个类型的处理器核心的微架构的逻辑布局的一个实施方案的一般化框图。图6是通用管线执行流程的一个实施方案的一般化框图。图7A是SIMD管线执行流程的一个实施方案的一般化框图。图7B是SIMD管线执行流程的一个实施方案的另一个一般化框图。图8是具有迁移标记分支的程序代码的一个实施方案的一般化框图。图9是示出用于检测计算内核迁移的代码的方法的一个实施方案的一般化流程图。图10是示出用于在程序执行期间迁移计算内核的方法的一个实施方案的一般化流程图。虽然本专利技术易受各种修改和替代形成的影响,但是在附图中以举例方式示出特定实施方案并且在本文中详细地描述了特定实施方案。然而,应理解,附图及其详细描述不旨在将本专利技术限制于所公开的特定的形式,而是相反,本专利技术覆盖落入如由所附权利要求限定的本专利技术的精神和范围内的所有修改、等同物和替代方案。具体实施方式在下列描述中,阐明许多特殊细节以提供对本专利技术的彻底理解。然而,本领域的普通技术人员之一应认识到,也可在没有这些特殊细节的情况下实践本专利技术。在某些情况下,为避免对本专利技术造成模糊,未详细地示出熟知的电路、结构、和技术。参照图1,示出具有异构多核架构的示例性处理节点110的一个实施方案。处理节点110可以包括一个或多个处理单元115,所述一个或多个处理单元115可以包括一个或多个处理器核心112以及相关联的高速缓存存储器子系统114。在一个实施方案中,处理器核心112利用通用微架构。处理节点110还可以包括一个或多个处理单元170,所述一个或多个处理单元170可以包括一个或多个处理器核心172以及数据存储缓冲器174。处理器核心172可能不是处理器核心112的镜像硅图像。处理器核心172可以具有不同于由处理器核心112使用的微架构的微架构。在一个实施方案中,处理器核心172可以是与处理器核心112的相同处理器家族的不同代。在另一个实施方案中,处理器核心172可以是电压和/或频率标度版本的处理器核心112。换句话说,处理器核心172不是具有相同功能与指令集架构(ISA)、相同时钟频率、相同高速缓存大小、相同存储器模型诸如此类的处理器核心112的硅拷贝。继续处理器核心172的微架构,在又一个实施方案中,处理器核心172可以包括为计算密集任务提供高指令吞吐量的微架构。处理器核心172可以具有并行架构。例如,处理器核心172可以是单指令多数据(SIMD)核心。SIMD核心的实例包括图形处理单元(GPU)、数字信号处理(DSP)核心或其它。在一个实施方案中,处理节点110包括单指令集架构(ISA)。通常,如本领域中熟知的,已经示出用以为片上多处理器(CMP)提供较高功率和吞吐量的单ISA多核架构。当软件应用程序的线程被有效地调度时,处理节点110上的高指令吞吐量可以以在给定的功率极限内的实测功率消耗来实现。线程可以至少部分地基于处理器核心112和172的运行时间硬件资源在处理器核心112和172中的一个上以这样的方式被调度,使得各线程具有最高的指令吞吐量。继续处理节点110中的部件,处理节点110可以包括存储控制器120和接口逻辑140。在一个实施方案中,处理节点110的图示的功能合并在单个集成电路上。在一个实施方案中,处理器核心112包括用于根据预先定义的通用指令集执行指令的电路。例如,可以选择指令集架构(ISA)。替代地,可以选择x86、Alpha或任意其它指令集架构。一般地,处理器核心112分别访问数据和指令的高速缓存存储器子系统114。如果在高速缓存存储器子系统114或在共享高速缓存存储器子系统118中未找到被请求的块,则读取请求可以本文档来自技高网
...
异构核心的自动内核迁移

【技术保护点】
一种方法,包括:识别在包括多条指令的计算内核内的位置,在所述位置处,所述计算内核的执行可以在所述计算内核的执行期间迁移;创建数据结构以维持和迁移所述计算内核的上下文;调度在所述计算内核内的在所述位置之前的代码以便在具有第一微架构的第一处理器核心上执行;响应于接收迁移条件得到满足的指示:将所述上下文移动至由具有不同于所述第一微架构的第二微架构的第二处理器核心可访问的位置;以及将在计算内核中的在所述位置之后的代码调度至所述第二处理器核心。

【技术特征摘要】
【国外来华专利技术】2011.05.16 US 13/108,4381.一种迁移计算内核的方法,包括:在计算内核的编译期间识别在包括多条指令的所述计算内核内的位置,在所述位置处,所述计算内核的执行可以在所述计算内核的执行期间迁移;创建数据结构以维持和迁移所述计算内核的上下文;调度在所述计算内核内的在所述位置之前的代码以便在具有第一微架构的第一处理器核心上执行;在所述第一处理器核心可访问的第一存储位置存储所述计算内核的所述上下文;以及响应于接收迁移条件得到满足的指示:将所述上下文从所述第一存储位置移动至由具有不同于所述第一微架构的第二微架构的第二处理器核心可访问的第二存储位置;以及将在计算内核中的在所述位置之后的代码调度至所述第二处理器核心;其中为了判定迁移条件得到满足,所述方法进一步包括判定已经到达出口点的所述计算内核的多次并行执行迭代在给定的阈值之上,其中所述计算内核是包括一个或多个可执行的程序指令的函数。2.如权利要求1所述的方法,进一步包括为对应于所述第一处理器核心的计算内核生成第一版本的代码,以及为对应于所述第二处理器核心的计算内核生成第二版本的代码。3.如权利要求2所述的方法,其中,所述第一微架构是单指令多数据(SIMD)微架构,并且所述第二微架构是通用微架构。4.如权利要求2所述的方法,进一步包括至少基于下列项中的一项来执行所述识别:配置文件运行时间信息和静态信息。5.如权利要求2所述的方法,进一步包括:利用指令来对所述第一处理器核心的所述第一版本的代码进行检测以判定所述迁移条件是否得到满足;以及利用指令来对所述第二处理器核心的所述第二版本的代码进行检测以在所述第二处理器核心可访问的所述第二存储位置处找到实时值并且开始执行,其中所述第二存储位置是由所述数据结构指示的。6.如权利要求1所述的方法,其中,在所述计算内核内的所述位置紧接在条件转移指令的前面。7.一种包括异构多核架构的计算系统,所述计算系统包括:具有第一微架构的第一处理器核心;具有不同于所述第一微架构的第二微架构的第二处理器核心;包括多条指令的计算内核,包括所述计算内核内的位置,在所述位置处,所述计算内核的执行可以在所述计算内核的执行期间迁移;可用于维持和迁移所述计算内核的上下文的数据结构;包括调度器的操作系统,其中,所述调度器被配置成:调度在所述计算内核中的在所述位置之前的代码以便在具有第一微架构的第一处理器核心上执行;在所述第一处理器核心可访问的第一存储位置存储所述计算内核的所述上下文;以及响应于接收迁移条件得到满足的指示:将所述上下文从所述第一存储位置移动至由具有不同于所述第一微架构的第二微架构的第二处理器核心可访问的第二存储位置;以及将在所述计算内核中的在所述位置之后的代码调度至所述第二处理器核心;其中为了判定迁移条件得到满足,所述第一和所述第二处理器核心中的每一个被配置成判定已经到达出口点的所述计算内核的多次并行执行迭代在给定的阈值之上,其中所述计算内核是包括一个或多个可执行的程序指令的函数。8.如权利要求7所述的计算系统,进一步包括编译器,所述编译器进一步被配置成为对应于所述第一处理器核心的计算内核生成第一版本的代码,以及为对应于所述第二处理器核心的计算内核生成第二版本的代码。9.如权利要求8所述的计算系统,其中,所述第一微架构是单指令多数据(SIMD)微架构,并且所述第二微架构是通用微架构。10.如权利要求8所述的计算系统,其中,所述编译器进一步被配置成至少基于下列项中的一项来执行识别所述计算内核内的位置:配置文件运行时间信息和静态信息。11.如权利要求8所述的计算系统,其中,所述编译器进一步被配置成:利用指令来对所述第一处理器核心的所述第一版本的代码进行检测以判定所述迁移条件是否得到满足;以及利用指令来对所述第二处理器核心的所述第二版本的代码进行检测以在所述第二处理器核心可访问的所述第二存储位置处找到实时值...

【专利技术属性】
技术研发人员:毛里西奥·布莱特尼特斯帕特里克·卡名斯基基思·洛韦里迪斯清·具
申请(专利权)人:超威半导体公司
类型:
国别省市:

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

1