用于持久计算的低功率和低延迟GPU协处理器制造技术

技术编号:21579508 阅读:22 留言:0更新日期:2019-07-10 17:43
公开了用于实施图形处理单元(GPU)协处理器的系统、设备和方法。所述GPU协处理器包括SIMD单元,所述SIMD单元能够基于输入数据流事件自行调度子波程序。主处理器将针对所述GPU协处理器的消息发送至队列。响应于检测到所述队列中的第一消息,所述GPU协处理器调度第一子任务以供执行。所述GPU协处理器包括用于向量通用寄存器(VGPR)文件的通道间交叉开关和通道内偏置索引机构。所述VGPR文件被分成两个文件。第一VGPR文件是具有一个读端口和一个写端口的较大寄存器文件。第二VGPR文件是具有多个读端口和一个写端口的较小寄存器文件。所述第二VGPR引入了每个时钟周期共同发出多于一个指令的能力。

Low Power and Low Delay GPU Coprocessors for Persistent Computing

【技术实现步骤摘要】
【国外来华专利技术】用于持久计算的低功率和低延迟GPU协处理器
技术介绍
相关技术的描述并行处理架构对于某些应用并不能很好地扩展。例如,超低功率应用仅需要相对有限的计算能力以及最小并行处理宽度,因此并不能有效地使用并行处理架构。在这些应用中,与部署的计算资源相比,任务分配和调度开销变得显著。这些应用中的一些应用包括网络包处理、图像识别、音频处理、加密加速等。这些应用通常要求较低延迟和持久计算、稳定的输入数据流,以及相对较少的处理内核和状态变化。一些图形处理单元(GPU)架构和编程模型涉及主机或中央处理单元(CPU)将一批内核分派给GPU以完成许多小任务。主机负责准备内核的输入数据并负责调度任务。然而,一些应用不会立即产生较大的输入数据集,或者应用的输入批次较小,这需要快速实时反应以及较低延迟计算。当前的GPU架构和编程模型不能很好地适用于这些应用。附图说明通过结合附图参考以下描述,可以更好地理解本文描述的方法和机构的优点,在附图中:图1是计算机系统的一个实施方案的框图。图2是GPU协处理器单元的一个实施方案的框图。图3是用于持久计算的着色器内核执行模型的一个实施方案的框图。图4是SIMD单元的一个实施方案的框图。图5是用于支持偏置索引寄存器操作的向量寄存器文件的一个实施方案的框图。图6示出用于向量通用寄存器(VGPR)偏置索引的伪代码的一个实施方案。图7是交叉开关的一个实施方案的框图。图8示出用于实施交叉开关的功能的伪代码的一个实施方案。图9是矩阵转置操作的一个实施方案的框图。图10是示出用于在GPU协处理器上执行持久计算内核的方法的一个实施方案的概括流程图。图11是示出用于处理持久队列中的消息的方法的另一实施方案的概括流程图。图12是示出用于执行矩阵转置操作的方法的一个实施方案的概括流程图。图13是示出用于与视频流相关联的音频处理的方法的一个实施方案的概括流程图。图14是示出用于操作GPU协处理器的方法的另一实施方案的概括流程图。图15是示出用于将操作数分配给不同向量通用寄存器(VGPR)文件的方法的一个实施方案的概括流程图。具体实施方式在以下描述中,阐述了许多具体细节以提供对本文呈现的方法和机构的透彻理解。然而,本领域普通技术人员应认识到,可以在没有这些具体细节的情况下实践各种实施方案。在一些情况下,未详细示出公知的结构、部件、信号、计算机程序指令和技术以避免模糊本文描述的方法。应理解,为了简单且清楚地进行说明,图中所示的元件不一定按比例绘制。例如,一些元件的尺寸可能相对于其它元件被夸大。公开了用于实施图形处理单元(GPU)协处理器的各种系统、设备、方法和计算机可读介质。在一个实施方案中,GPU协处理器包括单指令多数据(SIMD)单元,所述SIMD单元能够基于输入数据流事件自行调度其自身的子波程序。在一个实施方案中,GPU协处理器不具有由多个SIMD单元共享的本地数据共享(LDS)公共存储器单元。实际上,GPU协处理器包括用于向量通用寄存器(VGPR)文件的通道间交叉开关和通道内VGPR偏置索引机构。在一个实施方案中,VGPR文件被分成两个文件。第一VGPR文件是具有一个读端口和一个写端口的较大寄存器文件。第二VGPR文件是具有多个读端口和一个写端口的较小寄存器文件。第二VGPR引入了每个时钟周期发出多于一个指令的潜在能力。GPU协处理器被配置成在单个时钟周期中将多个操作数从第二VGPR文件传送至SIMD单元。另外,第一和第二VGPR文件是多存储体阵列,并且GPU协处理器被配置成在单个时钟周期中访问任一VGPR文件的不同存储体的不同字线。在一个实施方案中,一种系统包括持久队列、GPU、GPU协处理器、输入/输出(I/O)模块和主处理器。如本文所使用,术语“持久队列”是指存储用于持久线程(如稍后讨论)或其它持久任务的数据的队列,并且可以是本领域中已知的各种类型的队列中的任何一种。主处理器和/或I/O模块将针对GPU协处理器的消息发送至持久队列。GPU协处理器被配置成监测持久队列状态。响应于检测到持久队列中的第一消息,GPU协处理器执行第一消息的事件表的查找。接下来,GPU协处理器使用事件表将第一消息映射至第一事件。然后,响应于确定第一事件指定调度第一子任务,GPU协处理器调度第一子任务以供执行。如果SIMD计算资源(例如,VGPR、子波时隙)可用,则GPU协处理器随后可以继续服务下一个消息并且并行地调度下一个子任务。在一个实施方案中,GPU协处理器检测持久队列中的第二消息,并使用事件表将第二消息映射至第二事件。接下来,响应于将第二消息映射至第二事件并且确定第二事件指定第二子任务,GPU协处理器调度第二子任务以在第一矩阵上执行矩阵转置操作。为了执行第二子任务,GPU协处理器利用交叉开关来旋转第一矩阵中的数据项以创建第二矩阵。然后,GPU协处理器利用多个偏置索引操作来重新排列数据项以便创建第三矩阵,其中第三矩阵是第一矩阵的转置版本。在一个实施方案中,主处理器在GPU上调度针对视频流的图形处理任务。主处理器向GPU协处理器发送消息以发起针对视频流的音频处理任务。在一个实施方案中,GPU协处理器包括标量单元和向量单元。标量单元被配置成监测持久队列中的消息,并且响应于使用事件表将接收到的消息映射至事件而调度用于在向量单元上执行的子任务程序。现在参考图1,其示出计算机系统100的一个实施方案的框图。系统100至少包括主处理器102、输入/输出(I/O)模块104、图形处理单元(GPU)106、GPU协处理器108、常规队列110、持久队列112,以及存储器子系统114。应注意,系统100还包括其它部件,这些部件未示出以避免使附图模糊。主处理器102耦合至I/O模块104、GPU计算单元106、GPU协处理器108和存储器子系统114。主处理器102代表具有任何数量的核心的任何数量和类型的处理器(例如,中央处理单元(CPU))。在一个实施方案中,主处理器102被配置成执行例如操作系统的系统100的主控制软件。通常,由主处理器102执行的软件在使用期间可以控制系统100的其它部件,以实现系统100的期望功能。主处理器102还可以执行其它软件,例如应用程序。主处理器102被配置成管理系统100的不同类型的计算节点,包括I/O模块104、GPU106和GPU协处理器108。GPU106通过常规队列110从I/O模块104接收输入数据,并且GPU106将数据输出至永久队列112以供GPU协处理器108处理。持久队列112还直接从I/O模块104接收数据。在各种实施方案中,持久队列112与GPU在同一半导体电路装置上、是基于高速缓存的,或作为由主处理器102管理的虚拟映射的队列。I/O模块104表示任何数量和类型的I/O装置和/或I/O接口。例如,在一个实施方案中,I/O模块104包括相机或耦合至相机。在一个实施方案中,I/O模块104还包括其它外围装置或耦合至其它外围装置。在一个实施方案中,GPU106包括多个计算单元,所述多个计算单元包括单指令多数据(SIMD)单元、本地数据共享(LDS)存储器,以及用于支持并行处理任务的其它部件。在一个实施方案中,SIMD单元是流水线或编程模型,其中内核在多个处理元件上同时执行,每个处理元件本文档来自技高网...

【技术保护点】
1.一种系统,包括:队列;图形处理单元(GPU);GPU协处理器;以及主处理器,所述主处理器被配置成将针对所述GPU协处理器的消息发送至所述队列;其中所述GPU协处理器被配置成:监测所述队列;以及响应于检测到所述队列中的第一消息,调度第一子任务以供执行,其中所述第一子任务是持久线程。

【技术特征摘要】
【国外来华专利技术】2016.11.23 US 15/360,0571.一种系统,包括:队列;图形处理单元(GPU);GPU协处理器;以及主处理器,所述主处理器被配置成将针对所述GPU协处理器的消息发送至所述队列;其中所述GPU协处理器被配置成:监测所述队列;以及响应于检测到所述队列中的第一消息,调度第一子任务以供执行,其中所述第一子任务是持久线程。2.如权利要求1所述的系统,其中所述GPU协处理器还被配置成:响应于检测到所述第一消息,执行所述第一消息的事件表的查找;使用所述事件表将所述第一消息映射至第一事件;以及响应于将所述第一消息映射至所述第一事件,调度所述第一子任务以供执行;以及当计算资源可用时,继续为后续消息提供服务。3.如权利要求2所述的系统,其中所述GPU协处理器还被配置成:检测所述队列中的第二消息;使用所述事件表将所述第二消息映射至第二事件;响应于将所述第二消息映射至所述第二事件,调度第二任务以在第一矩阵上执行矩阵转置操作;利用交叉开关来旋转所述第一矩阵中的数据项以创建第二矩阵;利用多个偏置索引操作来重新排列所述第二矩阵中的数据项以创建第三矩阵;以及利用所述交叉开关来旋转所述第三矩阵中的数据项以创建第四矩阵,其中所述第四矩阵是所述第一矩阵的转置版本。4.如权利要求1所述的系统,其中所述GPU协处理器包括:第一向量通用寄存器(VGPR)文件,所述第一VGPR文件具有一个读端口和一个写端口;第二VGPR文件,所述第二VGPR文件具有多个读端口和一个写端口;单指令多数据(SIMD)单元;偏置索引访问块;以及交叉开关;其中所述GPU协处理器被配置成在单个时钟周期中将多个操作数从所述第二VGPR文件传送至所述SIMD单元。5.如权利要求4所述的系统,其中所述第一VGPR文件是多存储体阵列,并且其中所述GPU协处理器被配置成使用所述偏置索引访问块在单个时钟周期中访问所述第一VGPR文件的不同存储体的不同字线。6.如权利要求1所述的系统,其中:所述系统还包括GPU;所述主处理器在所述GPU上调度视频流的图形处理任务;并且所述主处理器对所述GPU协处理器进行编程以执行所述视频流的音频处理任务。7.如权利要求1所述的系统,其中:所述GPU协处理器还包括标量单元和向量单元;所述标量单元被配置成:监测所述队列中的消息;调度子任务以在所述向量单元上执行。8.一种方法,包括:将针对图形处理单元(GPU)协处理器的消息从主处理器发送至队列;通过所述GPU协处理器监测所述队列;以及响应于检测到所述队列中的第一消息,通过所述GPU协处理器调度第一子任务以供执行,其中所述第一子任务是持久线程。9.如权利要求8所述的方法,还包括:响应于检测到所述第一消息,执行所述第一消息的事件表的查找;使用所述事件表将所述第一消息映射至第一事件;响应于将所述第一消息映射至所述第一事件,调度所述第一子任务以供执行;以及当计算资源可用时,继续为后续消息提供服务。10.如权利要求9所述的方法,还包括:检测所述队列中的第二消息;使用所述事件表将所述第二消息映射至第二事件;响应于将所述第二消息映射至所述第二事件,调度第二任务以在第一矩阵上执行矩阵转置操作;利用交叉开关来旋转所述第一矩阵中的...

【专利技术属性】
技术研发人员:陈佳升蒂姆尔·帕尔塔舍夫亚历山大·洛希夫斯基卡尔·基特里奇·韦克兰德迈克尔·J·曼托尔
申请(专利权)人:超威半导体公司
类型:发明
国别省市:美国,US

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

1