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

用于提供中间线程抢占的装置、方法、系统、介质和设备制造方法及图纸

技术编号:15296092 阅读:85 留言:0更新日期:2017-05-11 13:45
描述了涉及利用软件辅助上下文切换的中间线程抢占的方法和装置。在实施例中,响应于对在图形处理单元(GPU)上执行的一个或多个线程进行抢占的请求,使所述一个或多个线程以指令级粒度停止。响应于以所述指令级粒度完成所述一个或多个线程和/或一个或多个指令,所述一个或多个线程的上下文数据被复制到存储器。还公开和要求保护其它实施例。

Intermediate thread preemption using software assisted context switching

Method and apparatus for intermediate thread preemption involving software assisted context switching is described. In an embodiment, in response to a request for preemption of one or more threads executed on a graphics processing unit (GPU), the one or more threads are stopped at the instruction level granularity. In response to the completion of one or more threads and / or one or more instructions in the instruction level granularity, the context data of the one or more threads is copied to the memory. Other embodiments are also disclosed and claimed.

【技术实现步骤摘要】
【国外来华专利技术】
概括地说,本公开内容涉及电子领域。更具体地说,实施例涉及利用软件辅助上下文切换的中间线程抢占。
技术介绍
当正在运行GPGPU(图形处理单元上的通用计算)工作负载并且硬件对于其它工作负载是必需的时,可以使用一种机制来抢占(pre-empt)或中断GPGPU工作负载。这通常要求响应于中断来完成硬件中的所有现有的或正在执行的线程。这种机制对于期望在短时间内完成的线程效果很好。但是,当线程无限期或长时间运行时,在上下文切换中的响应时间可能非常长,有时甚至导致页面错误。附图说明参考附图提供了具体实施方式。在附图中,附图标记的最左边的位标识该附图标记首次出现的附图。相同的附图标记在不同的附图中的使用指示相似或相同的项目。图1和图6-图8示出了可以用于实现本文中讨论的各个实施例的计算系统的实施例的框图。图2示出了根据一些实施例的用于处理抢占的示例情况。图3示出了根据实施例的图形逻辑单元的组件的框图。图4示出了根据实施例的用于保存和恢复图形逻辑单元的上下文的预先确定的存储器映射。图5和图5A示出了根据一些实施例的流程图。具体实施方式在下面的描述中,阐述了大量具体细节以便提供各个实施例的透彻理解。然而,可以在不使用这些具体细节的情况下实施各个实施例。在其它实例中,没有对公知的方法、过程、组件和电路进行详细描述,以防止模糊具体实施例。另外,实施例的各个方面可以使用各种模块来执行,诸如集成半导体电路(“硬件”)、被组织成一个或多个程序的计算机可读指令(“软件”)、或者硬件和软件的某种组合。为了本公开内容的目的,对“逻辑单元”的提及应该意指硬件、软件、固件或者它们的某种组合。一些实施例提供了利用软件辅助上下文切换的中间线程抢占。实施例对GPGPU内核中间线程进行抢占或中断。系统的状态被保存并且可以在以后的时间点恢复以继续执行被抢占的内核以完成。相比之下,其它解决方案可能依赖于在能够切换到不同工作负载之前完全完成工作负载,或在更粗略的粒度上完成工作负载。例如,如果线程组中的多个线程被分派(dispatched)用于执行,则一些解决方案可以提供仅在线程组边界处抢占分派的机制。任何分派的线程然后需要完成它们的任务。这增加了GPU对关键中断的响应时间。利用中间线程抢占,已经处于执行模式的所有线程可以在任何指令边界处被中断。这进而提高了工作负载之间切换的性能。如本文中所讨论的,GPGPU是指图形处理单元(GPU)上的通用计算。GPU可以包括通常执行与图形任务相关的计算(如操纵图像、帧、场景等的操作)的图形逻辑单元或其它类型的逻辑单元,但是在GPGPU的情况下,它们也能够执行或进行通用计算。虽然参考图形逻辑单元讨论了一些实施例,但实施例不限于图形相关的逻辑单元,并且还可以应用于其它类型的非图形(例如,通用)逻辑单元。此外,可以对任何类型的计算设备(如桌上型计算机、移动计算机(如智能手机、平板电脑、UMPC(超移动个人计算机)、膝上型计算机,UltrabookTM计算设备、智能手表、智能眼镜等)、工作站等)执行各个实施例,其可以在实施例中的SOC(片上系统)平台上实现。因此,一些实施例提供了可以在其它应用中使用的高度灵活的解决方案(例如,在完成之前需要停止工作负载以便为更高优先级的操作做准备的情况下)。一些实施例改进硬件对应用请求的响应性。它们还允许图形逻辑单元是多用途的。一些实施例可以应用于包括一个或多个处理器(例如,具有一个或多个处理器核心)的计算系统(如参考图1-图8讨论的那些),包括例如移动计算设备(如智能手机、平板电脑、UMPC(超移动个人计算机)、膝上型计算机、UltrabookTM计算设备、智能手表、智能眼镜等)。更具体地说,图1根据实施例示出了计算系统100的框图。系统100可以包括一个或多个处理器102-1至102-N(在本文中统称为“一些处理器102”或“处理器102”)。在各个实施例中,处理器102可以是通用CPU和/或GPU。处理器102可以经由互连或总线104通信。每个处理器可以包括多个组件,为了清楚起见,仅结合处理器102-1对这些组件中的一些进行讨论。因此,其余处理器102-2至102-N中的每个处理器可以包括与结合处理器102-1所讨论的相同或相似的组件。在实施例中,处理器102-1可以包括:一个或多个处理器核心106-1至106-M(在本文中被称为“一些核心106”或“核心106”)、高速缓存器108和/或路由器110。处理器核心106可以在单个集成电路(IC)芯片上实现。另外,芯片可以包括一个或多个共享和/或私有高速缓存器(如高速缓存器108)、总线或互连线(如总线或互连线112)、图形和/或存储器控制器(如结合图6-图8所讨论的那些)、或者其它组件。在一个实施例中,路由器110可以用于在处理器102-1和/或系统100的各个组件之间进行通信。另外,处理器102-1可以包括一个以上的路由器110。另外,多个路由器110可以处于通信中,以便数据能够在处理器102-1内部或外部的各个组件之间进行路由。高速缓存器108可以对由处理器102-1的一个或多个组件(如核心106)使用的数据(例如,包括指令)进行存储。例如,高速缓存器108可以对存储在存储器114中的数据以本地方式进行高速缓存,以便由处理器102的组件更加快速地访问(例如,由核心106更快地访问)。如图1中所示,存储器114可以经由互连线(interconnection)104与处理器102通信。在实施例中,高速缓存器108(可以是共享的)可以是中级高速缓存器(MLC)、最后级高速缓存器(LLC)等。另外,核心106中的每个核心可以包括1级(L1)高速缓存器(116-1)(在本文中通常被称为“L1高速缓存器116”)或其它级别的高速缓存器(如2级(L2)高速缓存器)。此外,处理器102-1的各个组件可以直接地、通过总线(例如,总线112)和/或存储器控制器或集线器与高速缓存器108通信。如图1中所示,处理器102还可以包括用于执行如本文中所讨论的各种图形和/或通用计算相关的操作的图形逻辑单元140。逻辑单元140可以访问本文中所讨论的一个或多个存储设备(如高速缓存器108、L1高速缓存器116、存储器114、寄存器或系统100中的另一个存储器)以存储与逻辑单元140的操作相关的信息(如本文中所讨论的与系统100的各个组件通信的信息)。此外,虽然逻辑单元140被示为在处理器102内部,但是在各个实施例中,逻辑单元140可以位于系统100中的其它地方。例如,逻辑单元140可以替换核心106中的一个,可以直接耦合到互连112和/或互连104等。通常,硬件(例如,逻辑单元140)中的状态可以分类为:(a)固定功能硬件中的状态;(b)线程的状态(即寄存器和指令指针等);和(c)SLM(或共享本地存储器,其指的是由图形逻辑单元/GPU用于中间结果的高速缓存/存储以及原本指向全局/主存储器的其它分散/聚集操作的存储器,例如,包括要频繁重复使用的缓冲数据)。例如,SLM可以支持这样的操作,其需要不同线程以便在它们之间共享数据和/或传递数据。一些上下文保存和恢复过程可以作为状态机内置到硬件中,例如,在挂起状况(haltc本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201580034356.html" title="用于提供中间线程抢占的装置、方法、系统、介质和设备原文来自X技术">用于提供中间线程抢占的装置、方法、系统、介质和设备</a>

【技术保护点】
一种装置,其包括:逻辑单元,所述逻辑单元至少部分地包括硬件逻辑单元,所述硬件逻辑单元用于响应于对在图形处理单元(GPU)上执行的一个或多个线程进行抢占的请求而使所述一个或多个线程以指令级粒度停止,其中,响应于以所述指令级粒度完成所述一个或多个线程,所述一个或多个线程的上下文数据被复制到存储器。

【技术特征摘要】
【国外来华专利技术】2014.07.23 US 14/338,7291.一种装置,其包括:逻辑单元,所述逻辑单元至少部分地包括硬件逻辑单元,所述硬件逻辑单元用于响应于对在图形处理单元(GPU)上执行的一个或多个线程进行抢占的请求而使所述一个或多个线程以指令级粒度停止,其中,响应于以所述指令级粒度完成所述一个或多个线程,所述一个或多个线程的上下文数据被复制到存储器。2.根据权利要求1所述的装置,还包括共享本地存储器(SLM),其用于在所述上下文数据被复制到所述存储器之前对所述上下文数据进行存储。3.根据权利要求2所述的装置,其中,所述逻辑单元还将所述上下文数据从所述SLM复制到所述存储器。4.根据权利要求3所述的装置,其中,用于复制所述上下文数据的所述逻辑单元包括直接存储器访问(DMA)逻辑单元。5.根据权利要求1所述的装置,其中,响应于一个或多个软件指令,所述一个或多个线程的所述上下文数据被复制到所述存储器。6.根据权利要求1所述的装置,其中,所述逻辑单元用于响应于所述请求而使在所述GPU上执行的所有线程以所述指令级粒度停止。7.根据权利要求1所述的装置,其中,所述一个或多个线程或与抢占请求相对应的线程作为所述GPU上的图形处理单元上的通用计算(GPGPU)而被执行。8.根据权利要求1所述的装置,包括线程孵化器逻辑单元,其孵化所述一个或多个线程。9.根据权利要求1所述的装置,其中,处理器包括所述逻辑单元。10.根据权利要求1所述的装置,其中,下列各项中的一项或多项在单个集成电路管芯上:具有一个或多个处理器核心的处理器、所述逻辑单元或所述存储器。11.一种方法,其包括:响应于对在图形处理单元(GPU)上执行的一个或多个线程进行抢占的请求而使所述一个或多个线程以指令级粒度停止,其中,响应于以所述指令级粒度完成所述一个或多个线程,所述一个或多个线程的上下文数据被复制到存储器。12.根据权利要求11所述的方法,还包括:响应于一个或多个软件指令,使所述一个或多个线程的所述上下文数据被复制到所述存储器。13.根据权利要求11所述的方法,还包括:响应于所述请求而使在...

【专利技术属性】
技术研发人员:B·D·劳赫富斯N·R·马塔姆M·K·德怀尔A·纳瓦勒
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1