用于使用两级装仓进行分布式渲染的系统和方法与流程
未命名
09-24
阅读:75
评论:0
用于使用两级装仓进行分布式渲染的系统和方法
1.相关申请的交叉引用
2.本技术涉及并要求以下共同未决申请的优先权:美国临时专利申请序列号63/131,976(代理人案号1458-200579-pr),名称为“coarse/hybrid/two-level binning as a mechanism for distributed rendering”,其全部内容以引用方式并入本文。
背景技术:
3.用于处理三维(3-d)图形的常规图形流水线由一系列可编程着色器和固定功能硬件块形成。软件应用程序生成用于由图形流水线渲染的帧,并且将帧提供给图形流水线前端处的命令处理器,这通常在图形处理单元(gpu)处实现。这些帧被细分为图元,诸如表示由帧表示的图像中的对象的部分的三角形或补丁。例如,图元可以表示在帧中可见的对象的3-d模型的部分。图形流水线响应于绘制调用而处理每个基元并且将经处理的基元提供给着色器子系统,该着色器子系统执行基元的着色。图形流水线还包括光栅化器以执行图元的光栅化,并且包括分块器(binner),以将图元分组为与帧的不同部分相关联的分块或图块。然后,在显示器上渲染之前,将图元的分块提供给着色器子系统以进行附加的着色。装仓(binning)是用于提高渲染图像的效率和速度的一种技术。
技术实现要素:
4.实施例1:一种方法,包括:在一组图形处理单元(gpu)小芯片中的第一gpu小芯片处处理将要渲染的帧的基元,以针对多个粗略仓中的每个粗略仓生成基元的可视性信息;将该可视性信息提供给该组gpu小芯片中的其他gpu小芯片;将该多个粗略仓中的每个粗略仓指定给该组gpu小芯片中的gpu小芯片中的一个gpu小芯片;以及基于对应的可视性信息来在所指定的gpu小芯片处渲染该多个粗略仓中的每个粗略仓。
5.实施例2:根据权利要求1所述的方法,其中渲染该多个粗略仓中的每个粗略仓包括处理该多个粗略仓中的每个粗略仓的可视基元和像素相位。
6.实施例3:根据权利要求1所述的方法,其中该可视性信息包括针对该多个粗略仓中的每个粗略仓将要处理的基元。
7.实施例4:根据权利要求1所述的方法,还包括:由第一gpu小芯片从将要渲染的帧的基元剔除不可视基元。
8.实施例5:根据权利要求1所述的方法,其中指定该多个粗略仓中的每个粗略仓包括将该多个粗略仓中的每个粗略仓静态地分配给该组gpu小芯片中的gpu小芯片中的每个gpu小芯片。
9.实施例6:根据权利要求1所述的方法,其中指定该多个粗略仓中的每个粗略仓包括基于工作负荷平衡来将该多个粗略仓中的每个粗略仓动态地分配给该组gpu小芯片中的gpu小芯片中的每个gpu小芯片。
10.实施例7:根据权利要求1所述的方法,其中并行地执行在所指定的gpu小芯片处渲染该多个粗略仓中的每个粗略仓。
11.实施例8:一种包含一组可执行指令的非暂态计算机可读介质,该组可执行指令用于操纵至少一个图形处理单元(gpu)小芯片以:生成与表示将要渲染的帧的几何结构的多个粗略仓中的每个粗略仓相交的基元的可视性信息;以及将该可视性信息提供给一组gpu小芯片,其中该组gpu小芯片中的每个gpu小芯片基于对应的可视性信息来渲染粗略仓中的至少一个粗略仓。
12.实施例9:根据权利要求8所述的非暂态计算机可读介质,其中该组gpu小芯片中的每个gpu小芯片通过处理该多个粗略仓中的每个粗略仓的可视几何结构和像素相位来渲染粗略仓中的至少一个粗略仓。
13.实施例10:根据权利要求8所述的非暂态计算机可读介质,其中可视性信息包括针对该多个粗略仓中的每个粗略仓将要处理的基元。
14.实施例11:根据权利要求8所述的非暂态计算机可读介质,还包括一组可执行指令,该组可执行指令操纵至少一个图形处理单元(gpu)小芯片以:从将要渲染的帧的几何结构剔除不可视基元。
15.实施例12:根据权利要求8所述的非暂态计算机可读介质,其中该组gpu小芯片中的每个gpu小芯片被指定为基于该多个粗略仓的静态分配来渲染该多个粗略仓中的至少一个粗略仓。
16.实施例13:根据权利要求8所述的非暂态计算机可读介质,其中该组gpu小芯片中的每个gpu小芯片被指定为基于该多个粗略仓的动态分配来渲染该多个粗略仓中的至少一个粗略仓,以平衡该组gpu小芯片的工作负荷。
17.实施例14:根据权利要求8所述的非暂态计算机可读介质,其中该组gpu小芯片中的一个gpu小芯片渲染粗略仓中的至少一个粗略仓,并行地,该组gpu小芯片中的另一个gpu小芯片渲染其他粗略仓中的至少一个粗略仓。
18.实施例15:一种系统,包括:第一图形处理单元(gpu)小芯片,该第一gpu小芯片以可视性模式运行,以针对表示将要渲染的帧的几何结构的多个粗略仓中的每个粗略仓生成可视性信息;以及一组gpu小芯片,该组gpu小芯片以粗略仓渲染模式运行,其中该组gpu小芯片中的gpu小芯片中的每个gpu小芯片从第一gpu小芯片接收针对该多个粗略仓中的一个粗略仓的可视性信息,并且基于对应的可视性信息来渲染该多个粗略仓中的该一个粗略仓。
19.实施例16:根据权利要求15所述的系统,其中该组gpu小芯片中的gpu小芯片中的每个gpu小芯片通过处理该多个粗略仓中的该一个粗略仓的可视几何结构和像素相位来渲染该多个粗略仓中的该一个粗略仓。
20.实施例17:根据权利要求15所述的系统,其中该组gpu小芯片并行地渲染该多个粗略仓。
21.实施例18:根据权利要求15所述的系统,其中该组gpu小芯片中的每个gpu小芯片被指定为基于该多个粗略仓的静态分配来渲染该多个粗略仓中的该一个粗略仓。
22.实施例19:根据权利要求15所述的系统,其中该组gpu小芯片中的每个gpu小芯片被指定为基于该多个粗略仓的动态分配来渲染该多个粗略仓中的该一个粗略仓,以平衡该组gpu小芯片的工作负荷。
23.实施例20:根据权利要求15所述的系统,其中第一gpu小芯片从将要渲染的帧的几
何结构剔除不可视基元,以生成可视性信息。
附图说明
24.通过参考附图,本公开可以被更好地理解,并且其许多特征和优点对于本领域技术人员是显而易见的。在不同附图中使用相同的附图标记表示类似或相同的项目。
25.图1是示出根据一些实施方案的利用多个gpu小芯片的处理系统的框图。
26.图2显示出根据一些实施方案的将要由处理系统(诸如图1的处理系统)渲染的帧202的两级装仓200的示例。
27.图3示出根据一些实施方案的使用两级装仓在处理系统(诸如图1的处理系统)中进行分布式渲染的方法的框图。
28.图4示出根据一些实施方案的在由多个gpu小芯片(诸如图1的gpu小芯片)进行渲染期间粗略仓的静态分配的框图。
29.图5示出根据一些实施方案的在由多个gpu小芯片(诸如图1的gpu小芯片)进行渲染期间粗略仓的动态分配的框图。
具体实施方式
30.为了渲染帧(即,为了准备用于传送到显示设备(诸如显示面板)并且在显示设备处显示的帧),gpu将关于三维(3d)对象的信息转变成二维(2d)图像帧以供显示。至少在一些情况下,该过程需要相当大的处理能力和存储器资源。在一些情况下,为了减少渲染时间,gpu使用装仓过程来渲染基元,其中gpu将图像帧划分成区,识别与给定区相交的基元,并且将所识别的基元放置到对应于给定区的仓中。因此,帧的每个区与对应仓相关联,其中仓包括与相关联的仓相交的基元或基元的一部分。gpu通过渲染与对应于仓的帧的区相交的基元的像素来逐个仓地渲染帧。至少在一些情况下,这允许gpu诸如通过需要较少存储器访问、增加高速缓冲使用等来更有效地渲染帧。
31.装仓过程的示例是单级装仓,其中gpu接收基元序列并且伺机将基元分段成时间相关的基元批量。捕获顺序基元直到满足预先确定的条件,诸如批满条件、状态存储装置已满条件,或确定对先前渲染的基元的依赖性。当执行基元批量装仓(pbb)时,将显示经渲染的基元的图像帧划分成若干块。图像帧的每个块与相应仓相关联。批量的所接收的基元序列的每个基元与一个或多个仓相交。针对批量中每个所接收的基元,计算初始仓截距,其中初始仓截距是图像帧中与基元相交的最左上仓。在批处理结束之后,识别用于处理的第一仓。处理截取所识别的仓的基元。针对被识别为截取该仓的每个基元,识别下一个仓截距并且发送包括在基元中由所识别的仓包围的像素以进行细致地光栅化。下一个仓截距是光栅次序中与经处理的基元相交的下一个最左上仓。
32.装仓过程的另一示例是两级装仓或“混合装仓”,其中执行两种类型的装仓:粗略级装仓和精细级装仓。在一些实施方案中,粗略级装仓使用大仓(例如,总共32个仓覆盖整个显示区域),这减少了装仓开销。每粗略仓可视性信息(即,在仓中可视的基元)在第一粗略仓(即,粗略仓0)的渲染期间生成并且用于渲染其他粗略仓。在粗略级装仓之后,针对每个粗略仓顺序执行精细级装仓。在一些实施方案中,精细级装仓涉及执行pbb以将每个粗略仓划分成较小的“精细”仓,诸如通过在基于pbb的精细级装仓期间将每个粗略仓进一步装
仓成的精细仓阵列(例如,各自具有64
×
64像素的大小)。然后,使用针对对应粗略仓生成的渲染信息(诸如可视性信息)来渲染每个粗略仓。在一些实施方案中,两级装仓发生在图形处理流水线的顶部(例如,在顶点处理和光栅化之前),这与发生在图形处理流水线的中部(例如,在顶点处理之后且在像素着色之前)的单级装仓形成对比。
33.一般来讲,在单级装仓和两级装仓两者中,每个粗略仓由gpu依次处理(即,一次一个仓)。在仓之间不存在相互依赖性的情况下,即,在可处理每个仓而不需要来自任何其他仓的处理的输入的情况下,这可能是低效的。因此,期望将并行化引入到装仓处理中,以便提高渲染图像的速度和效率,从而增强用户体验。
34.小芯片已经成功地在cpu架构中用于降低制造成本并提高产量,因为cpu的异质性计算性质更自然地适于将cpu核分离成不需要很多互通信的不同单元。另一方面,gpu处理通常包括并行处理。然而,gpu处理的几何结构不仅包括完全并行工作的部分,而且包括需要不同部分之间的同步排序的工作。因此,将工作的各部分散布在不同线程上的gpu编程模型通常是低效的,因为难以跨多个不同的工作组和小芯片分配并行性。具体地,在整个系统中同步共享资源的存储器内容以向应用程序提供存储器的连贯视图是困难且计算上昂贵的。另外,从逻辑的视点来看,以系统仅具有单个gpu的视角来编写应用程序。即,即使常规gpu包括许多gpu核,应用程序也被编程为寻址单个设备。因此,希望在gpu中使用小芯片技术来执行并行仓处理,而不需要gpu小芯片之间的昂贵的高速互连。
35.图1至图5示出使用由gpu小芯片进行的两级装仓来提供不需要gpu小芯片之间的高速互连的并行处理的系统和方法。所公开的系统和方法利用两级装仓,其中将渲染分解成两个阶段,即可视性阶段和粗略仓渲染阶段。在可视性阶段期间,绘制调用的几何结构由一组gpu小芯片中的第一gpu小芯片处理以生成可视性信息,同时其他gpu小芯片保持空闲以处理不相关的工作负荷,诸如来自先前两级装仓遍次的像素工作负荷。由第一gpu小芯片生成的可视性信息指定针对每个粗略仓应处理哪些基元。在一些情况下,如果存在足够多的资源可用,则第一装仓的像素相位也可以在可视性阶段期间由第一gpu小芯片渲染。在两级装仓的粗略仓渲染阶段期间,每个gpu小芯片基于来自第一gpu小芯片的可视性信息,通过处理所指定的仓的可视几何结构及其像素相位来渲染指定给该gpu小芯片的粗略仓。根椐设计考虑和工作负荷平衡,粗略仓到gpu小芯片的分配是静态的或动态的,如下面更详细描述的。由gpu小芯片执行的并行处理提高了渲染速度并且使gpu小芯片的处理带宽最大化。
36.图1是示出根据一些实施方案的利用多个gpu小芯片的处理系统100的框图。在所描绘的示例中,系统100包括用于执行指令的中央处理单元(cpu)102和一个或多个gpu小芯片的阵列104,诸如三个例示的gpu小芯片106-1、106-2和至106-n(统称为gpu小芯片106)。在各种实施方案中,并且如本文所用,术语“小芯片”是指包括但不限于以下特性的任何设备:1)小芯片包括有源硅管芯,该有源硅管芯包含用于解决全部问题的计算逻辑的部分(即,计算工作负荷跨这些有源硅管芯中的多个有源硅管芯分配);2)将小芯片一起封装为同一衬底上的单片单元;并且3)编程模型保留了这些单独的计算管芯是单个单片单元的概念(即,每个小芯片不作为单独的设备暴露给使用小芯片来处理计算工作负荷的应用程序)。在各种实施方案中,一个或多个gpu小芯片的阵列104包括硬件和/或软件的任何协作集合,相对于诸如常规cpu、常规图形处理单元(gpu)以及它们的组合等资源,该硬件和/或
软件以加速方式执行与加速图形处理任务、数据并行任务、嵌套数据并行任务相关联的功能和计算。
37.在各种实施方案中,cpu 102经由总线108连接到系统存储器110,诸如动态随机存取存储器(dram)。在各种实施方案中,系统存储器110还可以使用其他类型的存储器来实现,包括静态随机存取存储器(sram)、非易失性ram等。在例示的实施方案中,cpu 102通过实现为外围部件互连(pci)总线、pci-e总线或其他类型的总线的总线108与系统存储器110以及gpu小芯片106-1通信。然而,系统100的一些实施方案包括通过直接连接或经由其他总线、桥接件、交换机、路由器等与cpu 102通信的gpu小芯片106-1。
38.如图所示,cpu 102包括多个进程,诸如执行一个或多个应用程序112以生成图形命令和用户模式驱动器116(或其他驱动器,诸如内核模式驱动器)。在各种实施方案中,一个或多个应用程序112包括利用gpu小芯片106的功能性的应用程序,诸如在系统100或操作系统(os)中生成工作的应用程序。应用程序112可以包括指示gpu小芯片106渲染图形用户界面(gui)和/或图形场景的一个或多个图形指令。例如,图形指令可以包括定义将要由gpu小芯片106渲染的一组一个或多个图形基元的指令。
39.在一些实施方案中,应用程序112利用图形应用编程接口(api)114来调用用户模式驱动器116(或类似的gpu驱动器)。用户模式驱动器116向一个或多个gpu小芯片的阵列104发出一个或多个命令,该一个或多个命令用于将一个或多个图形基元渲染成可显示的图形图像。基于由应用程序112向用户模式驱动器116发出的图形指令,用户模式驱动器116制定一个或多个图形命令,该一个或多个图形命令指定gpu小芯片106为渲染图形而执行的一个或多个操作。在一些实施方案中,用户模式驱动器116是在cpu 102上运行的应用程序112的一部分。例如,在一些实施方案中,用户模式驱动器116是在cpu 102上运行的游戏应用程序的一部分。相似地,在一些实施方案中,内核模式驱动器(未示出)是在cpu 102上运行的操作系统的一部分。
40.在图1所描绘的实施方案中,被动交联118将gpu小芯片106(即,gpu小芯片106-1至106-n)彼此可通信地耦接。虽然在图1中显示出三个gpu小芯片106,但小芯片阵列104中的gpu小芯片的数量是设计选择的问题并且在其他实施方案中变化。在各种实施方案中,被动交联118包括互连芯片或用于小芯片间通信的其他类似技术。作为一般操作概述,cpu 102通过总线108可通信地耦接到单个gpu小芯片(即,gpu小芯片106-1)。在gpu小芯片106-1处接收从cpu 102到小芯片106的阵列104的cpu到gpu事务处理或通信。随后,通过被动交联118适当地路由任何小芯片间通信,以访问其他gpu小芯片106上的存储器通道。这样,基于gpu小芯片的系统100包括从软件开发者的角度来看可作为单个、单片gpu来寻址的gpu小芯片106(例如,cpu 102和任何相关联的应用/驱动器不知道基于小芯片的架构),并且因此避免了需要程序员或开发者方面作出任何特定于小芯片的考虑。
41.图2显示出将要由处理系统(诸如图1的处理系统100)渲染的帧202的两级装仓200的示例。在两级装仓中,执行两种类型的装仓:粗略级装仓和精细级装仓。在一些实施方案中,粗略级装仓使用大仓204(例如,总共4个仓覆盖整个显示区域),这减少了装仓开销。在每个粗略仓中可视的基元(例如,基元208)的可视性信息在第一粗略仓204-1的渲染期间生成并且用于渲染其他粗略仓204。在粗略级装仓之后针对每个粗略仓204执行精细级装仓。在一些实施方案中,精细级装仓涉及执行pbb以将每个粗略仓划分成较小的仓206,例如通
过在基于pbb的精细级装仓期间将每个粗略仓装仓成精细仓206的4
×
4阵列。然后,使用针对对应粗略仓生成的渲染信息(诸如可视性信息)来渲染每个精细仓206。
42.图3示出在处理系统(诸如图1的处理系统100)中使用两级装仓进行分布式渲染的方法300的框图。初始在处理系统100的gpu小芯片106中的一个gpu小芯片(诸如gpu小芯片106-1)处接收渲染帧的指令,如框302处所示。然后,如框304处所示,gpu小芯片106-1通过以下来处理帧的几何结构:将图像帧划分成区,识别与给定区相交的基元,并且将所识别的基元指定给对应于给定区的粗略仓。作为处理帧的几何结构的一部分,在框306处作出关于是处理所有几何结构数据还是仅处理随指令提供的位置数据的确定。在框308处,响应于仅应处理位置数据的确定而执行最小顶点着色器。否则,在框310处执行全着色器以处理所提供的数据中的所有数据。在框312处,gpu小芯片106-1应用剔除以移除被识别但在所渲染的帧中将不可视的那些基元(即,不可视基元)。在框314处,gpu小芯片106-1生成每粗略仓可视性信息。
43.在一些实施方案中,如框316处所示,作出是否有足够多的资源可用于gpu小芯片106-1以执行粗略仓的像素相位的确定。在框318处,如果有足够多的资源可用,则作出关于是否在框306处执行最小着色器的确定。如果有足够多的资源可用并且最小着色器未被执行,则在框320处,gpu小芯片106-1执行粗略仓中的一个粗略仓的像素相位。例如,在像素处理和顶点处理由同一着色器硬件执行的情况下,如果确定存在足够多的着色器资源来处理顶点和像素,则系统将继续进行像素处理。
44.当gpu小芯片106-1正在执行两级装仓的可视性阶段时,其他gpu小芯片可用于执行对由gpu小芯片106-1生成的可视性信息不具有直接依赖性的其他工作负荷。例如,在一些实施方案中,当gpu小芯片106-1正在执行两级装仓的可视性阶段时,gpu小芯片106-2处理来自先前两级装仓遍次的像素工作负荷或异步计算工作负荷,因为这些处理不需要来自由gpu 106-1执行的可视性阶段的输入。在框322处,gpu小芯片106-1将可视性信息提供给其他gpu小芯片106中的每个gpu小芯片,该可视性信息指定针对每个仓将要处理哪些基元。在框324处,以粗略仓渲染模式运行的每个gpu小芯片106通过处理仓的可视几何结构及其像素相位来渲染指定给该gpu小芯片的粗略仓。一旦指定给gpu小芯片106-1的所有粗略仓已经在粗略仓渲染阶段中被处理,则使gpu小芯片106-1可用于接收用于渲染下一帧(即,第二遍次)的指令并且开始处理下一帧的几何结构,同时其他gpu小芯片106仍然在第一遍次期间渲染指定给它们的粗略仓。
45.图4显示出在由多个gpu小芯片(诸如图1的gpu小芯片106)进行渲染期间粗略仓的静态分配400的框图。在两级装仓的可视性阶段402期间,gpu小芯片106-1以可视性模式运行以处理将要渲染的帧的几何结构,以及剔除任何不可视基元,以便生成每粗略仓可视性信息408。另外,在可视性阶段402期间,处理系统100的其他gpu小芯片106正在执行不依赖于由gpu小芯片106-1生成的可视性信息的其他工作负荷。在粗略仓渲染阶段404中,独立于gpu小芯片106的当前工作负荷或可用性,将每个粗略仓指定给gpu小芯片106中的一个gpu小芯片。例如,gpu小芯片106-1总是被指定为渲染粗略仓410和412,gpu小芯片106-2总是被指定为渲染粗略仓414和416,并且gpu小芯片106-3总是被指定为渲染粗略仓418和420。如果粗略仓410至422中的一些粗略仓具有更小的工作负荷并且需要更少的处理时间,则粗略仓410至420的静态分配可能导致低效率,因为gpu小芯片106中的一些gpu小芯片可能空闲
一段时间,而剩余的gpu小芯片106完成其相应粗略仓的渲染。然而,粗略仓的静态分配需要最少的处理资源来分配仓,并且可以避免在gpu小芯片106之间进行粗略仓的动态分配的增加的复杂性。
46.图5显示出在由多个gpu小芯片(诸如图1的gpu小芯片106)进行渲染期间粗略仓的动态分配500的框图。在两级装仓的可视性阶段402期间,gpu小芯片106-1以可视性模式运行以处理将要渲染的帧的几何结构,以及剔除任何不可视基元,以便生成每粗略仓可视性信息408。另外,在可视性阶段402期间,处理系统100的其他gpu小芯片106正在执行不依赖于由gpu小芯片106-1生成的可视性信息的其他工作负荷。在粗略仓渲染阶段304中,基于gpu小芯片106的当前工作负荷或可用性,将每个粗略仓指定给gpu小芯片106中的一个gpu小芯片。例如,将前三个粗略仓510、512和514分别指定给gpu小芯片106-1、gpu小芯片106-2和gpu小芯片106-3。基于已经指定给gpu小芯片106中的每个gpu小芯片的粗略仓的工作负荷以及基于正在指定的粗略仓的工作负荷,将剩余的粗略仓416和418指定给gpu小芯片106-1、gpu小芯片106-2或gpu小芯片106-3中的一者,以便平衡gpu小芯片106的工作负荷。
47.在图5所示的示例中,给gpu小芯片106-1指定具有相对大的工作负荷的粗略仓510,并且给gpu小芯片106-2指定与粗略仓510的工作负荷相比具有相对小的工作负荷的粗略仓512。将具有中等工作负荷的粗略仓516指定给gpu小芯片106-2,以平衡gpu小芯片106-2的总工作负荷与gpu小芯片106-1的工作负荷,并且使gpu小芯片106在粗略仓渲染阶段504期间的停机时间最小化。同样,基于已经指定给gpu小芯片106-3的粗略仓518的中等工作负荷和粗略仓518的相对小的工作负荷,将具有相对小的工作负荷的粗略仓514指定给gpu小芯片106-3。因此,虽然粗略仓到每个gpu小芯片106的动态分配需要附加的逻辑和处理来分析粗略仓的工作负荷并且确定gpu小芯片106之间的最高效的分配,但是动态分配通过平衡gpu小芯片的工作负荷来使gpu小芯片106的有效使用最大化。
48.在一些实施方案中,上述装置和技术在包括一个或多个集成电路(ic)设备(也称为集成电路封装或微芯片)的系统中实现,诸如上文参考图1至图4所描述的处理系统100和gpu小芯片106。电子设计自动化(eda)和计算机辅助设计(cad)软件工具可以在这些ic设备的设计和制造中使用。这些设计工具通常表示为一个或多个软件程序。一个或多个软件程序包括可由计算机系统执行的代码,以操纵计算机系统对代表一个或多个ic设备的电路的代码进行操作以便执行用以设计或调整制造系统以制造电路的过程的至少一部分。该代码可以包括指令、数据、或指令和数据的组合。代表设计工具或制造工具的软件指令通常存储在计算系统可访问的计算机可读存储介质中。同样,代表ic设备的设计或制造的一个或多个阶段的代码可以存储在相同计算机可读存储介质或不同计算机可读存储介质中并从其访问。
49.计算机可读存储介质可以包括在使用期间可由计算机系统访问以向计算机系统提供指令和/或数据的任何非暂态存储介质或非暂态存储介质的组合。此类存储介质可以包括但不限于光学介质(例如,光盘(cd)、数字通用光盘(dvd)、蓝光光盘)、磁性介质(例如,软盘、磁带或磁性硬盘驱动器)、易失性存储器(例如,随机存取存储器(ram)或高速缓存)、非易失性存储器(例如,只读存储器(rom)或闪存存储器)、或基于微机电系统(mems)的存储介质。计算机可读存储介质可以嵌入计算系统(例如,系统ram或rom)中,固定地附接到计算系统(例如,磁性硬盘驱动器),可移除地附接到计算系统(例如,光盘或基于通用串行总线
(usb)的闪存存储器),或者经由有线或无线网络(例如,网络可访问存储装置(nas))耦接到计算机系统。
50.在一些实施方案中,上述技术的某些方面可以由执行软件的处理系统的一个或多个处理器实现。软件包括可执行指令的一个或多个集合,该可执行指令存储在或以其他方式有形地体现在非暂态计算机可读存储介质上。软件可包括指令和某些数据,这些指令和数据在由一个或多个处理器执行时操纵一个或多个处理器以执行上述技术的一个或多个方面。非暂态计算机可读存储介质可包括例如磁盘或光盘存储设备、固态存储设备诸如闪存存储器、高速缓冲存储器、随机存取存储器(ram)或其他一个或多个非易失性存储器设备等。存储在非暂态计算机可读存储介质上的可执行指令可以是源代码、汇编语言代码、目标代码、或者被一个或多个处理器解释或以其他方式执行的其他指令格式。
51.应当注意,并非以上在一般描述中描述的所有活动或元件都是必需的,特定活动或设备的一部分可能不是必需的,并且可以执行一个或多个另外的活动,或者除了所描述的那些之外还包括元件。更进一步地,列出活动的顺序不一定是执行它们的顺序。另外,已经参考具体实施方案描述了这些概念。然而,本领域普通技术人员理解,在不脱离如以下权利要求中阐述的本公开的范围的情况下,可以进行各种修改和改变。因此,说明书和附图被认为是说明性的而非限制性的,并且所有此类修改旨在被包括在本公开的范围内。
52.上文已经关于具体实施方案描述了益处、其他优点和问题的解决方案。然而,益处、优点、问题的解决方案以及可以导致任何益处、优点或解决方案出现或变得更显著的任何特征不应被解释为任何或所有权利要求的关键的、必需的或基本的特征。此外,上文公开的特定实施方案仅是说明性的,因为所公开的主题可以以受益于本文中的教导内容的本领域的技术人员显而易见的不同但等效的方式来修改和实践。除了以下权利要求书中所描述的之外,不旨在对本文所示的构造或设计的细节进行限制。因此,显而易见的是,可以改变或修改上文公开的特定实施方案,并且所有此类变化被认为是在所公开的主题的范围内。因此,本文寻求的保护如以下权利要求中所阐述。
技术特征:
1.一种方法(300),包括:在一组图形处理单元(gpu)小芯片(106)中的第一gpu小芯片(106-1)处处理将要渲染的帧(202)的基元,以针对多个粗略仓(204,204-1,510,512,514,516,518)中的每个粗略仓生成基元的可视性信息(408);将所述可视性信息(408)提供给所述一组gpu小芯片(106)中的其他gpu小芯片;将所述多个粗略仓(204,510,512,514,516,518)中的每个粗略仓指定给所述一组gpu小芯片(106)中的所述gpu小芯片中的一个gpu小芯片;以及基于所述对应的可视性信息(408)来在所指定的gpu小芯片(106)处渲染所述多个粗略仓(204,510,512,514,516,518)中的每个粗略仓。2.根据权利要求1所述的方法(300),其中渲染所述多个粗略仓(204,510,512,514,516,518)中的每个粗略仓包括处理所述多个粗略仓(204,510,512,514,516,518)中的每个粗略仓的可视基元和像素相位。3.根据权利要求1所述的方法(300),其中所述可视性信息(408)包括针对所述多个粗略仓(204,510,512,514,516,518)中的每个粗略仓将要处理的基元。4.根据权利要求1所述的方法(300),还包括:由所述第一gpu小芯片(106-1)从所述将要渲染的帧(202)的所述基元(208)剔除不可视基元。5.根据权利要求1所述的方法(300),其中指定所述多个粗略仓(204,510,512,514,516,518)中的每个粗略仓包括将所述多个粗略仓(204,510,512,514,516,518)中的每个粗略仓静态地分配给所述一组gpu小芯片(106)中的所述gpu小芯片中的每个gpu小芯片。6.根据权利要求1所述的方法(300),其中指定所述多个粗略仓(204,510,512,514,516,518)中的每个粗略仓包括基于工作负荷平衡来将所述多个粗略仓(204,510,512,514,516,518)中的每个粗略仓动态地分配给所述一组gpu小芯片(106)中的所述gpu小芯片中的每个gpu小芯片。7.根据权利要求1所述的方法(300),其中并行地执行在所指定的gpu(106)小芯片处渲染所述多个粗略仓(204,510,512,514,516,518)中的每个粗略仓。8.一种包含一组可执行指令的非暂态计算机可读介质,所述一组可执行指令操纵至少一个图形处理单元(gpu)小芯片(106)以:生成与表示将要渲染的帧(202)的几何结构的多个粗略仓(204,510,512,514,516,518)中的每个粗略仓相交的基元的可视性信息(408);以及将所述可视性信息(408)提供给一组gpu小芯片(106),其中所述一组gpu小芯片(106)中的每个gpu小芯片基于所述对应的可视性信息(408)来渲染所述粗略仓(204,510,512,514,516,518)中的至少一个粗略仓。9.根据权利要求8所述的非暂态计算机可读介质,其中所述一组gpu小芯片(106)中的每个gpu小芯片通过处理所述多个粗略仓(204,510,512,514,516,518)中的每个粗略仓的可视几何结构和像素相位来渲染所述粗略仓(204,510,512,514,516,518)中的至少一个粗略仓。10.根据权利要求8所述的非暂态计算机可读介质,其中所述可视性信息(408)包括针对所述多个粗略仓(204,510,512,514,516,518)中的每个粗略仓将要处理的基元。
11.根据权利要求8所述的非暂态计算机可读介质,还包括一组可执行指令,所述一组可执行指令操纵至少一个gpu小芯片(106)以:从所述将要渲染的帧(202)的所述几何结构剔除不可视基元。12.根据权利要求8所述的非暂态计算机可读介质,其中所述一组gpu小芯片(106)中的每个gpu小芯片被指定为基于所述多个粗略仓(204,510,512,514,516,518)的静态分配(400)来渲染所述多个粗略仓(204,510,512,514,516,518)中的至少一个粗略仓。13.根据权利要求8所述的非暂态计算机可读介质,其中所述一组gpu小芯片(106)中的每个gpu小芯片被指定为基于所述多个粗略仓(204,510,512,514,516,518)的动态分配(500)来渲染所述多个粗略仓(204,510,512,514,516,518)中的至少一个粗略仓,以平衡所述一组gpu小芯片(106)的工作负荷。14.根据权利要求8所述的非暂态计算机可读介质,其中所述一组gpu(106-1)小芯片(106)中的一个gpu小芯片(106)渲染所述粗略仓(204,510,512,514,516,518)中的至少一个粗略仓,并行地,所述一组gpu小芯片(106)中的另一个gpu小芯片(106)渲染所述其他粗略仓(204,510,512,514,516,518)中的至少一个粗略仓。15.一种系统(100),包括:第一图形处理单元(gpu)小芯片(106-1),所述第一gpu小芯片以可视性模式运行,以针对表示将要渲染的帧(202)的几何结构的多个粗略仓(204,510,512,514,516,518)中的每个粗略仓生成可视性信息(408);和一组gpu小芯片(106),所述一组gpu小芯片以粗略仓渲染模式运行,其中所述一组gpu小芯片(106)中的所述gpu小芯片中的每个gpu小芯片从所述第一gpu小芯片(106-1)接收针对所述多个粗略仓(204,510,512,514,516,518)中的一个粗略仓的所述可视性信息(408),并且基于所述对应的可视性信息(408)来渲染所述多个粗略仓(204,510,512,514,516,518)中的所述一个粗略仓。16.根据权利要求15所述的系统(100),其中所述一组gpu小芯片(106)中的所述gpu小芯片中的每个gpu小芯片通过处理所述多个粗略仓(204,510,512,514,516,518)中的所述一个粗略仓的可视几何结构和像素相位来渲染所述多个粗略仓(204,510,512,514,516,518)中的所述一个粗略仓。17.根据权利要求15所述的系统(100),其中所述一组gpu小芯片(106)并行地渲染所述多个粗略仓(204,510,512,514,516,518)。18.根据权利要求15所述的系统(100),其中所述一组gpu小芯片(106)中的每个gpu小芯片被指定为基于所述多个粗略仓(204,510,512,514,516,518)的静态分配(400)来渲染所述多个粗略仓(204,510,512,514,516,518)中的所述一个粗略仓。19.根据权利要求15所述的系统(100),其中所述一组gpu小芯片(106)中的每个gpu小芯片被指定为基于所述多个粗略仓(204,510,512,514,516,518)的动态分配(500)来渲染所述多个粗略仓(204,510,512,514,516,518)中的所述一个粗略仓,以平衡所述一组gpu小芯片(106)的工作负荷。20.根据权利要求15所述的系统(100),其中所述第一gpu(106-1)小芯片从所述将要渲染的帧(202)的所述几何结构剔除不可视基元,以生成所述可视性信息(408)。
技术总结
用于使用两级装仓来进行分布式渲染的系统(100)和方法(300)包括在一组图形处理单元(GPU)小芯片(106)中的第一GPU小芯片(106-1)处处理将要渲染的帧(202)的基元(208),以针对每个粗略仓(204,510,512,514,516,518)生成基元的可视性信息(408),并且将该可视性信息(408)提供给该组GPU小芯片(106)中的其他GPU小芯片。每个粗略仓(204,510,512,514,516,518)被指定给该组GPU小芯片(106)中的GPU小芯片中的一个GPU小芯片,并且基于该对应的可视性信息(408)来在所指定的GPU小芯片(106)处渲染。染。染。
技术研发人员:阿尼鲁德
受保护的技术使用者:超威半导体公司
技术研发日:2021.12.27
技术公布日:2023/9/23
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/