【技术实现步骤摘要】
【国外来华专利技术】异构核心的自动内核迁移
本专利技术涉及计算系统,并且更具体地,涉及在多个异构核心之间自动地迁移工作单元的执行。
技术介绍
任务的并行化用来增加计算机系统的吞吐量。为此,编译器可以从程序代码提取并行化的任务以在系统硬件上并行地执行。在单核心架构的情况下,单核心可以包括被配置成执行多个线程的深管线。为了进一步增加硬件上的并行执行,多核架构可以包括多个通用核心。该类型的架构可以被称为同构多核架构。该类型的架构可以提供比单核心架构更高的指令吞吐量。一些软件应用程序不可以被频繁地划分成并行任务。此外,特定任务可能未在通用核心上有效地执行。计算密集任务的特定指令可能造成共享资源的不成比例的共享,这使得共享资源的重新分配延迟。这样的特定任务的实例可以包括加密、视频图形渲染以及碎片收集。为了克服常规通用核心的性能限制,计算机系统可以将特定任务卸载到专用硬件。该硬件可以包括单指令多数据(SIMD)并行架构、现场可编程门阵列(FPGA)、以及其它专门的核心。具有不同类型的核心的架构的类型可以被称为异构多核架构。取决于任务的调度,该类型的架构可以提供比同构多核架构更高的指令吞吐量。在许多情况下,特定的软件应用程序具有各工作项的执行或并行函数调用在本身内是数据依赖的数据并行度。例如,第一工作项与第二工作项可以是数据独立的,并且第一和第二工作项中的每一个在具有SIMD微架构的核心内在独立的路径上被调度。然而,在第一和第二工作项中的每一个内执行的指令量可能是数据依赖的。依赖于各工作项的数据,实施为分支指令的条件测试对于第一工作项而言可能通过,但是对于第二工作项而言可能未通过。在第二工 ...
【技术保护点】
一种方法,包括:识别在包括多条指令的计算内核内的位置,在所述位置处,所述计算内核的执行可以在所述计算内核的执行期间迁移;创建数据结构以维持和迁移所述计算内核的上下文;调度在所述计算内核内的在所述位置之前的代码以便在具有第一微架构的第一处理器核心上执行;响应于接收迁移条件得到满足的指示:将所述上下文移动至由具有不同于所述第一微架构的第二微架构的第二处理器核心可访问的位置;以及将在计算内核中的在所述位置之后的代码调度至所述第二处理器核心。
【技术特征摘要】
【国外来华专利技术】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所述的计算系统,其中,所述编译器进一步被配置成:利用指令来对所述第一处理器核心的所述第一版本的代码进行检测以判定所述迁移条件是否得到满足;以及利用指令来对所述第二处理器核心的所述第二版本的代码进行检测以在所述第二处理器核心可访问的所述第二存储位置处找到实时值...
【专利技术属性】
技术研发人员:毛里西奥·布莱特尼特斯,帕特里克·卡名斯基,基思·洛韦里,迪斯清·具,
申请(专利权)人:超威半导体公司,
类型:
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。