基于图形管线中的资源用量来限制着色器的制作方法

未命名 09-09 阅读:91 评论:0

基于图形管线中的资源用量来限制着色器


背景技术:

1.图形处理单元(gpu)实现图形处理管线,该图形处理管线同时处理从命令缓冲器检索的命令的副本。图形管线包括使用图形管线的资源执行的一个或多个着色器以及一个或多个固定功能硬件块。图形管线通常被划分为几何部分,该几何部分对补丁或其他图元(诸如,由顶点和边缘形成并且表示图像的部分的三角形)执行几何操作。几何部分中的着色器可包括顶点着色器、全着色器、域着色器和几何着色器。当由管线的几何部分产生的图元被光栅化(例如,通过一个或多个扫描转换器)以形成表示图像的部分的像素集合时,图形管线的几何部分完成。对像素的后续处理称为像素处理,并且包括由着色器(诸如,使用图形管线的资源执行的像素着色器)执行的操作。gpu和其他多线程处理单元通常实施将多个数据集上的单个程序的多个实例作为单个波同时执行的多个处理元件(其也被称为处理器内核或计算单元)。分级执行模型用于匹配在硬件中实现的分级结构。执行模型限定由所有波(也称为波前、线程、流或工作项)执行的指令的内核。
附图说明
2.通过参考附图,本公开被更好地理解,并且其许多特征和优点对于本领域技术人员是显而易见的。在不同附图中使用相同的附图标记表示类似或相同的项目。
3.图1是根据一些实施方案的处理系统的框图。
4.图2描绘了根据一些实施方案的被配置为提供高阶几何图元的处理以便以预先确定的分辨率生成三维(3d)场景的光栅化图像的图形管线。
5.图3是根据一些实施方案的基于不同类型的着色器的资源用量来实现着色器限制的图形管线的部分的框图。
6.图4是根据一些实施方案的基于图形管线中的资源用量来选择性地发射几何波的图形管线的部分的框图。
7.图5是根据一些实施方案的基于缓冲器充溢度来确定用于选择性地限制几何波的计数器值的方法的流程图。
8.图6是根据一些实施方案的基于几何着色器波和像素着色器波的相对资源用量来确定用于选择性地限制几何波的计数器值的方法的流程图。
9.图7是根据一些实施方案的基于几何着色器波或其组的寿命来确定用于选择性地限制几何波的计数器值的方法的流程图。
10.图8示出了根据一些实施方案的表示在限制几何着色器波之前的“无限制”状态的第一时间间隔。在例示的实施方案中,采样逻辑开始采样。
11.图9示出了根据一些实施方案的包括几何着色器波的无限制到限制转变的第二时间间隔。
12.图10示出了根据一些实施方案的包括由于来自图元集线器的背压的减小而导致的限制到无限制转变的第三时间间隔。
13.图11示出了根据一些实施方案的其中完成了从限制到无限制的转变的第四时间
间隔。
具体实施方式
14.着色器(诸如,gpu的图形管线的几何部分中的几何着色器)发射由着色器处理的波。着色器处理的结果被传递到下游实体,诸如管线中的其他着色器。例如,几何着色器波发生器使用贪婪算法来发射波,该贪婪算法尝试使用尽可能多的图形管线的资源。将由几何着色器处理的图元传递到一个或多个扫描转换器,该一个或多个扫描转换器将图元转换为像素以用于在像素着色器中处理。基于用于在一个着色器中处理的贪婪算法来发射波可夺取下游着色器完成其对图元或像素的操作所需的资源。例如,如果几何着色器波发生器发射过多的波并且几何着色器独占图形管线的资源,则像素着色器可能无法访问图形管线的资源以对从扫描转换器接收的像素执行着色。一些图形管线被配置为通过约束可分配给着色器以用于处理波的计算单元的数量来限制飞行中的波的数量。然而,当执行需要较大数量计算单元的绘制调用时,对可用计算单元的数量的静态限制通常降低图形管线的性能。
15.图1至图11公开了图形管线的实施方案,该图形管线通过基于由第一着色器和第二着色器消耗的图形管线资源的测量而从第一着色器选择性地发射波,来保持由第一类型的第一着色器和第二类型的第二着色器消耗的资源之间的平衡。在一些实施方案中,第一着色器是几何着色器并且第二着色器是像素着色器。几何着色器基于向扫描转换器提供图元的缓冲器的充溢度以及对几何着色器和像素着色器的资源的相对分配的测量,来选择性地发射几何波。图元集线器监测一组先入先出(fifo)缓冲器的充溢度,该组fifo缓冲器从几何着色器接收图元并且向基于所接收的图元生成像素的一组扫描转换器提供图元。图元集线器使用被实现为停顿计数器的停顿信号来限制由几何着色器发射的波,该停顿计数器被递增以指示“死”周期的数量。死周期的数量是基于fifo缓冲器的至少一个充溢度确定的,并且然后在每个时钟周期处递减。几何着色器响应于具有诸如零的预定值的停顿计数器来发射波。
16.图元集线器向着色器处理器输入(spi)提供指示充溢度的反馈,该spi基于几何着色器和像素着色器的资源用量来选择性地限制几何着色器波。spi的一些实施方案确定到飞行中的几何着色器波和飞行中的像素着色器波的本地数据存储(lds)资源的相对分配、到飞行中的几何着色器波和飞行中的像素着色器波的诸如向量通用寄存器(vgpr)的寄存器的相对分配、或它们的组合。spi响应于到飞行中的几何着色器波和飞行中的像素着色器波的资源的相对分配超过阈值来使停顿计数器递增,该阈值指示飞行中的几何着色器波正在消耗阻止飞行中的像素着色器波被处理的资源。在一些实施方案中,还基于一个或多个几何着色器组中的几何着色器波的寿命来确定停顿计数器的值,使得如果寿命超过阈值则使停顿计数器递增。
17.图1是根据一些实施方案的处理系统100的框图。处理系统100包括或可访问使用非暂态计算机可读介质诸如动态随机存取存储器(dram)实现的存储器105或其他存储部件。然而,在一些情况下,存储器105使用其他类型的存储器(包括静态随机存取存储器(sram)、非易失性ram等)来实现。存储器105被称为外部存储器,因为它是在处理系统100中实现的处理单元的外部实现的。处理系统100还包括总线110以支持处理系统100诸如存储
器105中实现的实体之间的通信。处理系统100的一些实施方案包括其他总线、桥接件、交换机、路由器等,其在清楚的情况下未在图1中示出。
18.在不同的实施方案中,本文中描述的技术用于多种并行处理器(例如,向量处理器、图形处理单元(gpu)、通用gpu(gpgpu)、非标量处理器、高度并行处理器、人工智能(ai)处理器、推理引擎、机器学习处理器、其他多线程处理单元等)中的任一种处理器。图1示出了根据一些实施方案的并行处理器,特别是图形处理单元(gpu)115的示例。图形处理单元(gpu)115渲染用于在显示器120上呈现的图像。例如,gpu 115渲染对象以产生提供给显示器120的像素值,该显示器使用像素值来显示表示所渲染对象的图像。gpu 115实现并发或并行地执行指令的多个计算单元(cu)121、122、123(本文中统称为“计算单元121至123”)。在一些实施方案中,计算单元121至123包括一个或多个单指令多数据(simd)单元并且计算单元121至123被聚集到工作组处理器、着色器阵列、着色器引擎等中。在gpu 115中实现的计算单元121至123的数量是设计选择的问题,并且gpu 115的一些实施方案包括比图1所示更多或更少的计算单元。计算单元121至123可用于实现图形管线,如本文所讨论的。gpu 115的一些实施方案用于通用计算。gpu 115执行指令(诸如存储在存储器105中的程序代码125),并且gpu 115将信息(诸如所执行指令的结果)存储在存储器105中。
19.处理系统100还包括中央处理单元(cpu)130,其连接到总线110并且因此经由总线110与gpu 115和存储器105通信。cpu 130实现并发或并行地执行指令的多个处理器核心131、132、133(本文统称为“处理器核心131至133”)。在cpu 130中实现的处理器核心131至133的数量是设计选择的问题,并且一些实施方案包括比图1所示更多或更少的处理器核心。处理器核心131至133执行指令(诸如存储在存储器105中的程序代码135),并且cpu 130将信息(诸如所执行指令的结果)存储在存储器105中。cpu 130还能够通过向gpu 115发出绘制调用来发起图形处理。cpu 130的一些实施方案实现同时或并行地执行指令的多个处理器核心(为了清楚起见图1中未示出)。
20.输入/输出(i/o)引擎145处理与显示器120以及处理系统100的其他元件(诸如,键盘、鼠标、打印机、外部盘等)相关联的输入或输出操作。i/o引擎145被耦接到总线110,使得i/o引擎145与存储器105、gpu 115或cpu 130进行通信。在例示的实施方案中,i/o引擎145读取存储在外部存储部件150上的信息,该外部存储部件是使用非暂态计算机可读介质,诸如光盘(cd)、数字视频盘(dvd)等来实现的。i/o引擎145还能够将信息写入外部存储部件150,诸如gpu 115或cpu 130的处理结果。
21.处理系统100实现用于在管线的多个阶段中执行指令的管线电路。管线电路是在计算单元121至123或处理器内核131至133的一些实施方案中实现的。在一些实施方案中,管线电路用于实现执行不同类型的着色器的图形管线,这些着色器包括但不限于顶点着色器、外壳着色器、域着色器、几何着色器和像素着色器。管线电路还包括保持由着色器生成的图元的缓冲器。在一些实施方案中,一个或多个缓冲器保持由几何着色器生成的图元并且然后向像素着色器提供这些图元。管线电路还包括监测缓冲器的充溢度的图元集线器。基于缓冲器的充溢度来限制波从几何着色器的发射。着色器处理器输入(spi)基于来自图元集线器的指示充溢度的信号、图形管线中的几何波和像素波的相对资源用量的指示或几何波的寿命的指示,来选择性地对由几何着色器发射的波进行限制。
22.图2描绘了根据一些实施方案的被配置为处理高阶几何图元以便以预先确定的分
辨率生成三维(3d)场景的光栅化图像的图形管线200。图形管线200是在图1所示的处理系统100的一些实施方案中实现的。图形管线200的所示出的实施方案根据dx11规范来实现。图形管线200的其他实施方案根据其他应用程序编程接口(api)诸如vulkan、metal、dx12等来实现。图形管线200被细分成包括图形管线200在光栅化之前的部分的几何部分201和包括图形管线200在光栅化之后的部分的像素处理部分202。
23.图形管线200可访问存储资源205,诸如用于实现缓冲器并且存储顶点数据、纹理数据等的一个或多个存储器或高速缓存存储器的层级结构。在例示的实施方案中,存储资源205包括用于存储数据的本地数据存储(lds)206电路和用于存储在图形管线200渲染期间所用的寄存器值的向量通用寄存器(vgpr)。使用图1所示的系统存储器105的一些实施方案来实现存储资源205。
24.输入汇编程序210从存储资源205访问用于定义表示场景的模型的部分的对象的信息。图元的示例在图2中被示出为三角形211,但在图形管线200的一些实施方案中处理其他类型的图元。三角形203包括由一个或多个边214连接的一个或多个顶点212(为了清楚起见,在图2中仅示出了每个边中的一个边)。顶点212在图形管线200的几何处理部分201期间被着色。
25.在例示的实施方案中以软件实现的顶点着色器215在逻辑上接收图元的单个顶点212作为输入并且输出单个顶点。着色器诸如顶点着色器215的一些实施方案实现大规模单指令多数据(simd)处理,使得同时处理多个顶点。图形管线200实现统一着色器模型,使得图形管线200中所包括的所有着色器在共享大规模simd计算单元上具有相同的执行平台。因此,包括顶点着色器215的着色器使用本文称为统一着色器池216的公共资源集来实现。
26.外壳着色器218对用于定义输入补丁的输入高阶补丁或控制点进行操作。外壳着色器218输出镶嵌因子和其他补丁数据。在一些实施方案中,由外壳着色器218生成的图元被提供给镶嵌器220。镶嵌器220从外壳着色器218接收对象(诸如补丁),并且例如通过基于由外壳着色器218提供给镶嵌器220的镶嵌因子来镶嵌输入对象来生成标识对应于输入对象的图元的信息。镶嵌将输入的高阶图元(诸如补丁)细分为一组低阶输出图元,该组低阶输出图元表示更精细的细节级别,例如,如指定由镶嵌过程产生的图元粒度的镶嵌因子所指示的那样。因此,场景的模型由较少数量的较高阶图元表示(以节省存储器或带宽),并且通过对较高阶图元进行镶嵌来添加附加的细节。
27.域着色器224输入域位置和(可选地)其他补丁数据。域着色器224对所提供的信息进行操作,并且基于输入域位置和其他信息生成用于输出的单个顶点。在例示的实施方案中,域着色器224基于三角形211和镶嵌因子生成图元222。几何着色器226接收输入图元并且输出由几何着色器226基于输入图元生成的多达四个图元。在例示的实施方案中,几何着色器226基于镶嵌式图元222生成输出图元228。
28.一个图元流被提供给一个或多个扫描转换器230,并且在一些实施方案中,多达四个图元流被级联到存储资源205中的缓冲器。扫描转换器230执行着色操作和其他操作,诸如裁剪、透视划分、剪切和视口选择等。扫描转换器230生成一组232像素,该组像素随后在图形管线200的像素处理部分202中被处理。
29.在例示的实施方案中,像素着色器234输入像素流(例如,包括像素组232)并且响应于输入像素流而输出零或另一像素流。输出合并器块236对从像素着色器234接收的像素
执行混合、深度、模板或其他操作。
30.图形管线200中的一些或所有着色器使用存储在存储资源205中的纹理数据执行纹理映射。例如,像素着色器234可以从存储资源205读取纹理数据并且使用纹理数据来对一个或多个像素进行着色。然后将着色的像素提供给显示器以呈现给用户。
31.图3是根据一些实施方案的基于不同类型的着色器的资源用量来实现着色器限制的图形管线的部分300的框图。部分300用于实现图2所示的图形管线200的一些实施方案。命令被分配给着色器处理器输入(spi)电路301、302、303(在本文中统称为“spi 301-303”),这些spi电路发射波以由对应的着色器311、312、313(在本文中统称为“着色器311-313”)处理。在例示的实施方案中,着色器311-313被实现为几何着色器。尽管为了清楚起见未在图3中示出,但spi 301-303包括计数器(或与之相关联),该计数器用于对着色器311-313的波发射进行限制,如本文所讨论的。着色器311-313生成包括点、线、三角形或其他图元的输出,该输出被提供到对应的图元汇编器(pa)321、322、323,它们在本文中统称为“pa 321-323”。
32.图元集线器325从pa 321-323接收图元并且将该图元分配给扫描转换器331、332、333,这些扫描转换器在本文中统称为“扫描转换器331-333”。图元集线器325的一些实施方案包括缓冲器复合体(为了清楚起见未在图3中示出),该缓冲器复合体由与pa 320 123中的每一者相关联的先入先出(fifo)缓冲器的集合组成。每组缓冲器与扫描转换器331-333中的对应扫描转换器相关联,使得图元集线器323可经由对应的fifo缓冲器向扫描转换器331-333中的任一者选择性地提供来自pa 321-323中的任一者的图元。图元集线器323还向spi 301-303提供指示fifo缓冲器的充溢度的信号,spi使用该信号来选择性地限制波发射,如本文所讨论的。扫描转换器331-333对所接收的图元进行光栅化,以生成代表图元的像素的集合以用于显示。
33.spi 301-303的一些实施方案收集指示着色器的资源用量的数据,该着色器包括几何着色器(诸如图2所示的几何着色器226)和像素着色器(诸如图2所示的像素着色器234)。资源用量数据然后被用于选择性地限制波发射。在一些实施方案中,spi 301-303实现资源用量计数器(为了清楚起见未在图3中示出),该资源用量计数器用于响应于确定几何着色器的资源用量对像素着色器波产生负面影响来降低几何着色器波发射速率。由spi 301-303获取的数据包括:
34.1.通过考虑lds和vgpr消耗,由飞行中的几何着色器和像素着色器波使用的资源的量。限制电路考虑的是:
35.a.由飞行中的几何着色器波使用的vgpr的数量。
36.b.由飞行中的像素着色器波使用的vgpr的数量。
37.c.由飞行中的几何着色器波使用的lds组块的数量。
38.d.由飞行中的像素着色器波使用的lds组块的数量。
39.数据收集逻辑具有由能够被spi访问和修改的参数值控制的两种使用模式:
40.●
模式0-逻辑查看几何着色器波使用的资源与着色器引擎可用的vgpr总数的比率。该信息可用于限制着色器引擎中的几何着色器的资源用量。
41.●
模式1-逻辑查看几何着色器使用的资源与几何着色器和像素着色器资源之和的比率。该信息用于限制几何着色器和像素着色器的相对资源用量。
42.2.像素着色器波因资源在工作组处理器中不可用而停顿的周期的数量。像素着色器的样式计数被确定如下:
43.●
限制逻辑从资源分配器逻辑得到停顿信号。
44.●
停顿计数器对停顿信号为高的周期的数量进行计数,并且生成停顿计数,该停顿计数在下一次采样时翻转。
45.●
如果像素着色器是wave64,则将翻转的停顿计数乘以因子二。停顿计数的最大值等于wave32像素着色器的编程采样间隔,并且是wave64像素着色器的该值的两倍。
46.●
停顿计数器在采样时重置为0。
47.图形管线的部分300可隐藏从几何着色器发射的波组中的一些延迟。然而,如果波(或对应的组)的实际寿命超过该值,则图形管线的性能下降并且几何着色器波组开始在较长持续时间内阻断资源。因此,如果像素着色器波缺乏资源,则与具有较短寿命的几何着色器组相比,具有较长寿命的几何着色器组潜在地针对像素产生较长的停顿。因此,spi 301-303的一些实施方案监测几何着色器组的寿命并且将该寿命与阈值进行比较。响应于几何着色器组的寿命超过阈值,spi 301-303生成较长的停顿以限制来自几何着色器的波发射。
48.图4是根据一些实施方案的基于图形管线中的资源用量来选择性地发射几何波的图形管线的部分400的框图。图形管线的部分400用于实现图1所示的图形管线200和图3所示的图形管线的部分300的一些实施方案。部分400包括图元汇编器(pa)401、402、403,它们在本文中统称为“pa 401-403”并且从对应的着色器(诸如,图3所示的着色器311-313)接收图元。
49.图元集线器405包括缓冲器415的集合411、412、413(为了清楚起见,仅一个缓冲器由附图标号指示),并且集合411-413中的每个集合与对应的扫描转换器421、422、423相关联,这些扫描转换器在本文中统称为“扫描转换器421-423”。图元集线器405从pa 401-403接收图元,并且将图元的副本存储在集合411-413中的每个集合中的对应缓冲器中。图元集线器405还监测缓冲器415的充溢度并且基于该充溢度确定是否限制波发射。在一些实施方案中,图元集线器405中的轮询逻辑425轮询集合411-413中的缓冲器415以按编程的时间间隔(诸如每千个时钟周期)确定它们的充溢度。图元集线器405中的速率限制器430使得用于对几何着色器的波发射进行限制的死周期的数量递增。在一些实施方案中,速率限制器430使用第一值来指示要在每个增量上添加的死周期的数量,并且使用第二值来指示增量步长。因此,在每次递增时,死周期的数量递增第二值,并且在每次递减脉冲时,死周期减少第二值。
50.图形管线的部分400包括计数器435,该计数器指示使用多少死周期来选择性地限制波发射。计数器435的一些实施方案在诸如图3所示的spi 301-303的对应spi中实现。图元集线器405向spi提供指示所监测的缓冲器充溢度的信号(例如,背压)。在一些实施方案中,在图元集线器405与pa 401-403之间的接口上提供背压。背压指示在剔除之后等待消耗的几何工作的量的估计值。例如,背压作为从图元集线器405传送到每个spi的2位状态信号来传送。这两个位表示缓冲器415的状态。在一些实施方案中,状态逻辑查看对应于每个pa 401的集合411-413中的所有缓冲器415,并且基于具有最多条目并且因此是最“满”的缓冲器415来生成状态。如本文所讨论的,spi可按不同模式操作。表1指示在一些实施方案中由状态位表示的状态。状态逻辑根据pa 401-403进行复制。
51.表1
[0052][0053]
图5是根据一些实施方案的基于缓冲器充溢度来确定用于选择性地限制几何波的计数器值的方法500的流程图。方法500是在图1所示的处理系统100、图2所示的图形管线200、图3所示的处理系统的部分300、和图4所示的处理系统的部分400的一些实施方案中实现的。
[0054]
在框505处,图元集线器监测从一个或多个图元汇编器接收数据并且将该数据提供到一个或多个扫描转换器以供光栅化的一组fifo缓冲器的缓冲器充溢度。在框510处,图元集线器基于缓冲器充溢度来生成状态信号。如本文所论述的,状态信号可包括具有指示缓冲器充溢度的不同范围的值的一组位(例如,两个位)。
[0055]
在框515处,图元集线器向一个或多个spi提供状态信号。在框520处,基于状态信号来确定计数器值。例如,计数器值可被赋予基于由状态信号指示的缓冲器充溢度的范围确定的值,使得如果缓冲器充溢度较大,则计数器值以较大的量递增。如本文所论述的,使用基于缓冲器充溢度确定的计数器值结合基于几何着色器波和像素着色器波的相对资源用量确定的计数器值以及基于几何着色器波或其组的寿命确定的计数器值,来执行几何波的选择性限制。
[0056]
图6是根据一些实施方案的基于几何着色器波和像素着色器波的相对资源用量来确定用于选择性地限制几何波的计数器值的方法600的流程图。方法600是在图1所示的处理系统100、图2所示的图形管线200、图3所示的处理系统的部分300、和图4所示的处理系统的部分400的一些实施方案中实现的。
[0057]
在框605处,spi监测几何着色器波和像素着色器波的资源用量。在例示的实施方案中,spi通过几何着色器波和像素着色器波来监测lds用量、vgpr用量或它们的组合。在框610处,spi基于lds用量、vgpr用量或它们的组合来确定到几何和像素着色器波的相对资源分配,如本文所论述的。
[0058]
在决策框615处,spi确定该相对分配是否高于阈值。如果是,则方法600前进至框620并且spi使得用于设置计数器以选择性地限制几何着色器波的发射的值递增。如果相对分配不高于阈值,则方法600前进至框625,并且spi将计数器保持在其当前值。如本文所论述的,使用基于几何着色器波和像素着色器波的相对资源用量确定的计数器值结合基于图元集线器处的缓冲器充溢度确定的计数器值以及基于几何着色器波或其组的寿命确定的计数器值,来执行几何波的选择性限制。
[0059]
图7是根据一些实施方案的基于几何着色器波或其组的寿命来确定用于选择性地限制几何波的计数器值的方法700的流程图。方法700是在图1所示的处理系统100、图2所示的图形管线200、图3所示的处理系统的部分300、和图4所示的处理系统的部分400的一些实
施方案中实现的。
[0060]
在框705处,在图形管线中发射几何着色器波(或几何着色器波的组)。在框710处,spi确定几何着色器波(或其组)的寿命,如本文所论述的。在决策框715处,spi确定该寿命是否高于阈值。如果是,则方法700前进至框720并且spi使得用于设置计数器以选择性地限制几何着色器波的发射的值递增。如果寿命不高于阈值,则方法600前进至框725,并且spi将计数器保持在其当前值。如本文所论述的,使用基于几何着色器波(或其组)的寿命确定的计数器值结合基于图元集线器处的缓冲器充溢度确定的计数器值以及基于几何着色器波和像素着色器波的相对资源用量确定的计数器值,来执行几何波的选择性限制。
[0061]
在一些实施方案中,通过添加具有预定值(例如,高值或1)的停顿信号来限制几何着色器波,该停顿信号被保持直到停顿计数变为诸如零的另一预定值。当停顿信号保持为高时,未被授予的资源被分配给几何着色器波。基于由图元集线器生成的fifo状态数据、由spi生成的资源用量数据以及几何波的寿命,来确定停顿计数。例如,可通过应用“或”操作以在上文公开的三个选项中选择最大停顿计数,来生成停顿计数。在一些实施方案中,最小停顿计数被设置为零,并且使用最大停顿计数1024。
[0062]
基于寄存器字段的值来执行图元集线器(或基于由图元集线器生成的背压)的限制,该寄存器字段控制由停顿计数器指示的死周期的数量。第一字段指示在从“无限制”条件到限制条件的转变时添加的死周期的数量。第二字段指示在每次采样时死周期的递增或递减。如果限制被启用并且下一几何着色器波已经被授予资源,则停顿计数器被加载停顿计数并且开始递减计数。在采样时确定要添加的死周期的数量,但响应于被授予资源的下一几何着色器波而使用该计数。
[0063]
如本文所讨论的,基于资源用量信息来确定spi的限制。在一些实施方案中,存在用于限制几何着色器波发射的多个触发。
[0064]
第一触发基于几何着色器波的lds用量。响应于所测量的用量超过阈值来限制几何着色器波发射。触发生成逻辑的一些实施方案使用以下模式:
[0065]

模式0-该模式查看与着色器引擎中可用的总lds相比的几何着色器组的lds用量。如果该比率超过或等于阈值,则设置第一触发。有效寄存器值是从0到9。在进行比较之前将该值乘以10。
[0066]

模式1-该模式查看与由几何着色器和像素着色器波在着色器引擎中使用的总lds相比的几何着色器波的lds用量。如果该比率超过或等于阈值,则设置第二触发。有效寄存器值是从0到9。在进行比较之前将该值乘以10。
[0067]

模式2-该模式不查看用量。第一触发始终被设置在该模式中。如果ps波停顿,则不管gs资源用量如何,都限制几何着色器波的发射。
[0068]
第二触发基于几何着色器波的vgpr用量。响应于所测量的用量超过阈值来限制几何着色器波发射。触发生成逻辑的一些实施方案使用以下模式:
[0069]

模式0-该模式查看几何着色器波使用的vgpr的数量并且将其与着色器引擎中可用的vgpr的总数量进行比较。如果该比率超过或等于阈值,则设置第二触发。有效寄存器值是从0到9。在进行比较之前将该值乘以10。
[0070]

模式1-该模式查看几何着色器波使用的vgpr的数量并且将其与几何着色器和像素着色器波在着色器引擎中使用的vgpr的总数量进行比较。如果该比率超过或等于阈
值,则设置第二触发。有效寄存器值是从0到9。在进行比较之前将该值乘以10。
[0071]

模式2-该模式不查看用量。第二触发始终被设置在该模式中。如果像素着色器波停顿,则不管几何着色器资源用量如何,都限制几何着色器波的发射。
[0072]
基于像素着色器波停顿的周期的平均数量来设置第三触发。例如,在预定数量的时钟周期之后,以预定时间间隔对像素着色器波停顿的周期数量进行采样。如果满足以下条件,则设置第三触发:
[0073]
1.像素着色器停顿周期的当前数量大于或等于所计算的平均停顿周期,或等于最大采样计数。
[0074]
2.像素着色器停顿周期的当前数量大于或等于阈值。
[0075]
如果启用了spi限制、设置了第三触发并且设置了第一触发或第二触发,则spi限制是活动的。限制逻辑和spi使用寄存器字段,该寄存器字段控制由停顿计数器指示的死周期的数量。第一字段指示在从“无限制”条件到限制条件的转变时添加的死周期的数量。第二字段指示在每次采样时死周期的递增或递减。如果限制被启用并且下一几何着色器波已经被授予资源,则停顿计数器被加载停顿计数并且开始递减计数。在采样时确定要添加的死周期的数量,但响应于被授予资源的下一几何着色器波而使用所述计数。
[0076]
图8示出了根据一些实施方案的表示在限制几何着色器波之前的“无限制”状态的第一时间间隔800。在例示的实施方案中,采样逻辑开始采样。在100个时钟周期之后,采样逻辑检测到指示fifo缓冲器的状态在图元中为00的信号。不施加限制。
[0077]
图9示出了根据一些实施方案的包括几何着色器波的无限制到限制转变的第二时间间隔900。在1000个时钟之后,fifo缓冲器的状态在图元集线器中从00变为10。最大计数器值被设置为256,其等于限制基数*4。下一几何着色器波在1200个时钟之后被授予资源。这是从无限制到限制条件的第一次转变。计数器开始递减计数并且设置停顿,直到计数器变为预定值零为止。
[0078]
图10示出了根据一些实施方案包括由于来自图元集线器的背压的减小而导致的限制到无限制转变的第三时间间隔1000。在3000个时钟处,采样检测到fifo缓冲器的状态在图元集线器中从10变为01。最大计数器值被设置为128。在3100个时钟处对下一几何着色器波进行授予。计数器开始计数,并且在128个时钟内保持高停顿。
[0079]
图11示出了根据一些实施方案的其中完成了从限制到无限制的转变的第四时间间隔1100。在3500个时钟处,采样检测到fifo缓冲器的状态在图元集线器中从01变为00。最大计数器值被设置为零。在3600个时钟处,采样检测到fifo缓冲器的状态在图元集线器中没有变化。最大计数器值保持为零。
[0080]
如本文所讨论的,在一些实施方案中,一种装置包括:图形管线,所述图形管线被配置为执行第一类型的第一着色器和第二类型的第二着色器;至少一个缓冲器,所述至少一个缓冲器被配置为保持由所述第一着色器生成的图元并且向所述第二着色器提供所述图元;和图元集线器,所述图元集线器被配置为监测所述至少一个缓冲器的至少一个充溢度,其中基于所述至少一个充溢度来限制波从所述第一着色器的发射。在一个方面,所述第一着色器是几何着色器,所述第二着色器是像素着色器,并且所述至少一个缓冲器是先入先出(fifo)缓冲器。在另一方面,所述装置包括:计数器,所述计数器被配置为指示死周期的数量;和着色器处理器输入(spi),所述spi被配置为基于所述计数器来选择性地限制由
所述几何着色器发射的波。在又一方面,所述图元集线器被配置为向所述spi提供指示所述至少一个充溢度的反馈信号,并且其中基于所述反馈信号来确定死周期的第一数量。
[0081]
在一个方面,所述spi被配置为确定以下中的至少一者:到飞行中的几何着色器波和飞行中的像素着色器波的本地数据存储(lds)资源的第一相对分配以及到所述飞行中的几何着色器波和所述飞行中的像素着色器波的向量通用寄存器(vgpr)的第二相对分配。在另一方面,所述spi被配置为通过将所述第一相对分配与第一阈值进行比较、将所述第二相对分配与第二阈值进行比较或它们的组合,来确定死周期的第二数量。在又一方面,所述spi被配置为确定由所述几何着色器发射的至少一个波的至少一个寿命,并且基于将所述至少一个寿命与至少一个第三阈值进行比较来确定死周期的第三数量。在又一方面,基于死周期的所述第一数量、所述第二数量和所述第三数量中的至少一者来使所述计数器递增,并且其中所述计数器在每个时钟周期处递减。在又一方面,所述几何着色器响应于具有预定值的所述计数器来发射波。
[0082]
在一些实施方案中,一种方法包括:在图形管线上执行第一类型的第一着色器和第二类型的第二着色器;在所述图形管线中的图元集线器处监测至少一个缓冲器的至少一个充溢度,所述至少一个缓冲器被配置为保持由所述第一着色器生成的图元并且向所述第二着色器提供所述图元;以及基于所述至少一个充溢度来选择性地限制从所述第一着色器发射的波。在一个方面,所述第一着色器是几何着色器,其中所述第二着色器是像素着色器,并且其中所述至少一个缓冲器是先入先出(fifo)缓冲器。在另一方面,所述方法包括:修改计数器以指示死周期的数量;以及基于所述计数器来在着色器处理器输入(spi)处选择性地限制由所述几何着色器发射的所述波。在又一方面,所述方法包括:从所述图元集线器向所述spi提供反馈信号,以指示所述至少一个充溢度;以及基于所述反馈信号来确定死周期的第一数量。
[0083]
在一个方面,所述方法包括:在所述spi处确定以下中的至少一者:到飞行中的几何着色器波和飞行中的像素着色器波的本地数据存储(lds)资源的第一相对分配以及到所述飞行中的几何着色器波和所述飞行中的像素着色器波的向量通用寄存器(vgpr)的第二相对分配。在另一方面,所述方法包括:通过将所述第一相对分配与第一阈值进行比较、将所述第二相对分配与第二阈值进行比较或它们的组合,来在所述spi处确定死周期的第二数量。在又一方面,所述方法包括:在所述spi处确定由所述几何着色器发射的至少一个波的至少一个寿命;以及基于将所述至少一个寿命与至少一个第三阈值进行比较来在所述spi处确定死周期的第三数量。
[0084]
在一个方面,所述方法包括:基于死周期的所述第一数量、所述第二数量和所述第三数量中的至少一者来使所述计数器递增,并且其中所述计数器在每个时钟周期处递减。在另一方面,选择性地限制由所述几何着色器发射的所述波包括:响应于具有预定值的所述计数器来从所述几何着色器发射波。
[0085]
在一些实施方案中,一种装置包括:图元集线器,所述图元集线器被配置为监测至少一个缓冲器的至少一个充溢度,所述至少一个缓冲器被配置为保持由几何着色器生成的图元并且向图形管线中的像素着色器提供所述图元;和着色器处理器输入(spi),所述spi被配置为基于以下中的至少一者来选择性地对由所述几何着色器发射的波进行限制:来自所述图元集线器的指示所述至少一个充溢度的信号、所述图形管线中的几何波和像素波的
相对资源用量的指示以及所述几何波的寿命的指示。在一个方面,来自所述图元集线器的所述信号包括两个位,所述两个位具有映射到所述至少一个充溢度的不同范围的值。
[0086]
计算机可读存储介质可以包括在使用期间可由计算机系统访问以向计算机系统提供指令和/或数据的任何非暂态存储介质或非暂态存储介质的组合。此类存储介质可以包括但不限于光学介质(例如,光盘(cd)、数字通用光盘(dvd)、蓝光光盘)、磁性介质(例如,软盘、磁带或磁性硬盘驱动器)、易失性存储器(例如,随机存取存储器(ram)或高速缓冲存储器)、非易失性存储器(例如,只读存储器(rom)或闪存存储器)、或基于微机电系统(mems)的存储介质。计算机可读存储介质可以嵌入计算系统(例如,系统ram或rom)中,固定地附接到计算系统(例如,磁性硬盘驱动器),可移除地附接到计算系统(例如,光盘或基于通用串行总线(usb)的闪存存储器),或者经由有线或无线网络(例如,网络可访问存储装置(nas))耦接到计算机系统。
[0087]
在一些实施方案中,上述技术的某些方面可以由执行软件的处理系统的一个或多个处理器实现。软件包括可执行指令的一个或多个集合,该可执行指令存储在或以其他方式有形地体现在非暂态计算机可读存储介质上。软件可包括指令和某些数据,这些指令和数据在由一个或多个处理器执行时操纵一个或多个处理器以执行上述技术的一个或多个方面。非暂态计算机可读存储介质可包括例如磁盘或光盘存储设备、固态存储设备诸如闪存存储器、高速缓冲存储器、随机存取存储器(ram)或其他一个或多个非易失性存储器设备等。存储在非暂态计算机可读存储介质上的可执行指令可以是源代码、汇编语言代码、目标代码、或者被一个或多个处理器解释或以其他方式执行的其他指令格式。
[0088]
应当注意,并非以上在一般描述中描述的所有活动或元件都是必需的,特定活动或设备的一部分可能不是必需的,并且可以执行一个或多个另外的活动,或者除了所描述的那些之外还包括元件。更进一步地,列出活动的顺序不一定是执行它们的顺序。另外,已经参考具体实施方案描述了这些概念。然而,本领域普通技术人员理解,在不脱离如以下权利要求中阐述的本公开的范围的情况下,可以进行各种修改和改变。因此,说明书和附图被认为是说明性的而非限制性的,并且所有此类修改旨在被包括在本公开的范围内。
[0089]
上文已经关于具体实施方案描述了益处、其他优点和问题的解决方案。然而,益处、优点、问题的解决方案以及可以导致任何益处、优点或解决方案出现或变得更显著的任何特征不应被解释为任何或所有权利要求的关键的、必需的或基本的特征。此外,上文公开的特定实施方案仅是说明性的,因为所公开的主题可以以受益于本文中的教导内容的本领域的技术人员显而易见的不同但等效的方式来修改和实践。除了以下权利要求书中所描述的之外,不旨在对本文所示的构造或设计的细节进行限制。因此,显而易见的是,可以改变或修改上文公开的特定实施方案,并且所有此类变化被认为是在所公开的主题的范围内。因此,本文寻求的保护如以下权利要求中所阐述。

技术特征:
1.一种装置,包括:图形管线,所述图形管线被配置为执行第一类型的第一着色器和第二类型的第二着色器;至少一个缓冲器,所述至少一个缓冲器被配置为保持由所述第一着色器生成的图元并且向所述第二着色器提供所述图元;和图元集线器,所述图元集线器被配置为监测所述至少一个缓冲器的至少一个充溢度,其中基于所述至少一个充溢度来限制波从所述第一着色器的发射。2.根据权利要求1所述的装置,其中所述第一着色器是几何着色器,其中所述第二着色器是像素着色器,并且其中所述至少一个缓冲器是先入先出(fifo)缓冲器。3.根据权利要求2所述的装置,还包括:计数器,所述计数器被配置为指示死周期的数量;和着色器处理器输入(spi),所述spi被配置为基于所述计数器来选择性地限制由所述几何着色器发射的波。4.根据权利要求3所述的装置,其中所述图元集线器被配置为向所述spi提供指示所述至少一个充溢度的反馈信号,并且其中基于所述反馈信号来确定死周期的第一数量。5.根据权利要求4所述的装置,其中所述spi被配置为确定以下中的至少一者:到飞行中的几何着色器波和飞行中的像素着色器波的本地数据存储(lds)资源的第一相对分配以及到所述飞行中的几何着色器波和所述飞行中的像素着色器波的向量通用寄存器(vgpr)的第二相对分配。6.根据权利要求5所述的装置,其中所述spi被配置为通过将所述第一相对分配与第一阈值进行比较、将所述第二相对分配与第二阈值进行比较或它们的组合,来确定死周期的第二数量。7.根据权利要求6所述的装置,其中所述spi被配置为确定由所述几何着色器发射的至少一个波的至少一个寿命,并且基于将所述至少一个寿命与至少一个第三阈值进行比较来确定死周期的第三数量。8.根据权利要求7所述的装置,其中基于死周期的所述第一数量、所述第二数量和所述第三数量中的至少一者来使所述计数器递增,并且其中所述计数器在每个时钟周期处递减。9.根据权利要求8所述的装置,其中所述几何着色器响应于具有预定值的所述计数器来发射波。10.一种方法,包括:在图形管线上执行第一类型的第一着色器和第二类型的第二着色器;在所述图形管线中的图元集线器处监测至少一个缓冲器的至少一个充溢度,所述至少一个缓冲器被配置为保持由所述第一着色器生成的图元并且向所述第二着色器提供所述图元;以及基于所述至少一个充溢度来选择性地限制从所述第一着色器发射的波。11.根据权利要求10所述的方法,其中所述第一着色器是几何着色器,其中所述第二着色器是像素着色器,并且其中所述至少一个缓冲器是先入先出(fifo)缓冲器。12.根据权利要求11所述的方法,还包括:
修改计数器以指示死周期的数量;以及基于所述计数器来在着色器处理器输入(spi)处选择性地限制由所述几何着色器发射的所述波。13.根据权利要求12所述的方法,还包括:从所述图元集线器向所述spi提供反馈信号,以指示所述至少一个充溢度;以及基于所述反馈信号来确定死周期的第一数量。14.根据权利要求13所述的方法,还包括:在所述spi处确定以下中的至少一者:到飞行中的几何着色器波和飞行中的像素着色器波的本地数据存储(lds)资源的第一相对分配以及到所述飞行中的几何着色器波和所述飞行中的像素着色器波的向量通用寄存器(vgpr)的第二相对分配。15.根据权利要求14所述的方法,还包括:通过将所述第一相对分配与第一阈值进行比较、将所述第二相对分配与第二阈值进行比较或它们的组合,来在所述spi处确定死周期的第二数量。16.根据权利要求15所述的方法,还包括:在所述spi处确定由所述几何着色器发射的至少一个波的至少一个寿命;以及基于将所述至少一个寿命与至少一个第三阈值进行比较来在所述spi处确定死周期的第三数量。17.根据权利要求16所述的方法,还包括:基于死周期的所述第一数量、所述第二数量和所述第三数量中的至少一者来使所述计数器递增,并且其中所述计数器在每个时钟周期处递减。18.根据权利要求17所述的方法,其中选择性地限制由所述几何着色器发射的所述波包括:响应于具有预定值的所述计数器来从所述几何着色器发射波。19.一种装置,包括:图元集线器,所述图元集线器被配置为监测至少一个缓冲器的至少一个充溢度,所述至少一个缓冲器被配置为保持由几何着色器生成的图元并且向图形管线中的像素着色器提供所述图元;和着色器处理器输入(spi),所述spi被配置为基于以下中的至少一者来选择性地对由所述几何着色器发射的波进行限制:来自所述图元集线器的指示所述至少一个充溢度的信号、所述图形管线中的几何波和像素波的相对资源用量的指示以及所述几何波的寿命的指示。20.根据权利要求19所述的装置,其中来自所述图元集线器的所述信号包括两个位,所述两个位具有映射到所述至少一个充溢度的不同范围的值。

技术总结
一种处理系统[100],包括执行第一类型的第一着色器[226]和第二类型的第二着色器[234]的图形管线[200]。在一些情况下,该第一着色器是几何着色器并且该第二着色器是像素着色器。该处理系统还包括缓冲器[415],该缓冲器保持由该第一着色器生成的图元并且向该第二着色器提供该图元。该处理系统还包括监测该缓冲器的充溢度的图元集线器[325]。基于该缓冲器的该充溢度来限制波从该第一着色器的发射。着色器处理器输入(SPI)[303]基于来自该图元集线器的指示该充溢度的信号、该图形管线中的几何波和像素波的相对资源用量的指示或该几何波的寿命的指示,来选择性地对由该几何着色器发射的该波进行限制。色器发射的该波进行限制。色器发射的该波进行限制。


技术研发人员:尼尚克
受保护的技术使用者:超威半导体公司
技术研发日:2021.12.14
技术公布日:2023/9/7
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐