[发明专利]异构核心的自动内核迁移有效
申请号: | 201280023687.X | 申请日: | 2012-05-16 |
公开(公告)号: | CN103534686B | 公开(公告)日: | 2017-07-11 |
发明(设计)人: | 毛里西奥·布莱特尼特斯;帕特里克·卡名斯基;基思·洛韦里;迪斯-清·具 | 申请(专利权)人: | 超威半导体公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50 |
代理公司: | 上海胜康律师事务所31263 | 代理人: | 李献忠 |
地址: | 美国加利*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 核心 自动 内核 迁移 | ||
1.一种迁移计算内核的方法,包括:
在计算内核的编译期间识别在包括多条指令的所述计算内核内的位置,在所述位置处,所述计算内核的执行可以在所述计算内核的执行期间迁移;
创建数据结构以维持和迁移所述计算内核的上下文;
调度在所述计算内核内的在所述位置之前的代码以便在具有第一微架构的第一处理器核心上执行;
在所述第一处理器核心可访问的第一存储位置存储所述计算内核的所述上下文;以及
响应于接收迁移条件得到满足的指示:
将所述上下文从所述第一存储位置移动至由具有不同于所述第一微架构的第二微架构的第二处理器核心可访问的第二存储位置;以及
将在计算内核中的在所述位置之后的代码调度至所述第二处理器核心;
其中为了判定迁移条件得到满足,所述方法进一步包括判定已经到达出口点的所述计算内核的多次并行执行迭代在给定的阈值之上,
其中所述计算内核是包括一个或多个可执行的程序指令的函数。
2.如权利要求1所述的方法,进一步包括为对应于所述第一处理器核心的计算内核生成第一版本的代码,以及为对应于所述第二处理器核心的计算内核生成第二版本的代码。
3.如权利要求2所述的方法,其中,所述第一微架构是单指令多数据(SIMD)微架构,并且所述第二微架构是通用微架构。
4.如权利要求2所述的方法,进一步包括至少基于下列项中的一项来执行所述识别:配置文件运行时间信息和静态信息。
5.如权利要求2所述的方法,进一步包括:
利用指令来对所述第一处理器核心的所述第一版本的代码进行检测以判定所述迁移条件是否得到满足;以及
利用指令来对所述第二处理器核心的所述第二版本的代码进行检测以在所述第二处理器核心可访问的所述第二存储位置处找到实时值并且开始执行,其中所述第二存储位置是由所述数据结构指示的。
6.如权利要求1所述的方法,其中,在所述计算内核内的所述位置紧接在条件转移指令的前面。
7.一种包括异构多核架构的计算系统,所述计算系统包括:
具有第一微架构的第一处理器核心;
具有不同于所述第一微架构的第二微架构的第二处理器核心;
包括多条指令的计算内核,包括所述计算内核内的位置,在所述位置处,所述计算内核的执行可以在所述计算内核的执行期间迁移;
可用于维持和迁移所述计算内核的上下文的数据结构;
包括调度器的操作系统,其中,所述调度器被配置成:
调度在所述计算内核中的在所述位置之前的代码以便在具有第一微架构的第一处理器核心上执行;
在所述第一处理器核心可访问的第一存储位置存储所述计算内核的所述上下文;以及
响应于接收迁移条件得到满足的指示:
将所述上下文从所述第一存储位置移动至由具有不同于所述第一微架构的第二微架构的第二处理器核心可访问的第二存储位置;以及
将在所述计算内核中的在所述位置之后的代码调度至所述第二处理器核心;
其中为了判定迁移条件得到满足,所述第一和所述第二处理器核心中的每一个被配置成判定已经到达出口点的所述计算内核的多次并行执行迭代在给定的阈值之上,
其中所述计算内核是包括一个或多个可执行的程序指令的函数。
8.如权利要求7所述的计算系统,进一步包括编译器,所述编译器进一步被配置成为对应于所述第一处理器核心的计算内核生成第一版本的代码,以及为对应于所述第二处理器核心的计算内核生成第二版本的代码。
9.如权利要求8所述的计算系统,其中,所述第一微架构是单指令多数据(SIMD)微架构,并且所述第二微架构是通用微架构。
10.如权利要求8所述的计算系统,其中,所述编译器进一步被配置成至少基于下列项中的一项来执行识别所述计算内核内的位置:配置文件运行时间信息和静态信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于超威半导体公司,未经超威半导体公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201280023687.X/1.html,转载请声明来源钻瓜专利网。