一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

多租户图形处理单元的动态透明重新配置的制作方法

2022-11-14 00:07:51 来源:中国专利 TAG:

多租户图形处理单元的动态透明重新配置


背景技术:

1.图形处理单元(gpu)上的处理通常由中央处理单元(cpu)处理的应用程序编程接口(api)调用(例如,绘制调用)来发起。绘制调用是由cpu生成并传输到cpu以指示cpu在帧中渲染对象(或对象的一部分)的命令。绘制调用包括定义纹理、状态、着色器、渲染对象、缓冲区等的信息,gpu使用这些信息来渲染对象或其部分。响应于接收到绘图调用,gpu渲染对象以产生提供给显示器的像素值,显示器使用这些像素值来显示表示渲染对象的图像。
2.游戏和其他图形密集型应用程序是gpu的物理资源的贪婪消费者,该gpu包括用于实现图形流水线作为用户定义的可重新配置的虚拟流水线的着色器引擎和固定功能硬件单元。例如,用于处理三维(3-d)图形的常规图形流水线由可编程着色器所支持的固定功能硬件块布置的序列形成。这些布置通常经由图形应用程序编程接口(api)来配置,诸如由microsoft dx 11/12、khronos group、opengl、vulkan等定义的api。游戏通常在控制台(诸如xbox和playstation 4)和个人计算机(pc)上玩,该控制台和pc被优化以处理游戏的图形处理要求。然而,控制台和游戏pc是昂贵的,并且一些游戏仅以游戏格式中的一种游戏格式可用。云游戏通过将图形处理移动到云服务器中的gpu来克服这些缺点,该gpu将所渲染的图形流式传输到用户,从而降低用户的硬件要求并允许用户以多种格式玩游戏。
附图说明
3.通过参考附图,本公开被更好地理解,并且其许多特征和优点对于本领域技术人员是显而易见的。在不同附图中使用相同的附图标记表示类似或相同的项目。
4.图1是根据一些实施方案的在多租户图形处理单元(gpu)中实现空间分区的处理系统的框图。
5.图2是根据一些实施方案的使用灵活空间分区来改进硬件利用的gpu的框图。
6.图3是根据一些实施方案的包括被配置用于空间分区的命令总线的gpu的一部分的框图。
7.图4是根据一些实施方案的包括可用于空间分区的高速缓冲存储器的gpu的一部分的框图。
8.图5是根据一些实施方案的包括可用于空间分区的存储器信道集合的gpu的一部分的框图。
9.图6是根据一些实施方案的包括执行应用程序以向gpu提供命令的中央处理单元(cpu)的处理系统的框图。
10.图7是根据一些实施方案的包括以第一配置实现第一路径集合的gpu的处理系统的框图。
11.图8是根据一些实施方案的包括以第二配置实现第二路径集合的gpu的处理系统的框图。
12.图9是根据一些实施方案的执行gpu的动态透明重新配置的方法的流程图。
具体实施方式
13.云服务器中的图形处理单元(gpu)包括前端(fe)硬件以处理任务,诸如获取命令、处理抖动、执行几何操作以及执行光线跟踪。fe硬件通常包括命令获取器,诸如用以保存所获取的命令的先进先出(fifo)缓冲区之类的队列,以及调度来自命令缓冲区的命令以在gpu中的着色器引擎上执行的调度器。使用一个或多个处理器和一个或多个算术逻辑单元(alu)来实现着色器引擎以执行由fe硬件提供的命令。由着色器产生的结果(诸如着色像素的值)被输出到一个或多个高速缓冲存储器,该高速缓冲存储器存储也存储在对应存储器中的频繁使用的信息。因此,gpu包括存储器或寄存器以保存结果、高速缓冲存储器、端口以及这些实体之间的接口。信息经由路径从fe硬件流到存储器,该路径包括用以将命令从fe硬件载送到着色器引擎的命令总线,用以存储来自着色器引擎的输出的高速缓冲存储器,以及用以将高速缓存的信息传送到存储器的存储器信道。因此,gpu的资源包括用于通过命令总线将命令和数据传送到着色器引擎的带宽,存储由着色器引擎产生的结果的高速缓冲存储器,以及在高速缓冲存储器和存储器之间传送信息的存储器信道。
14.云服务器中的gpu集合执行不同应用程序的动态变化的混合。例如,云服务器可以在第一时间间隔期间执行四个简单的游戏(具有相对较低的资源消耗),在第二时间间隔期间执行两个中等的游戏(具有中等资源消耗),以及在第三时间间隔期间执行单个复杂的游戏(具有相对较高的资源消耗)。gpu集合无法确定提供命令以在gpu集合上执行的应用程序的要求,因为这些命令是由中央处理器(cpu)针对应用程序生成的,然后提供给gpu集合以供执行。
15.图1至图9公开了被透明地重新配置为执行由一个或多个应用程序响应于从正在执行该一个或多个应用程序的cpu所接收的分组(诸如应用程序编程接口(api)分组)而生成的命令的gpu的实施方案。gpu响应于gpu完成对由一个或多个应用程序生成的命令的执行而生成分组。例如,如果gpu正在并发执行针对第一应用程序和第二应用程序的命令,则gpu可向gpu传输指示针对第一应用程序的命令已完成执行的消息。作为响应,cpu将第三应用程序调度到gpu并生成api分组,该api分组指示gpu修改其配置以支持第一应用程序和第三应用程序的并发执行。gpu的一些实施方案包括:多个前端(fe)电路:命令总线,该命令总线实现通道集合;着色器引擎集合;高速缓冲存储器,该高速缓冲存储器由着色器引擎共享;和数据结构,该数据结构支持高速缓冲存储器与存储器之间的存储器信道集合。因此,修改gpu的配置包括:修改fe电路的分配,这些fe电路调度命令以在着色器引擎的子集上执行;以及修改命令总线的通道、高速缓冲存储器以及存储器信道集合在正在gpu上并发执行的应用程序之间的分区。gpu的配置基于gpu中的寄存器的值来确定。在一些实施方案中,寄存器包括:第一寄存器集合,该第一寄存器集合指示fe电路到着色器引擎的映射;第二寄存器集合,该第二寄存器集合指示命令总线的通道的分区;第三寄存器集合,该第三寄存器集合用于对高速缓冲存储器进行分区;和第四寄存器集合,该第四寄存器集合用于对存储器信道集合进行分区。这些寄存器是基于api分组中包含的信息来编程的。
16.图1是根据一些实施方案的在多租户图形处理单元(gpu)105中实现空间分区的处理系统100的框图。处理系统100包括一个或多个中央处理单元(cpu)110、111。尽管图1中示出了两个cpu 110、111,但是处理系统100的一些实施方案包括更多或更少的cpu。可缩放数据结构(sdf)115支持处理系统100内的端点之间的数据流。sdf 115的一些实施方案支持连
接点(诸如外围部件接口(pci)物理层、存储器控制器、通用串行总线(usb)集线器、包括gpu 105和cpu 110、111的计算和执行单元、以及其他端点)之间的数据流。在所示实施方案中,sdf 115连接到输入/输出(i/o)集线器120,该集线器继而连接到pci express(pci-e)总线125和北向接口(nbif)130。处理系统100还包括可缩放控制结构(scf)135,该可缩放控制结构是在处理系统100内传送系统控制信号的控制通信平面。系统控制信号的示例是用于支持热和功率管理、测试、安全性等的控制信号。
17.gpu 105包括着色器引擎(se)140、141、142、143(在本文中统称为

se 140-143

)的集合,其用于并发或并行执行命令。se 140-143的一些实施方案是使用从cpu 110、111中的一者接收到的绘图调用中的信息来配置的,以对表示场景模型的图元的顶点进行着色。se 140-143还对基于着色图元生成的像素进行着色,并且例如经由i/o集线器120向显示器提供着色像素以呈现给用户。尽管图1中示出了四个着色器引擎,但是gpu 105的一些实施方案包括更多或更少的着色器引擎。se 140-143连接到存储频繁使用的数据和指令的图形级2(l2)高速缓冲存储器145。在一些实施方案中,l2高速缓冲存储器145连接到在se 140-143中实现的一个或多个级1(l1)高速缓冲存储器以及在处理系统100中实现的一个或多个l3高速缓冲存储器(或其他最后一级高速缓冲存储器)。高速缓冲存储器形成包括l2高速缓冲存储器145的高速缓冲存储器层级。为了清楚起见,在图1中未示出高速缓冲存储器层级中的其他高速缓冲存储器。
18.gpu 105中的前端(fe)电路获取几何工作负载的图元,执行对几何工作负载的调度以在着色器引擎上执行,并且在一些情况下,处理图元的串行同步、状态更新、绘图调用、高速缓存活动和镶嵌。gpu 105中的fe电路包括fe电路150、151,但fe电路的一些实施方案被分区为包括附加fe电路,如本文所讨论的。fe电路还包括共享资源153(或具有对该共享资源的访问权限),该共享资源由fe电路150、151共享(并且在该fe电路之间进行分区)。例如,当fe电路150、151均是活动的并且执行不同的线程或应用程序时,共享资源153被分区为分别分配给fe电路150、151的两个部分。对于另一个示例,如果fe电路150、151中的仅一者是活动的或者如果fe电路150、151的组合资源用于支持单个线程或应用程序,则共享资源153都被分配给单个fe电路。共享资源153包括高速缓冲存储器、算术逻辑单元(alu)等。fe电路150、151接收命令缓冲区以在se 140-143上执行,并经由总线155向se 140-143提供经调度的命令。总线155的一些实施方案被实现为图形寄存器总线管理器(grbm),其充当用于支持多个主机和多个从装置的寄存器读取和写入操作的集线器。gpu 105和cpu 110、111经由sdf 115与存储器160通信。
19.cpu 110、111执行一个或多个应用程序,该一个或多个应用程序生成命令以在gpu 105上执行。cpu 110、111的一些实施方案使用应用程序编程接口(api)调用(例如,绘图调用)来在gpu上发起命令的执行,这些调用被传输到gpu 105以指示gpu 105例如通过在帧中渲染对象(或对象的一部分)来执行命令。gpu 105以不同的空间分区模式操作。gpu 105的一些实施方案支持第一空间分区模式和第二空间分区模式。在第一模式下,fe电路150调度命令,诸如se 140-143的几何工作负载。在第二模式下,fe电路150针对se 140-143的第一子集调度来自第一应用程序的命令,并且fe电路150针对se 140-143的第二子集调度针对第二应用程序的命令。第一子集包括se 140、141并且第二子集包括se 142、143,但在一些实施方案中也使用se 140-143的其他分组子集。
20.gpu 105支持可重新配置的物理路径,以经由se 140-143将信息从fe电路150、151传送到存储器160。物理路径的子集被分配给fe电路150、151的子集和140-143的对应子集。例如,在上述第二模式下,第一物理路径被分配给fe电路150和se 140、141。第二物理路径被分配给fe电路150、151和se 142、143。因此,gpu 105能够使用第一路径和第二路径针对第一应用程序和第二应用程序并发执行命令。gpu 105的物理路径的分配和配置的分配由gpu 105和正在执行应用程序的cpu 110、111协同执行。在一些实施方案中,cpu 110、111基于应用程序的特性或应用程序的特性的变化来请求重新配置。确定gpu 105的重新配置的特性的示例包括在cpu 110、111上执行的应用程序的数量、应用程序的复杂性、应用程序的图形分辨率等。cpu 110、111向gpu 105传输重新配置请求,该gpu基于重新配置请求来修改物理路径,如下文所讨论的。
21.图2是根据一些实施方案的使用灵活空间分区来改进硬件利用的gpu 200的框图。gpu 200用于实现图1所示的gpu 105的一些实施方案。gpu 200包括fe电路201、202、203的集合,这些fe电路在本文中统称为

fe电路201-203

。如本文所用,短语

fe电路集合

是指根据需要接通或关断的不同物理部件,以及利用多线程fe电路的不同线程。如本文所讨论的,fe电路201-203执行前端功能,包括用于在对应se 205、206、207(其在本文中统称为

se 205-207

)上执行的调度命令缓冲区。fe电路201-203选择性地连接到通过在空间上对gpu 200的资源进行分区而形成的不同路径。在所示实施方案中,fe电路201-203使用开关电路215选择性地连接到物理路径211、212、213。尽管开关电路215在图2中表示为解复用器,但是开关电路215还可包括一个或多个开关、数据结构、路由器、复用器、解复用器等。开关电路215以及在空间上分区的路径的其他部分基于存储在配置寄存器(为了清楚起见,在图2中未示出)中的值来配置。
22.在空间上分区的路径211-213提供了从fe电路201-203经由se 205-207流到存储器的命令和数据的路径。在所示实施方案中,存储器被分区为存储器分区221、222、223,其在本文中统称为

存储器分区221-223

。gpu 200的资源包括命令总线,该命令总线具有多个通道以在fe电路201-203与se 205-207之间传送信息。因此,在空间上分区的路径包括命令总线的通道的子集231、232、233,其在本文中统称为

通道子集231-233

。gpu 200的资源还包括将由se 205-207产生的信息传送到存储器的存储器信道的集合。因此,在空间上分区的路径包括存储器信道的子集241、242、243,其在本文中统称为

存储器信道子集241-243


23.gpu 200基于从正在执行一个或多个应用程序的cpu所接收的请求来配置或重新配置在空间上分区的路径211-213,该一个或多个应用程序生成命令以在gpu 200上执行。如本文所讨论的,gpu 200接收来自cpu的请求并基于请求中包括的信息来修改在空间上分区的路径211-213的资源的分配。cpu基于正在生成命令以在gpu 200上执行的应用程序的特性来生成请求。fe电路201-203、se 205-207和在空间上分区的路径211-213的资源的分配被确定为使得当执行不同数量的应用程序或线程时,gpu 200的资源被完全利用。例如,如果单个线程正在gpu 200上执行,则fe电路201-203、se 205-207和在空间上分区的路径211-213的资源被分配给单个线程。对于另一个示例,如果多个线程正在gpu 200上执行,则fe电路201-203、se 205-207和在空间上分区的路径211-213的资源在多个线程之间被分区和共享,如本文所讨论的。
24.在一些实施方案中,gpu 200的配置在寄存器集合中指示(为清楚起见,在图2中未示出)。在所示实施方案中,开关电路215将fe电路201-203中的每一者映射到路径211-213中的对应一者。然而,开关电路215还选择性地且可重新配置地将fe电路201-203的子集映射到物理路径211-213的子集或组合。此外,在一些实施方案中,路径211-213包括多个se 205-207和gpu 200的对应资源,如本文所讨论的。
25.图3是根据一些实施方案的包括被配置用于空间分区的命令总线305的gpu的一部分300的框图。部分300用于实现图1所示的gpu 105的一些实施方案。命令总线305包括在fe电路320、321的集合和se 325、326、327、328(其在本文中统称为

se 325-328

)的集合之间独立地传送信息的通道310、311、312、313、314、315、316、317(在本文中统称为

通道310-317

)。
26.部分300包括开关电路330,该开关电路选择性地将fe电路320、321的子集连接到通道310-317的对应子集。在一些实施方案中,开关电路330基于存储在一个或多个寄存器335中的信息来配置。部分300还包括开关电路340,该开关电路选择性地将通道310-317的子集连接到se 325-328的子集。提供了通道310-317的相互排斥的子集以在fe电路320、321的子集与se 325-328的对应子集之间传送信息,这对于与不同物理路径相关联的不同分配提供由gpu的部分300处理的命令之间的隔离。
27.开关电路340是响应于从正在执行应用程序的cpu所接收的请求来配置(或重新配置),这些应用程序生成命令以供gpu执行。在一些实施方案中,开关电路340基于存储在一个或多个寄存器345中的信息来配置。存储在寄存器335、345中的信息基于将fe电路320、321的子集与se 325-328的对应子集相关联的映射来确定。gpu的资源(包括通道310-317)被分配给fe电路320、321的子集和se 325-328的对应子集的每个组合。开关电路330、340使用存储在寄存器335、345中的信息来对通道310-317进行分区以在fe电路320、321的子集与se 325-328的对应子集之间形成物理路径。如本文所讨论的,寄存器335、345基于在来自cpu的请求中所接收的信息来编程。
28.图4是根据一些实施方案的包括可用于空间分区的高速缓冲存储器405的gpu的一部分400的框图。部分400用于实现图1所示的gpu 105的一些实施方案。高速缓冲存储器405被选择性地分区为将部分410、411、412、413(在本文中统称为

高速缓冲存储器部分410-413

)分配给与不同应用程序和fe电路子集相关联的不同物理路径。gpu的部分400还包括开关电路415,该开关电路选择性地将se 420、421、422、423(在本文中统称为

se 420-423

)的子集连接到高速缓冲存储器部分410-413。在所示实施方案中,高速缓冲存储器405被分区为使得高速缓冲存储器部分410-413是不同物理路径的部分。开关电路415将se 420连接到高速缓冲存储器部分410,将se 421连接到高速缓冲存储器部分411,将se 422连接到高速缓冲存储器部分412,并且将se 423连接到高速缓冲存储器部分413。因此,se 420-423具有对其对应的高速缓冲存储器部分410-413的独占访问,并且由se 420-423存储在高速缓冲存储器部分410-413中的信息与由其他se 420-423存储在其他高速缓冲存储器部分410-413中的信息隔离。
29.开关电路415是响应于从正在执行应用程序的cpu所接收的请求来配置(或重新配置),这些应用程序生成命令以供gpu执行。在一些实施方案中,开关电路415基于存储在寄存器425中的信息来配置。存储在寄存器425中的信息将se 420-423与对应的高速缓冲存储
器部分410-413相关联,以形成将se 420-423链接到存储器的路径的一部分(为清楚起见,在图4中未示出)。寄存器425基于从正在执行应用程序的cpu所接收的请求中的信息来编程,这些应用程序生成命令以供gpu执行。gpu的资源(包括高速缓冲存储器部分410-413)被分配给se 420-423的子集,以用于存储频繁使用的信息。因此,高速缓冲存储器部分410-413是用于经由se 420-423将信息从fe电路传送到存储器的物理路径的部分。
30.图5是根据一些实施方案的包括可用于空间分区的存储器信道集合的gpu的一部分500的框图。gpu的部分500用于实现图1所示的gpu 105的一些实施方案。存储器信道501、502、503、504(在本文中统称为

存储器信道501-504

)用于提供可用于分区为部分511、512、513、514(在本文中统称为

高速缓冲存储器部分511-514

)的高速缓冲存储器510和存储器520之间的路径。开关电路525选择性地将高速缓冲存储器部分511-514的子集连接到存储器520以形成物理路径,该物理路径是包括fe电路和se的物理路径的部分,如本文所讨论的。开关电路525使用存储在寄存器530中的信息来配置。在一些实施方案中,寄存器530基于从正在执行应用程序的cpu所接收的请求中的信息来编程,这些应用程序生成命令以供gpu执行。在所示实施方案中,高速缓冲存储器部分511-514中的每一者由开关电路525独立地连接到存储器520。在一些实施方案中,高速缓冲存储器部分511-514被映射到存储器520的不同部分,例如,通过将信息写入由不同基地址以及存储器步幅指示的存储器位置。
31.图6是根据一些实施方案的包括执行应用程序以向gpu 610提供命令的cpu 605的处理系统600的框图。处理系统600用于实现图1所示的处理系统100的一些实施方案。
32.操作系统615在cpu 105上实现以管理用于实现处理系统600的硬件和处理系统600的软件资源。一个或多个应用程序620由cpu 605使用cpu 105的硬件、固件或软件资源来执行。在一些实施方案中,应用程序620生成提供给gpu 610以供执行的命令(或命令缓冲区)。例如,应用程序620可包括提供图形命令以使gpu 610针对游戏应用程序渲染图形(或执行其他通用计算)的游戏应用程序。如本文所讨论的,由多个应用程序620生成的命令可在gpu 610上并发执行。
33.在一些实施方案中,应用程序620利用应用程序编程接口(api)625来调用用户模式驱动器630或其他gpu驱动器。用户模式驱动器630向gpu 610发出一个或多个命令(或命令缓冲区)。如果应用程序620发出图形命令,则图形命令指示gpu 610将一个或多个图形图元渲染成可显示的图形图像。基于由应用程序620向用户模式驱动器630发出的图形指令,用户模式驱动器630制定一个或多个图形命令,该一个或多个图形命令指定gpu 610为渲染图形而执行的一个或多个操作。在一些实施方案中,用户模式驱动器630是在cpu 605上执行的应用程序620中的一个或多个程序的一部分。例如,在cpu 605上运行的游戏应用程序可实现用户模式驱动器630。类似地,操作系统615的一些实施方案实现内核模式驱动器635,该内核模式驱动器在cpu 605在系统或内核模式下操作时执行。
34.gpu 610实现多个可重新配置的路径,用于并发执行与不同应用程序(诸如在cpu 605上执行的应用程序620)相关联的命令。在所示实施方案中,gpu 610包括前端(fe)电路640、641、642集合(在本文中统称为

fe电路640-642

)、开关电路645、se集合650、651、652(在本文中统称为

se 650-652

)和共享高速缓冲存储器655,该共享高速缓冲存储器被分区为部分660、661、662(在本文中统称为

高速缓冲存储器部分660-662

)。gpu 610还提供包括具有多个通道的命令总线和将高速缓冲存储器655与存储器670互连的存储器信道集
722、723。在一些实施方案中,寄存器集合740中的信息还用于分别在第一路径750中的se 720、721与第二路径751中的se 722、723之间建立连接760、761。连接760、761用于支持se间通信,诸如i/o操作的协调、切换等。第一路径750包括高速缓冲存储器部分730、731并且第二路径751包括高速缓冲存储器部分732、733。
40.图8是根据一些实施方案的包括以第二配置实现第二路径集合的gpu 705的处理系统800的框图。处理系统800用于实现图1所示的处理系统100和图6所示的处理系统600的一些实施方案。在所示实施方案中,gpu 705包括fe电路710、711、712、713(在本文中统称为

fe电路710-713

)、开关电路715、se集合720、721、722、723(在本文中统称为

se 720-723

)和共享高速缓冲存储器725,该共享高速缓冲存储器被分区为部分730、731、732、733(在本文中统称为

高速缓冲存储器部分730-733

)。高速缓冲存储器部分730-733保存也存储在存储器735中的频繁使用的信息的副本。gpu 705使用存储在由调度器745编程的寄存器集合740中的信息来配置。
41.在所示实施方案中,gpu 705在空间上分区以支持四个路径801、802、803、804,其在本文中统称为

路径801-804

。由路径801-804执行的命令由fe电路710-713中的对应一个fe电路调度。寄存器集合740中的信息将开关电路715(以及gpu 705的其他资源)配置为将第一路径801中的fe电路710连接到se 720,将第二路径802中的fe电路711连接到se 721,将第三路径803中的fe电路712连接到se 722,以及将第四路径804中的fe电路713连接到se 723。在一些实施方案中,寄存器集合740中的信息还用于分别断开第一路径750中的se 720、721与第二路径751中的se 722、723之间的连接760、761。例如,如果gpu 705先前处于图7所示的第一配置,则基于寄存器集合740中的信息重新配置gpu 705导致连接760、761的删除。第一路径801包括高速缓冲存储器部分730,第二路径802包括高速缓冲存储器部分731,第三路径803包括高速缓冲存储器部分732,并且第四路径804包括高速缓冲存储器部分733。
42.尽管图7和图8示出了其中se 720-723和高速缓冲存储器725在fe电路710-713的多个子集之间分区的实施方案,但在一些实施方案中,fe电路710-713的子集包括fe电路710-713中的单个fe电路,或者fe电路710-713被聚合成单个实体。例如,如果gpu 705正在执行单个线程或应用程序,则分配包括fe电路710-713中的一个fe电路或聚合的fe电路710-713的单个实体来处理单个线程或应用程序。在这种情况下,fe电路710-713的子集包括单个电路并且se 720-723和高速缓冲存储器725的资源被分配给单个电路,使得gpu 705的资源被充分利用,而不管fe电路710-713的子集的数量如何。
43.图9是根据一些实施方案的执行gpu的动态透明重新配置的方法900的流程图。在图1所示的处理系统100和图6中所示的处理系统600的一些实施方案中实现方法900。
44.在框905处,gpu响应于完成与正在对应cpu上执行的应用程序相关联的命令或命令缓冲区而生成中断(或其他消息)。在一些实施方案中,应用程序正在gpu上与其他应用程序并发执行,这些其他应用程序也正在生成命令或命令缓冲区以在gpu上执行。
45.在框910处,cpu检测到指示命令或命令缓冲区已在gpu上完成执行的中断(或接收其他消息)。响应于检测到中断,cpu可改变正在并发执行的应用程序的组合。例如,cpu可添加一个或多个附加应用程序以供并发执行或从并发执行中删除一个或多个应用程序。在一些实施方案中,在cpu上并发执行的应用程序的特性响应于gpu完成对命令或命令缓冲区的
执行而改变。具有较高复杂性或图形分辨率要求的应用程序可开始执行,具有较低复杂性或图形分辨率要求的应用程序可开始执行,或者并发执行的应用程序的特性可能发生其他变化。
46.在决策框915处,cpu确定是否经由se修改从gpu中的fe电路到存储器的路径,该se执行cpu提供给gpu的命令或命令缓冲区。该确定是基于在cpu上并发执行并针对cpu生成命令或命令缓冲区的应用程序的特性或特性的变化而做出的。如果cpu确定不需要修改,则方法900进行到框920。如果cpu确定需要修改,则方法900进行到框925。
47.在框920处,cpu发送指示gpu中的路径配置无变化的api分组。另选地,cpu在框920处不能采取任何行动,这也导致gpu保持其当前路径配置。
48.在框925处,cpu发送请求修改gpu中的路径的api分组。api分组的一些实施方案包括识别正在cpu上并发运行的应用程序的信息,以及指示应用程序的特性的信息。另选地,api分组可包括请求将分配给并发应用程序的多个路径的信息。在任一种情况下,gpu都负责基于api分组中的信息来确定如何重新配置路径。
49.在框930处,gpu修改用于配置gpu中的路径的配置寄存器。gpu的一些实施方案包括调度器,该调度器基于在api分组中从cpu所接收的信息来确定如何将修改配置寄存器中的条目的值。然后,调度器使用所确定的值来对配置寄存器进行编程。
50.在框935处,gpu确定是否应修改gpu中的se之间的通信。例如,如果存在一个或多个互连以支持se间通信,则如果作为重新配置的一部分,经由连接进行通信的se被分配到不同路径,则断开一个或多个连接。对于另一示例,如果作为重新配置的一部分,两个或更多个se被分配到同一路径,则建立连接以支持se间通信。
51.计算机可读存储介质包括在使用期间可由计算机系统访问以向计算机系统提供指令和/或数据的任何非暂态存储介质或非暂态存储介质的组合。此类存储介质可以包括但不限于光学介质(例如,光盘(cd)、数字通用光盘(dvd)、蓝光光盘)、磁性介质(例如,软盘、磁带或磁性硬盘驱动器)、易失性存储器(例如,随机存取存储器(ram)或高速缓冲存储器)、非易失性存储器(例如,只读存储器(rom)或闪存存储器)、或基于微机电系统(mems)的存储介质。计算机可读存储介质的一些实施方案嵌入计算系统(例如,系统ram或rom)中,固定地附接到计算系统(例如,磁性硬盘驱动器),可移除地附接到计算系统(例如,光盘或基于通用串行总线(usb)的闪存存储器),或者经由有线或无线网络(例如,网络可访问存储装置(nas))耦接到计算机系统。
52.在一些实施方案中,上述技术的某些方面由执行软件的处理系统的一个或多个处理器实现。软件包括可执行指令的一个或多个集合,该可执行指令存储在或以其他方式有形地体现在非暂态计算机可读存储介质上。软件可包括指令和某些数据,这些指令和数据在由一个或多个处理器执行时操纵一个或多个处理器以执行上述技术的一个或多个方面。非暂态计算机可读存储介质可包括例如磁盘或光盘存储装置、固态存储装置诸如闪存存储器、高速缓冲存储器、随机存取存储器(ram)或其他一个或多个非易失性存储器装置等。存储在非暂态计算机可读存储介质上的可执行指令是源代码、汇编语言代码、目标代码、或者被一个或多个处理器解释或以其他方式执行的其他指令格式。
53.应当注意,并非以上在一般描述中描述的所有活动或元件都是必需的,特定活动或装置的一部分可能不是必需的,并且可执行一个或多个另外的活动,或者除了所描述的
那些之外还包括元件。更进一步地,列出活动的顺序不一定是执行它们的顺序。另外,已经参考具体实施方案描述了这些概念。然而,本领域普通技术人员理解,在不脱离如以下权利要求中阐述的本公开的范围的情况下,可以进行各种修改和改变。因此,说明书和附图被认为是说明性的而非限制性的,并且所有此类修改旨在被包括在本公开的范围内。
54.上文已经关于具体实施方案描述了益处、其他优点和问题的解决方案。然而,益处、优点、问题的解决方案以及导致任何益处、优点或解决方案出现或变得更显著的任何特征不应被解释为任何或所有权利要求的关键的、必需的或基本的特征。此外,上文公开的特定实施方案仅是说明性的,因为所公开的主题可以以受益于本文中的教导内容的本领域的技术人员显而易见的不同但等效的方式来修改和实践。除了以下权利要求书中所描述的之外,不旨在对本文所示的构造或设计的细节进行限制。因此,显而易见的是,可以改变或修改上文公开的特定实施方案,并且所有此类变化被认为是在所公开的主题的范围内。因此,本文寻求的保护如以下权利要求中所阐述。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献