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

促进计算设备上的图形处理单元上的工作负荷执行的动态流水线化制造技术

技术编号:16049194 阅读:79 留言:0更新日期:2017-08-20 08:58
描述了一种机制,该机制用于促进计算设备上的图形处理单元处的工作负荷执行的动态流水线化。如本文中所描述的各实施例的一种方法包括:产生命令缓冲区,该命令缓冲区具有与要在图形处理单元(GPU)处被执行的多个工作负荷相关的多个内核;使要在GPU处进行处理的工作负荷流水线化,其中流水线化包括基于资源线程的可用性和与每个内核相关的一个或多个依赖性事件的状态中的至少一者而对要被执行的每个内核相对于所述多个内核的其他内核进行调度。

【技术实现步骤摘要】
【国外来华专利技术】促进计算设备上的图形处理单元上的工作负荷执行的动态流水线化
本文中所描述的各实施例一般涉及计算机。更具体地,各实施例涉及用于促进计算设备上的图形处理单元处的工作负荷执行的动态流水线化的机制。背景在计算设备中,图形处理单元(GPU)擅长(excelat)并行处理,因为它们能够繁衍(spawn)数千个线程以用并行方式处理数据,诸如,使用解决并行数据处理问题的通用图形处理单元(GPGPU)。然而,常规技术在节约计算资源方面(诸如在最大化线程与高速缓存利用率等方面)不够有效。附图说明各实施例作为示例而非限制在所附附图中示出,在附图中,同样的参考编号指代同样的元件。图1是根据实施例的数据处理系统的框图。图2是处理器的实施例的框图,所述处理器具有一个或多个处理器核、集成存储器控制器以及集成图形处理器。图3是图形处理器的一个实施例的框图,所述图形处理器可以是分立的图形处理单元,或可以是与多个处理核集成的图形处理器。图4是用于图形处理器的图形处理引擎的实施例的框图;图5是图形处理器的另一实施例的框图。图6示出线程执行逻辑,所述线程执行逻辑包括在图形处理引擎的一个实施例中采用的处理元件的阵列。图7是示出根据实施例的图形处理器执行单元指令格式的框图。图8是图形处理器的另一实施例的框图,所述图形处理器包括图形流水线、媒体流水线、显示引擎、线程执行逻辑以及渲染输出流水线。图9A是示出根据实施例的图形处理器命令格式的框图,以及图9B是示出根据实施例的图形处理器命令序列的框图。图10示出根据实施例的用于数据处理系统的示例性图形软件架构。图11示出了根据一个实施例的采用动态流水线化工作负荷执行机制的计算设备。图12示出了根据一个实施例的动态流水线化工作负荷执行机制。图13示出了根据一个实施例的用于流水线化并执行工作负荷的事务序列。图14示出了根据一个实施例的用于流水线化并执行工作负荷的方法。具体实施方式在以下描述中,陈述了多个具体细节。然而,可在不具有这些特定细节的情况下实践本文中所述的诸实施例。在其他实例中,没有详细示出公知的电路、结构以及技术,以便不至于使对本描述的理解变得模糊。各实施例提供了用于促进多个GPGPU工作负荷的动态流水线化与有效调度以及执行以用于在GPU处进行处理的技术。例如,可通过在GPU上执行相关联的程序内核来在GPU上执行工作负荷。在一个实施例中,可以流水线方式来检测并调度GPGPU工作负荷,该流水线方式允许在不需要停止计算设备的情况下执行多个工作负荷。以此方式,节省了系统资源,诸如最大化线程与高速缓存利用率等。各实施例提供了GPU计算运行时间/驱动器逻辑,该GPU计算运行时间/驱动器逻辑采用了用于在不必要求任何附加硬件的情况下促进多个工作负荷的并行调度的机制。各实施例提供了在时间、功率与资源等方面相当有效的技术,并进一步提供了无缝且有效的并行处理路径。此外,各实施例将由一个或多个应用所施加的任何数量与类型的事件和/或标准纳入考虑,该事件和/或标准在一些实现中可能必须在工作负荷的无缝并行处理可被执行之前首先被满足。例如,在GPU是生产者以及消费者的一些情况下,可能必须在其他消费者线程可开始之前完成一个或多个线程。类似地,例如,在GPU是生产者并且另一设备(例如,中央处理单元(CPU)等)是消费者的一些情况下,事件可需要被串行化并且串行化事件可被插入以通知另一设备;并且相反地,当另一设备是生产者而GPU是消费者时,GPU消费者可停止直到生产者准备好。进一步地,在一些实现中,对于跨多个队列的命令同步或当应用请求将被满足时,主机可能需要接收工作负荷完成的通知。可以构想到,例如,开放计算语言(OpenCLTM)(诸如,OpenCLTM2.0)被认为是用于GPU相关的计算的工业标准应用编程接口(API)并提供在不需要返回主机的情况下允许内核入队的嵌套并行的新的图形范式。例如,在一些实施例中,OpenCLTM2.0可用于提供直接访问并在不必涉及CPU或没有采用新硬件(能够创建命令包的硬件调度器)的情况下提供对内核的使用。进一步地,例如且在一个实施例中,OpenCLTM软件应用可提交命令(对命令排队)并随后清除队列以将工作提交给GPU。软件应用可对多个内核进行排队并随后对GPU驱动器进行清除以使工作流水线化,其中,驱动器执行如将贯穿本文档进一步描述的用于使工作负荷流水线化的实施例。可以构想到,当提及GPU时,内核可被视为计算机程序,该计算机程序从软件应用接收输入查询并将它们转换成例如用于CPU以及计算系统的其他组件的数据处理指令。概述——图1-3图1是根据实施例的数据处理系统100的框图。数据处理系统100包括一个或多个处理器102以及一个或多个图形处理器108,并且可以是单处理器台式系统、多核工作站系统或具有大量处理器102或处理器核107的服务器系统。在一个实施例中,数据处理系统100是在移动设备、手持式设备或嵌入式设备中使用的片上系统集成电路(SOC)。数据处理系统100的实施例可包括或可并入以下各项内:基于服务器的游戏平台、游戏控制台(包括游戏和媒体控制台、移动游戏控制台、手持式游戏控制台或在线游戏控制台)。在一个实施例中,数据处理系统100是移动电话、智能电话、平板计算设备或移动互联网设备。数据处理系统100也可包括可穿戴设备,可与可穿戴设备耦合或可集成在可穿戴设备内,所述可穿戴设备诸如,智能手表可穿戴设备、智能眼镜设备、增强现实设备或虚拟现实设备。在一个实施例中,数据处理系统100是电视机或机顶盒设备,所述电视机或机顶盒设备具有一个或多个处理器102以及由一个或多个图形处理器108生成的图形界面。一个或多个处理器102各自都包括一个或多个处理器核107,所述一个或多个处理器核107用于处理指令,所述指令当被执行时,执行用于系统和用户软件的操作。在一个实施例中,一个或多个处理器核107中的每一个都配置成处理特定的指令集109。指令集109可促进复杂指令集计算(CISC)、精简指令集计算(RISC)或经由超长指令字(VLIW)的计算。多个处理器核107各自都可处理不同的指令集109,不同的指令集109可包括用于促进对其他指令集的仿真的指令。处理器核107也可包括其他处理设备,诸如,数字信号处理器(DSP)。在一个实施例中,处理器102包括高速缓存存储器104。取决于架构,处理器102可具有单个内部高速缓存或多级内部高速缓存。在一个实施例中,高速缓存存储器在处理器102的各种组件之间共享。在一个实施例中,处理器102也使用可利用已知的高速缓存一致性技术而在处理器核107之间共享的外部高速缓存(例如,第3级(L3)高速缓存或末级高速缓存(LLC))(未示出)。寄存器堆106附加地包括在处理器102中,寄存器堆106可包括用于存储不同类型数据的不同类型的寄存器(例如,整数寄存器、浮点寄存器、状态寄存器以及指令指针寄存器)。一些寄存器可以是通用寄存器,而其他寄存器可专用于处理器102的设计。处理器102耦合至处理器总线110以在处理器102与系统100中的其他组件之间传输数据信号。系统100使用示例性“中枢”系统架构,所述示例性“中枢”系统架构包括存储器控制器中枢116和输入输出(I/O)控制器中枢本文档来自技高网...
促进计算设备上的图形处理单元上的工作负荷执行的动态流水线化

【技术保护点】
一种设备,所述设备用于促进计算设备上的图形处理单元处的工作负荷执行的动态流水线化,所述设备包括:合并内核逻辑,所述合并内核逻辑用于产生命令缓冲区,所述命令缓冲区具有与在图形处理单元(GPU)处要被执行的多个工作负荷相关的多个内核;以及状态管理逻辑,所述状态管理逻辑用于使要在所述GPU处被处理的所述工作负荷流水线化,其中,流水线化包括:基于资源线程的可用性和与每个内核相关的一个或多个依赖性事件的状态中的至少一者而对要在所述GPU上被执行的每个内核相对于所述多个内核中的其他内核进行调度。

【技术特征摘要】
【国外来华专利技术】2014.12.18 US 14/574,6061.一种设备,所述设备用于促进计算设备上的图形处理单元处的工作负荷执行的动态流水线化,所述设备包括:合并内核逻辑,所述合并内核逻辑用于产生命令缓冲区,所述命令缓冲区具有与在图形处理单元(GPU)处要被执行的多个工作负荷相关的多个内核;以及状态管理逻辑,所述状态管理逻辑用于使要在所述GPU处被处理的所述工作负荷流水线化,其中,流水线化包括:基于资源线程的可用性和与每个内核相关的一个或多个依赖性事件的状态中的至少一者而对要在所述GPU上被执行的每个内核相对于所述多个内核中的其他内核进行调度。2.如权利要求1所述的设备,进一步包括依赖性检查逻辑,所述依赖性检查逻辑用于确定所述一个或多个依赖性事件的所述状态,其中,所述状态指示所述一个或多个依赖性事件是否保持未被解决,其中,依赖性事件包括与所述多个内核的基本内核相关的偶然性事件,该偶然性事件使得所述基本内核将被至少部分地执行以解析所述偶然性事件并发起对所述多个内核的一个或多个后续内核的执行。3.如权利要求1或2所述的设备,进一步包括数据一致性管理逻辑,所述数据一致性管理逻辑用于基于所述一个或多个依赖性事件来确定资源线程的所述可用性,其中,确定所述可用性包括检测由于所述一个或多个依赖性事件保持未被解析而保持未被使用的一个或多个空闲资源线程。4.如权利要求1所述的设备,其特征在于,所述状态管理逻辑进一步用于获取所述一个或多个空闲资源线程,并且使所述多个内核的一个或多个非依赖性内核流水线化,以用于在不需要延迟所述处理或停止所述GPU的情况下,在所述一个或多个后续内核等待满足所述一个或多个依赖性事件时即在所述一个或多个空闲资源线程上进行处理,其中所述状态管理逻辑进一步用于使所述一个或多个后续内核流水线化,以用于在不需要停止所述GPU的情况下,在满足所述一个或多个依赖性事件时即在所述GPU处进行处理。5.如权利要求1或4所述的设备,其特征在于,所述状态管理逻辑进一步用于使所述一个或多个后续内核流水线化,以用于在不需要停止所述GPU的情况下,在满足所述一个或多个依赖性事件时即在所述GPU处进行处理。6.如权利要求1所述的设备,其特征在于,所述资源线程包括GPU硬件线程、命令缓冲区、可执行代码以及存储器堆中的一个或多个。7.如权利要求1所述的设备,其特征在于,所述命令缓冲区包括与所述多个工作负荷相关联的多个命令,其中所述命令包括与所述多个工作负荷相关的一个或多个处理命令,并进一步包括具有与所述多个工作负荷相关的状态数据的数据,其中所述处理命令以及所述数据在流水线中被分派给所述GPU。8.如权利要求1或2所述的设备,其特征在于,所述一个或多个依赖性事件包括与所述基本内核相关联的基本命令的处理的未完成、以及所述资源线程中的一个或多个的不可用性中的至少一者,其中所述一个或多个后续内核与依赖于所述基本命令的一个或多个后续命令相关联。9.一种方法,所述方法...

【专利技术属性】
技术研发人员:J·N·拉奥P·K·兰卡
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

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

1