基于硬件排程GPU工作制造技术

技术编号:7607914 阅读:184 留言:0更新日期:2012-07-22 16:08
本发明专利技术揭露一种在第二处理器例如GPU上排程并执行由第一处理器例如CPU发出之命令的装置及方法。在一实施例中,在图形处理单元(Graphics?Processing?Unit;GPU)上执行处理的方法包括监控存储器中的一个或多个缓冲区,基于该GPU的工作量概况自该一个或多个缓冲区选择第一子集以执行于该GPU上,以及在该GPU上执行该第一子集。该GPU还可接收该一个或多个缓冲区的优先顺序,其中,该选择进一步基于该接收之优先顺序。通过在该GPU中执行命令的优先顺序确定及排程,系统性能得以提升。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及在处理器上排程命令。
技术介绍
图形处理单元(Graphics Processor Unit ;GPU)的处理能力正在快速增加。该处理能力的增加至少部分归因于图形处理单元中包括的多个独立处理单元(例如SIMD(单指令多数据)处理器、ALU (算术逻辑单元))。在许多图形应用中,利用该多个独立处理单元执行并行几何计算、顶点计算和/或像素操作。例如,图形应用经常以单指令多数据(single instruction, multip data ;SIMD)为特征,其中,可对多个并行数据流执行同一序列指令, 以大幅提升操作速度。另一个正在发展的趋势是将GPU用于通用计算,其可能不一定是SIMD类型计算。 将用于通用计算的GPU使用称为GPGPU式计算。在该GPGPU式计算中,CPU (中央处理单元) 可使用GPU执行以前通常由CPU完成的计算工作项目。传统上,由CPU排程GPU的工作以在GPU上操作,例如,顶点流及纹理信息以及处理此类信息的指令。在CPU上执行的软件可依据某些优先顺序确定不同工作项目(下面也称作“命令”)的优先顺序,并将其排队于系统存储器缓冲区中。GPU自该系统存储器缓冲区中异步检索下一个要处理的工作项目。在GPU上,该下一个要处理之工作项目的选择基于由CPU指定的优先顺序。在一些情况下,CPU可指定以每一工作项目为基础的优先顺序; 在其它情况下,CPU可指定与每一存储器缓冲区相关联的优先顺序,排队于存储器缓冲区中的任何工作项目将具有与该缓冲区相关联的优先顺序。随着GPU中处理能力的快速增加以及用于通用目的计算之GPU使用的增加,需要更有效的方法以充分利用GPU的可用计算能力。因此,需要提供能够更有效地向工作项目分配GPU资源的方法及系统。
技术实现思路
本专利技术揭露一种在第二处理器例如GPU上排程并执行由第一处理器例如CPU发出之命令的装置及方法。在一实施例中,在图形处理单元(Graphics Processing Unit ;GPU) 上执行处理的方法包括基于该GPU的工作量概况自存储器中的一个或多个缓冲区选择第一子集,以在该GPU上执行该第一子集之工作项目;以及在该GPU上执行该第一子集之工作项目。该GPU还可接收该一个或多个缓冲区的优先顺序,其中,该选择进一步基于该接收之优先顺序。本专利技术的另一实施例提供在GPU上执行工作项目的系统。该GPU经组构成基于该 GPU的工作量概况自存储器中的一个或多个缓冲区选择第一缓冲区子集,以在该GPU上执行该第一子集之工作项目;以及在该GPU上执行该第一子集。该GPU还可经进一步组构成接收该一个或多个缓冲区的优先顺序,其中,该选择进一步基于该接收之优先顺序。下面参照附图详细说明本专利技术进一步的实施例、特征和优点,以及本专利技术各实施4例的结构及操作。 附图说明包含于说明书中并构成其部分的附图示例本专利技术实施例,而且与上面的概括说明以及下面针对实施例的详细说明一起用于解释本专利技术的原理。图1显示依据本专利技术一实施例的系统。图2例示依据本专利技术一实施例的环形缓冲区分配。图3显示依据本专利技术一实施例实现于CPU中以将命令传递至GPU进行处理之过程的步骤流程图。图4显示依据本专利技术一实施例实现于GPU中以处理自CPU接收之命令之过程的步骤流程图。图5显示依据本专利技术一实施例实现于GPU中以确定命令的优先顺序并排程该命令以便执行之过程的步骤流程图。图6显示依据本专利技术一实施例实现于GPU中以执行命令之过程的步骤流程图。 具体实施例方式本专利技术实施例可实质提升图形处理单元(graphics processing unit ;GPU)资源的利用率。尽管这里使用具有特定应用的示例实施例说明本专利技术,但应当了解本专利技术并不以此为限。籍由阅读本文提供的教导,本领域的技术人员将了解本专利技术范围内的其它修改、 应用和实施例,以及本专利技术具有显着效用的其它领域。本专利技术实施例可用于任何计算机系统或计算设备,其具有至少两个处理器,例如提供工作项目(例如命令或命令缓冲区)的CPU以及处理该CPU提供之工作项目的GPU。 作为示例而非限制,实施例可包括计算机,其包括笔记本电脑、个人电脑、游戏平台、娱乐平台、个人数字助理以及视频平台。在具有CPU及GPU的系统中,GPU的利用率是整体系统性能的一个重要因素。理想情况下,人们希望GPU的利用率达到最大或接近最大。CPU提供GPU中使用的指令及数据。在传统系统中,CPU以命令缓冲区向GPU提供大体上全部的指令及数据,GPU简单地将那些命令缓冲区作为输入并执行(亦即执行那些命令缓冲区之命令)。命令缓冲区为包含指令或命令以及相关数据的数据结构。在传统系统中,由CPU确定命令缓冲区的任何优先顺序,GPU则按照CPU指定的顺序简单执行由CPU确定优先顺序的排队命令。尽管该传统方法有效,但此种方法中GPU仅依靠CPU确定GPU上要执行之工作的优先顺序还有改进的余地。本专利技术实施例旨在使GPU能够确定CPU指定之命令的优先顺序并排程。例如,相较 CPUjGPU能够以更加动态且更加有效的方式基于其本地资源的可用性确定要执行之命令的优先顺序。而且,GPU可在CPU指定的任意命令优先顺序之外确定第二级优先顺序。在GPU上基于硬件排程命令的系统图1示例依据本专利技术一实施例的系统,其中,在GPU上执行工作项目(例如命令)。 系统100包括CPU 101、系统存储器102、图形驱动器103、GPU 104以及通信基本架构105。 本领域的技术人员将了解,系统100可包括在图1所示实施例之组件以外或不同于该些组件的软件、硬件以及固件组件。CPU 101可为任何市场上有贩售的CPU、数字信号处理器(Digital Signal Processor ;DSP)、专用集成处理器(Application Specific Integrated Processor ; ASIC)、现场可编程闸阵列(Field Programmable Gate Array ;FPGA)或定制处理器。CPU 101可包括利用通信基本架构,例如通信基本架构105,耦接的一个或多个处理器。CPU 101 还可包括在同一芯片上具有多个处理核心的一个或多个处理器,例如多核心处理器。在图 1所示实施例中,CPU 101可为具有处理核心1 IOla及核心2 IOlb的双核心处理器。CPU 101执行操作系统(未图示)以及一个或多个应用程序,而且是系统100的控制处理器。执行于CPU 101上的操作系统控制并促进访问系统100中的设备。执行于CPU 101上的一个或多个应用程序,包括用户应用程序,使CPU 101协调系统100之不同设备的使用,包括GPU 104及系统存储器102,以实现任务。系统存储器102包括一个或多个存储器设备。系统存储器102通常可为动态随机访问存储器(Dynamic Random access Memory ;DRAM)或用于非持久性数据储存的类似存储器设备。在一些实施例中,系统存储器102可包括例如闪存设备和/或静态随机访问存储器(Static Random access Memory ;SRAM)等存储器设备。在一实施例中,在系统100执行期间,系统存储器102内可驻留一个或多个存储器缓冲区110本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:R·麦克拉里F·利尔罗斯G·J·程
申请(专利权)人:先进微装置公司
类型:发明
国别省市:

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

1
相关领域技术