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

异构计算系统中的工作窃取技术方案

技术编号:16069204 阅读:232 留言:0更新日期:2017-08-25 09:03
工作窃取器设备包含确定模块。确定模块确定从第一类型的第一硬件计算单元窃取工作用于不同于第一类型的第二类型的第二硬件计算单元。该工作在第一工作队列中排队,第一工作队列对应于第一硬件计算单元并且将被存储在由第一和第二硬件计算单元共享的共享存储器中。同步工作窃取器模块通过对第一工作队列的同步存储器存取来窃取工作。同步存储器存取将相对于对来自第一硬件计算单元的第一工作队列的存储器存取同步。

Job stealing in heterogeneous computing systems

The job stealing device contains the determination module. The determination module determines that the first hardware computing unit stealing from the first type is used for a second type second hardware computing unit different from the first type. The work is queued in the first work queue, the first work queue corresponding to the first hardware computing unit, and will be stored in the shared memory shared by the first and second hardware computing units. The synchronous job stealing module steals work by accessing the synchronization memory of the first work queue. Synchronous memory access is synchronized with memory access to the first working queue from the first hardware computing unit.

【技术实现步骤摘要】
版权通告本文包含的是受到版权保护的材料。当它出现在专利和商标局专利文件或记录中时,版权拥有者不反对任何人复制该专利公开,但无论如何在其它方面保留对版权的所有权利。
本文描述的实施例一般涉及异构计算系统。具体地说,本文描述的实施例一般涉及异构计算系统中的工作窃取
技术介绍
计算机除了部署为中央处理单元(CPU)的通用处理器之外还经常具有一个或多个硬件加速器装置。此类硬件加速器装置的一个广泛使用的示例是图形处理单元(GPU)。GPU传统上已经用作主要驱动一个或多个显示器的图形子系统的一部分。GPU帮助从CPU卸载工作,由此允许CPU资源用于其它任务。CPU通常实现为通用处理器,并且一般将适合于执行各种不同类型的算法(例如一般性质的处理)。相比之下,GPU经常实现为专用处理器或至少更专业化的处理器,其一般更适合于执行有限数量的专业化算法(例如图形相关算法)。GPU经常具有高度并行的计算硬件,其倾向于允许它们快速处理图形数据。近来,已经认识到GPU可用于其它非图形应用。例如,GPU上的通用计算(GPGPU)一般表示利用GPU执行传统上已经预留用于CPU的类型的通用型计算。经常可采用GPU的高度并行计算硬件来显著地加速此类计算。当以这种方式使用时,至少当正确实现时,GPU可帮助显著加速计算密集应用。然而,使用GPU加速非图形应用的一个挑战(例如在GPGPU的情况下)涉及工作调度。为了有效地利用CPU和GPU,重要的是在CPU与GPU之间以有效方式调度和分布工作。在一个可能方法中,CPU可以仅仅向GPU卸载或指配特定任务。CPU然后可等待或执行其它任务,而GPU完成指配的任务并提供结果。然而,在这种方法中,在处理相同工作负载时在CPU与GPU之间没有实际协作。也就是说,CPU和GPU可能不同时对相同工作负载的不同部分工作。它实际上不是混合执行。根据另一方法,CPU和GPU可参与混合执行,其中它们对在CPU和GPU上静态调度的并行工作负载的不同部分协作地工作。此类混合执行可提供在相同工作负载上同时利用CPU和GPU的潜在优点。然而,倾向于有挑战的是有效地在CPU与GPU之间调度工作负载的不同部分。例如,CPU和GPU可以不同时钟速度操作,和/或可具有不同存储器层级,和/或可具有不同的基于工作负载的性能特性。可在CPU和GPU之一上有效地执行的代码可能没有在另一个上执行得那么有效。其它竞争的工作负载和/或功率约束的存在可进一步倾向于使先验有效地调度工作负载的能力复杂化。缺点是,如果工作负载未有效调度,则CPU和GPU之一可变得负担过度,而另一个可能利用不足。附图说明通过参考用于说明本专利技术实施例的如下描述和附图可最好地理解本专利技术。在附图中:图1是异构计算或计算机系统的实施例的框图。图2是同步工作窃取器系统的实施例的框图。图3是在异构计算机系统中窃取工作的方法的实施例的流程框图。图4是图示在CPU的实施例与GPU的实施例之间的双向同步工作窃取的实施例的框图。图5是可使用同步工作窃取器系统的实施例的环境的框图。图6是异构计算或计算机系统的示例实施例的框图。图7是异构计算或计算机系统的示例实施例的框图。具体实施方式在如下描述中,阐述了大量特定细节(例如特定处理单元、异构计算机系统、操作序列、逻辑分割/集成细节、系统组件的类型和相互关系等)。然而,要理解到,本专利技术的实施例可以在没有这些特定细节的情况下实行。在其它实例中,众所周知的电路、结构和技术未详细示出,以免模糊对此描述的理解。图1是异构计算或计算机系统100的实施例的框图。在各种实施例中,异构计算系统可表示台式计算机、膝上型计算机、笔记本计算机、上网本计算机、工作站、个人数字助理(PDA)、智能电话、蜂窝电话、移动计算装置、服务器、因特网器具或本领域已知的各种其它类型计算机系统或其它计算系统。异构计算系统包含至少两个异构(即不同)类型的硬件计算单元。硬件计算单元在本文也可被称为计算单元。在所图示的实施例中,异构计算机系统包含第一类型的第一硬件计算单元101-1和第二不同类型的第二硬件计算单元101-2。第一和第二计算单元例如可通过互连111耦合在一起。其它实施例可包含三个或更多异构计算单元。适当计算单元的示例包含但不限于处理器、核、硬件线程、线程槽、能够维持独立执行状态的硬件等。在一些实施例中,第一计算单元101-1可以是通用计算单元(或至少比第二计算单元101-2相对更通用),而第二计算单元101-2可以不是通用计算单元和/或可以是专用计算单元(或至少比第一计算单元101-1相对更通用)。在一些实施例中,第一计算单元101-1可以是CPU、通用处理器和通用核中的一个,而第二计算单元可以不是。例如,第二计算单元101-2可以是图形处理器(例如GPU、图形协处理器、图形核等)、硬件加速器装置(例如专用加速器、固定功能加速器等)、密码处理器、通信处理器、网络处理器、专用处理器、专用核、高度并行专用硬件、数字信号处理器(DSP)、现场可编程门阵列(FPGA)等中的一个。在一些实施例中,第一计算单元101-1可以是CPU,而第二计算单元可以是图形处理器(例如GPU、图形协处理器、图形核等),尽管本专利技术的范围不如此限制。在此类实施例中,异构计算系统可表示GPGPU系统、CPU-GPU协作系统等。在这个具体实施方式中,经常CPU和GPU被用作第一和第二异构计算单元的示例,不过要认识到,在备选实施例中,可替代地使用异构计算单元的其它不同组合(例如相对更通用处理器连同从专用处理器、专用核、硬件加速器装置、DSP、FPGA等之间选择的相对更专用处理器)。再次参考图1,当部署在异构计算系统中时,第一计算单元101-1和第二计算单元101-2各可操作以例如通过互连108、109与共享存储器102耦合。共享存储器对第一和第二计算单元可存取并由它们共享。在一些实施例中,共享存储器可表示共享虚拟存储器。共享存储器或共享虚拟存储器可表示实现在一个或多个存储器类型的一个或多个存储器装置中的物理存储器的一部分。在一些实施例中,共享存储器可实现在动态随机存取存储器(DRAM)中,尽管本专利技术的范围不如此限制。在一些实施例中,对应于第一计算单元101-1的第一工作队列104-1和对应于第二计算单元101-2的第二工作队列104-2可存储在共享存储器102中。第一工作队列104-1可以可操作以对用于第一计算单元101-1的工作接收并排队。第二工作队列104-2可以可操作以对用于第二计算单元101-2的工作接收并排队。在图示中为了简化,仅示出两个工作队列,不过在一些实施例中,可能存在用于第一计算单元(例如用于多个核中的每个)的多个工作队列和/或用于第二计算单元(例如可选地用于多个多处理器或其它组核中的每个)的多个工作队列。再次参考图1,在一些实施例中,第一计算单元101-1(例如CPU、通用处理器、通用核等)可包含第一工作调度器模块103-1。第一工作调度器模块103-1可以可操作以调度第一计算单元101-1上的工作。在一些实施例中,第二计算单元101-2(例如GPU、图形核、硬件加速器、专用处理器、专用核等)可包含第二工作调度器模块103-2。第二工作调度器模块103-2可以可操作本文档来自技高网...
异构计算系统中的工作窃取

【技术保护点】
一种异构计算机系统,包括:第一处理器;与所述第一处理器不同的第二处理器,其中所述第二处理器是数字信号处理器(DSP);多个工作队列,用于存储将在所述第一和第二处理器处理的任务;以及工作窃取器逻辑,用于从所述多个队列窃取指定为在所述第一处理器进行处理的第一任务以便在所述第二处理器进行处理,以及从所述多个队列窃取指定为在所述第二处理器进行处理的第二任务以便在所述第一处理器进行处理。

【技术特征摘要】
1.一种异构计算机系统,包括:第一处理器;与所述第一处理器不同的第二处理器,其中所述第二处理器是数字信号处理器(DSP);多个工作队列,用于存储将在所述第一和第二处理器处理的任务;以及工作窃取器逻辑,用于从所述多个队列窃取指定为在所述第一处理器进行处理的第一任务以便在所述第二处理器进行处理,以及从所述多个队列窃取指定为在所述第二处理器进行处理的第二任务以便在所述第一处理器进行处理。2.如权利要求1所述的系统,其中所述多个队列包括第一队列集合与第二队列集合,所述第一队列集合用于对所述第一处理器的任务进行排队,所述第二队列集合用于对所述第二处理器的任务进行排队。3.如权利要求2所述的系统,其中所述工作窃取器逻辑从所述第二队列集合的第一队列窃取第三任务以便在所述第一处理器进行处理。4.如权利要求3所述的系统,其中所述第一处理器包括通用处理器。5.如权利要求4所述的系统,还包括由所述第一处理器和所述第二处理器共享的存储器。6.如权利要求5所述的系统,其中所述多个队列存储在所述存储器中。7.如权利要求5所述的系统,其中所述存储器包括动态随机存取存储器(DRAM)。8.如权利要求6所述的系统,还包括存储器控制器,其耦合到所述第一处理器和所述第二处理器以便控制对所述存储器的访问。9.如权利要求1所述的系统,其中所述第一处理器、所述第二处理器、所述多个工作队列以及所述工作窃取器逻辑安装在集成电路上。10.一种集成电路(IC),包括:第一处理器;与所述第一处理器不同的第二处理器,其中所述第二处理器是数字信号处理器(DSP);多个工作队列,用于存储将在所述第一和第二处理器处理的任务;以及工作窃取器逻辑,用于从所述多个队列窃取指定为在所述第一处理器进行处理的第一任务以便在所述第二处理器进行处理,以及...

【专利技术属性】
技术研发人员:R·白里克S·A·赫哈特J·斯里拉姆T·施佩斯曼R·L·哈德森
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1