CN117058288A - 图形处理器及方法、多核图形处理***、电子装置及设备 - Google Patents
图形处理器及方法、多核图形处理***、电子装置及设备 Download PDFInfo
- Publication number
- CN117058288A CN117058288A CN202210490158.6A CN202210490158A CN117058288A CN 117058288 A CN117058288 A CN 117058288A CN 202210490158 A CN202210490158 A CN 202210490158A CN 117058288 A CN117058288 A CN 117058288A
- Authority
- CN
- China
- Prior art keywords
- block
- graphics
- core
- primitives
- processing system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 168
- 238000003672 processing method Methods 0.000 claims abstract description 21
- 238000000638 solvent extraction Methods 0.000 claims abstract description 14
- 238000000034 method Methods 0.000 claims description 21
- 238000009877 rendering Methods 0.000 description 22
- 230000008569 process Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 9
- 238000012360 testing method Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000004075 alteration Effects 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000002674 ointment Substances 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Image Generation (AREA)
Abstract
本公开提供一种图形处理器、图形处理方法、多核图形处理***、电子装置及电子设备。其图形处理器包括:几何处理模块,被配置为:对分配给本图形处理器的图元进行几何处理;图块划分模块,被配置为:对分配给本图形处理器的图元进行图块划分处理,将得到的各个图块的图块信息分别保存至本图形处理器对应的各个图块的第一图块列表,各个图块的第一图块列表的索引分别保存在各个图块的第二图块列表中,图块的第二图块列表中保存有所述图块在所述多核图形处理***的多个图形处理器对应的第一图块列表的索引。
Description
技术领域
本公开涉及GPU(Graphics Processing Unit,图形处理器)技术领域,尤其涉及一种图形处理器、多核图形处理***、电子装置、电子设备及图形处理方法。
背景技术
GPU被广泛用于个人电脑、工作站、服务器、嵌入式***、电子游戏机等解决方案中。由于GPU被设计为高度并行的架构,使得其比通用处理器CPU(Central ProcessingUnit,中央处理器)在大的并行处理算法上更具有优势,对图形处理十分高效。
多核图形处理***(又称多核GPU)是指通过多个GPU(又称GPU核心)共同实现图形处理功能的GPU产品。多核图形处理***中的每个GPU具有相同的、完整的GPU功能。
基于图块(Tile-based)的GPU图形处理的典型流程可分为Host端(主机端)处理、几何处理、图块划分、光栅化和像素处理几个阶段。
现有采用基于图块(Tile-based)的渲染架构的多核GPU,在像素处理之前的渲染操作需要在主核内完成,在确定了图元的图块(tile)划分后,多个GPU核心再分别处理分配给自己的图块,进行光栅化及像素处理。
当前的渲染过程难以充分利用多核心的优势,通过多核并行化实现几何处理和图块划分。
发明内容
本公开的目的是提供一种图形处理器、多核图形处理***、电子装置、电子设备、及图形处理方法,实现多核并行化进行几何处理和图块划分。
根据本公开的一个方面,提供一种图形处理器,应用于多核图形处理***,该图形处理器至少包括:
几何处理模块,被配置为:对分配给本图形处理器的图元进行几何处理;
图块划分模块,被配置为:对分配给本图形处理器的图元进行图块划分处理,将得到的各个图块的图块信息分别保存至本图形处理器对应的各个图块的第一图块列表,各个图块的第一图块列表的索引分别保存在各个图块的第二图块列表中,图块的第二图块列表中保存有该图块在多核图形处理***的多个图形处理器对应的第一图块列表的索引。
若图形处理器为多核图形处理***中的主核心,图形处理器还可以包括图元分配模块,其被配置为:将图像帧中的图元分配给多核图形处理***中的多个图形处理器。
在上述任意图形处理器实施例的基础上,将图像帧中的图元分配给多核图形处理***中的多个图形处理器,其具体实现方式可以包括:将图像帧中的图元按照预定规则分组,并按照预定的负载均衡策略将各组图元分配给多核图形处理***中的多个图形处理器。
在上述任意图形处理器实施例的基础上,几何处理模块可以包括图元分配子模块和多个几何处理子模块。其中,图元分配子模块被配置为:将分配给本图形处理器的图元分配给多个几何处理子模块;几何处理子模块被配置为:对分配给本几何处理子模块的图元进行几何处理。
在上述任意图形处理器实施例的基础上,图块划分模块还可以被配置为:
将各个图块的第一图块列表的索引分别保存到各个图块的第二图块列表。
根据本公开的另一方面,还提供一种图形处理***,该多核图形处理***包括至少两个图形处理器,每个图形处理器被配置为:
对分配给本图形处理器的图元进行几何处理;
对分配给本图形处理器的图元进行图块划分处理,将得到的各个图块的图块信息分别保存至本图形处理器对应的各个图块的第一图块列表,各个图块的第一图块列表的索引分别保存在各个图块的第二图块列表中,图块的第二图块列表中保存有该图块在上述至少两个图形处理器的第一图块列表中的索引。
多核图形处理***的至少两个图形处理器中,一个图形处理器为主核心,其他图形处理器为从核心。其中,主核心还可以被配置为:将图像帧中的图元分配给多核图形处理***中的多个图形处理器。
进一步的,将图像帧中的图元分配给多核图形处理***中的多个图形处理器,其具体实现方式可以包括:将图像帧中的图元按照预定规则分组,并按照预定的负载均衡策略将各组图元分配给多核图形处理***中的多个图形处理器。
在上述任意多核图形处理***实施例基础上,对分配给本图形处理器的图元进行几何处理,其具体实现方式可以包括:并行对分配给本图形处理器的图元进行几何处理。并行几何处理的具体实现方式可以参照上述图形处理器的实施例,本公开对此不作限定。
在上述任意多核图形处理***实施例基础上,每个图形处理器还可以被配置为:将各个图块的第一图块列表的索引分别保存到各个图块的第二图块列表。
根据本公开的另一方面,还提供一种电子装置,该电子装置包括上述任一实施例中所述的多核图形处理***。在一些使用场景下,该电子装置的产品形式体现为显卡;在另一些使用场景下,该电子装置的产品形式体现为CPU主板。
根据本公开的另一方面,还提供一种电子设备,该电子设备包括上述的电子装置。在一些使用场景下,该电子设备的产品形式是便携式电子设备,例如智能手机、平板电脑、VR设备等;在一些使用场景下,该电子设备的产品形式是个人电脑、游戏主机等。
根据本公开的另一方面,还提供一种图形处理方法,应用于多核图形处理***中的图形处理器,该图形处理方法至少包括如下操作:
对分配给本图形处理器的图元进行几何处理;
对分配给本图形处理器的图元进行图块划分处理,将得到的各个图块的图块信息分别保存至本图形处理器对应的各个图块的第一图块列表,各个图块的第一图块列表的索引分别保存在各个图块的第二图块列表中,图块的第二图块列表中保存有该图块在多核图形处理***的多个图形处理器的第一图块列表的索引。
若本图形处理器为多核图形处理***中的主核心,上述图形处理方法还可以包括:将图像帧中的图元分配给多核图形处理***中的多个图形处理器。
进一步的,将图像帧中的图元分配给多核图形处理***中的多个图形处理器,其具体实现方式可以包括:将图像帧中的图元按照预定规则分组,并按照预定的负载均衡策略将各组图元分配给多核图形处理***中的多个图形处理器。
在上述任意图形处理方法实施例的基础上,对分配给本图形处理器的图元进行几何处理,其具体实现方式可以包括:并行对分配给本图形处理器的图元进行几何处理。
在上述任意图形处理方法实施例的基础上,图形处理方法还可以包括:将各个图块的第一图块列表的索引分别保存到各个图块的第二图块列表。
附图说明
图1为本公开一个实施例的第一图块列表及图元数据结构示意图;
图2为本公开一个实施例提供的第二图块列表结构示意图;
图3为本公开一个实施例提供的并行几何处理和图块划分流程示意图;
图4为本公开一个实施例的基于多核GPU架构的图形处理***结构示意图;
图5为本公开一个实施例的图形处理方法流程示意图。
具体实施方式
在介绍本公开实施例之前,应当说明的是:
本公开部分实施例被描述为处理流程,虽然流程的各个操作步骤可能被冠以顺序的步骤编号,但是其中的操作步骤可以被并行地、并发地或者同时实施。
本公开实施例中可能使用了术语“第一”、“第二”等等来描述各个特征,但是这些特征不应当受这些术语限制。使用这些术语仅仅是为了将一个特征与另一个特征进行区分。
本公开实施例中可能使用了术语“和/或”,“和/或”包括其中一个或更多所列出的相关联特征的任意和所有组合。
应当理解的是,当描述两个部件的连接关系或通信关系时,除非明确指明两个部件之间直接连接或直接通信,否则,两个部件的连接或通信可以理解为直接连接或通信,也可以理解为通过中间部件间接连接或通信。
为了使本公开实施例中的技术方案及优点更加清楚明白,以下结合附图对本公开的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本公开的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
由于图块划分需要集中处理,相应的图块信息需要集中存储,导致光栅化之前的GPU操作需要在主核内完成。在确定了图元的图块划分后,多个GPU核心再分别处理分配给自己的图块。由于未能克服图块信息集中存储的问题,因此现有技术中现有对几何处理和图块划分过程进行多核心并行处理。
本公开的目的是提供一种在采用基于图块的渲染架构的多核图形处理***中多核并行实现几何处理和图块划分的实现方案。其中,图形处理***中的多核是指多个GPU,GPU是指通过硬件实现、具有计算功能的处理器,其包括计算单元、缓存等等组成部件,可以是GPGPU(general-purpose graphics processing unit,通用图形处理器),也可以是GPU。
本公开的一个实施例提供一种图形处理器,应用于多核图形处理***,适用于基于图块的渲染架构,例如,TBR(Tile Based Render,基于图块的渲染)、TBDR(Tile BasedDeferred Rendering,基于图块的延迟渲染)等。
上述图形处理器至少包括几何处理模块和图块划分模块。
其中,几何处理模块被配置为:对分配给本图形处理器的图元进行几何处理。
几何处理模块通常采用定制硬件及至少一个可编程着色器实现,但本公开对此不作限定。实际应用中,也可以采用定制硬件实现几何处理功能。
其中,图块划分模块被配置为:对分配给本图形处理器的图元进行图块划分处理,将得到的各个图块的图块信息分别保存至本图形处理器对应的各个图块的第一图块列表,各个图块的第一图块列表的索引分别保存在各个图块的第二图块列表中,图块的第二图块列表中保存有该图块在多核图形处理***的多个图形处理器对应的第一图块列表的索引。
图块划分处理包括:确定每个图块覆盖的图元(primitive)。图形处理器将图块划分处理后确定的每个图块覆盖的图元的图元索引保存到本图形处理器对应的第一图块列表,以便执行后续渲染过程的模块(例如光栅化模块)根据图块所覆盖的图元的图元索引读取图块所覆盖的图元的图元信息。
其中,图块划分处理后确定的每个图块覆盖的图元的图元索引即图块划分处理后得到的每个图块的图块信息。
其中,第一图块列表可以但不仅限于保存在***内存中。
其中,图元信息在几何阶段生成,图元信息中包括图元的顶点属性信息(例如顶点颜色、顶点坐标等)和图元的基本信息(如图元标识等)。
作为举例而非限定,如图1所示,在一些实施例中,保存图元信息的数据结构为图元块(primitive block),每个图元块包括多个图元的图元信息。每个图块对应一个第一图块列表,每个第一图块列表中包括对应图块所覆盖的图元的图元索引,图元索引指示了图元的图元信息的存储地址。例如,第一图块Tile0覆盖了四个图元,这四个图元分别为:图元1-0、图元1-1、图元2-0和图元3-1。其中,图元1-0的图元信息为第一图元块中的图元信息0,图元1-1的图元信息为第一图元块中的图元信息1,图元2-0的图元信息为第二图元块中的图元信息0,图元3-1的图元信息为第三图元块中的图元信息1。那么,第一图块Tile0对应的图块列表中包括图元1-0的图元索引(在本实施例中,图元1-0的图元索引为第一图元块中的图元信息0的存储地址),图元1-1的图元索引(在本实施例中,图元1-1的图元索引为第一图元块中的图元信息1的存储地址),图元2-0的图元索引(在本实施例中,图元2-0的图元索引为第二图元块中的图元信息0的存储地址),和图元3-1的图元索引(在本实施例中,图元3-1的图元索引为第三图元块中的图元信息1的存储地址)。又例如,第一图块Tile1覆盖了三个图元,这三个图元分别为:图元1-1、图元2-0和图元3-0。其中,图元1-1和图元2-0的相关介绍可参照上述描述,此处不再赘述。图元3-0的图元信息为第三图元块中的图元信息0。那么,第一图块Tile1对应的第一图块列表中包括图元1-1的图元索引,图元2-0的图元索引和图元3-0的图元索引(在本实施例中,图元3-0的图元索引为第三图元块中的图元信息0的存储地址)。
实际应用中,还可以利用图元标识作为图元索引。
通过上述描述可知,各个图形处理器处理得到的各个图块的图块信息分别保存在各自对应的第一图块列表中,属于分散保存方式。但以图块为单位的渲染阶段(例如光栅化),需要一次读取一个图块覆盖的所有图元的图元信息。为了在图块信息分散保存的前提下能够一次读取一个图块覆盖的所有图元的图元信息,本公开采用二级tile-list的图块信息存储结构。即,图元索引分散保存在各个图形处理器对应的第一图块列表中,在第二图块列表中集中保存各个第一图块列表中的图元索引的索引。相应的,以图块为单位的渲染阶段(例如光栅化),可以从第二图块列表中读取图元索引的索引,索引到第一图块列表,进而索引到对应的图元信息。
为简化说明,以划分4个图块为例,假设图形处理***中有N个图形处理器参与几何处理及图块划分,如图2所示,一个图块的第二图块列表中保存该图块在各个图形处理器对应的第一图块列表的索引。例如,第一图块Tile0的第二图块列表中保存有图形处理器Core0对应的第一图块Tile0的第一图块列表Core0 tile-list0的指针,图形处理器Core1对应的第一图块Tile0的第一图块列表Core1 tile-list0的指针,以此类推,直至图形处理器CoreN对应的第一图块Tile0的第一图块列表CoreN tile-list0的指针;第二图块Tile1的第二图块列表中保存有图形处理器Core0对应的第二图块Tile1的第一图块列表Core0tile-list1的指针,图形处理器Core1对应的第二图块Tile1的第一图块列表Core1 tile-list1的指针,以此类推,直至图形处理器CoreN对应的第二图块Tile1的第一图块列表CoreN tile-list1的指针;第三图块Tile2的第二图块列表中保存有图形处理器Core0对应的第三图块Tile2的第一图块列表Core0 tile-list2的指针,图形处理器Core1对应的第三图块Tile2的第一图块列表Core1 tile-list2的指针,以此类推,直至图形处理器CoreN对应的第三图块Tile2的第一图块列表CoreN tile-list2的指针;第四图块Tile3的第二图块列表中保存有图形处理器Core0对应的第四图块Tile3的第一图块列表Core0 tile-list3的指针,图形处理器Core1对应的第四图块Tile3的第一图块列表Core1tile-list3的指针,以此类推,直至图形处理器CoreN对应的第四图块Tile3的第一图块列表CoreN tile-list3的指针。
以上仅以指针作为索引为例进行说明,实际应用中,本公开不限定索引的具体实现形式。
以上以在第二图块列表中按图形处理器编号顺序存储图块的各个第一图块列表索引为例进行说明,实际应用中,还可以按照其他顺序存储图块的各个第一图块列表索引,本公开对此不作限定。
采用上述的二级tile-list存储结构,以图块为单位的后续渲染阶段(例如光栅化)仍然可以对每个图块寻址到唯一的第二图块列表,但每个第二图块列表由下一级的第一图块列表的索引构成。
本公开实施例中,可以但不仅限于由主核心在确定各个图形处理单元的图块划分模块均完成图块划分后,将第二图块列表的存储地址发送给以图块为单位的后续渲染模块(例如光栅化模块),以便后续渲染模块根据该存储地址逐块从每个第二图块列表中读取各个第一图块列表的索引,进而根据各个第一图块列表的索引读取图元的图元索引,进而根据图元的图元信息索引读取到图元信息。
在上述任意图形处理器实施例的基础上,图形处理器还可以包括图元分配模块,其被配置为:将图像帧中的图元分配给多核图形处理***中的多个图形处理器。当图形处理器作为主核心时,其图元分配模块工作,当图形处理器作为从核心时,其图元分配模块不工作。
应当指出的是,图元分配也可以由图形处理***中的其他模块实现,作为举例而非限定,还可以由图形处理***中的应用处理器实现各个图形处理器的图元分配。
本公开不对图元分配策略进行限定。实际应用中,可以根据需要或实际情况制定图元分配策略。作为举例而非限定,可以采用轮询的方式分配图元,也可以采用预设的负载均衡策略分配图元。
在一些实施例中,可以将图像帧中的图元按照预定规则分组,并按照预定的负载均衡策略将各组图元分配给多核图形处理***中的多个图形处理器。
本公开实施例中,所谓分配图元,可以但不仅限于是将分配给某个图形处理器的图元对应的顶点数据发送给该图形处理器。
在一些实施例中,几何处理可以通过多条几何流水线并行处理,也就是说,一个图形处理器中具有多条几何流水线。相应的,在上述任意图形处理器实施例的基础上,几何处理模块可以包括图元分配子模块和多个几何处理子模块。其中,图元分配子模块被配置为:将分配给本图形处理器的图元分配给多个几何处理子模块;几何处理子模块被配置为:对分配给本几何处理子模块的图元进行几何处理。
相应的,如图3所示,主核心对图元进行一级分配,各个图形处理器(包括主核心和从核心)对分配到的图元再次进行图元分配,将分配给本图形处理器的图元分配给本图形处理器中的多条几何流水线(对应几何处理子模块),多条几何流水线并行进行几何处理后,各个图形处理器分别对分配给本图形处理器的图元进行图块划分。
通过图3所示的并行几何处理和图块划分,可以充分发挥多核心的并行优势,提高图形处理性能。
其中,图元分配子模块的实现描述可以参照上述图元分配模块的描述,此处不再赘述。实际应用中,可采用现有实现方式或实现原理实现图元分配子模块的功能。
本公开实施例不对几何处理的具体实现方式进行限定,可采用现有几何处理实现方式实现。
在上述任意图形处理器实施例的基础上,第二图块列表可以是预先配置好的,各个第一图块列表的索引是固定的。第二图块列表中各个第一图块列表的索引也可以是动态变化的,那么,图块划分模块还可以被配置为:将各个图块的图块信息在第一图块列表中的索引保存到第二图块列表中各个图块的图块信息中。
本公开实施例还提供一种基于图块的渲染架构的多核图形处理***,该图形处理***包括至少两个图形处理器,其中每个图形处理器所实现的功能可以参照上述任一图形处理器实施例的描述。
本公开实时提供的多核图形处理***,几何处理阶段和图块划分阶段充分发货多核心的并行度优势,更好地实现性能扩展和提升。
本公开实施例中,图形处理***的产品形态可以为SOC(System on Chip,片上***)芯片。
本公开实施例中的图形处理***可以是单die(晶片)SOC芯片,也可以是多die互联的SOC芯片。
下面以一个die为例,对本公开提供的图形处理***的架构及工作原理进行说明。
在图4所示的一个实施例中,单die的图形处理***包括多个GPU核(GPU Core),该GPU核即上述的图形处理器,其中一个GPU核作为主核心,其他GPU核作为从核心。
GPU核用来处理绘图的指令,根据绘图指令,执行图像渲染的Pipeline,还可以用来执行其他运算指令。GPU核中进一步包括:计算单元,用于执行着色器编译后的指令,属于可编程模块,由大量的ALU组成;缓存(Cache),用于GPU核数据的缓存,以减少对内存的访问;光栅化模块,3D渲染管线的一个固定的阶段,进一步包括图元信息计算模块和像素信息处理模块;图块划分(Tilling)模块,TBR和TBDR GPU架构中对一帧进行图块划分处理;裁剪模块,3D渲染管线的一个固定的阶段,裁剪掉观察范围外,或者背面不显示的图元;后处理模块,用于对画完的图进行缩放,裁剪,旋转等操作;微核(Micro core),用于GPU核上各个管线硬件模块之间的调度,或者用于多GPU核的任务调度。
GPU核连接到片上网络。其中,片上网络用于图形处理***上各个主(master)和从(salve)之间的数据交换,本实施例中,片上网络包括配置总线、数据通信网络、通信总线等等。
如图4所示,图形处理***还可以包括:
通用DMA(Direct Memory Access,直接存储器访问),用于执行主机端到图形处理***内存(例如显卡内存)之间的数据搬移,例如,通过DMA将3D画图的顶点(vertex)数据从主机端搬到图形处理***内存;
PCIe控制器,用于和主机通信的接口,实现PCIe协议,使图形处理***通过PCIe接口连接到主机上,主机上运行了图形API以及显卡的驱动等程序;
应用处理器,用于图形处理***上各个模块任务的调度,例如GPU渲染完一帧图后通知应用处理器,应用处理器再启动显示控制器将GPU画完的图显示到屏幕上;
内存控制器,用于连接内存设备,用于保存SOC上的数据;
显示控制器,控制将内存里的frame buffer以显示接口(HDMI,DP等)输出到显示器上;
视频解码,可以将主机硬盘上的编码的视频解码成能显示的画面;
视频编码,可以将主机硬盘上原始的视频码流编码成指定的格式返回给主机。
基于图4所示的多核图形处理***架构,在一个实施例中,图形渲染过程如下:
主机的图形API(实际应用中,对于移动端的图形处理***,也可以由应用处理器上的软件)向SOC芯片发送绘图指令,要求对图像帧进行渲染。
其中,图像帧中包括至少一个物体。
通用DMA将图像帧中各个物体的顶点坐标信息从主机端搬运至图形处理***内存。
主核心的计算单元获取上述绘图指令后,对该绘图指令进行译码。
主核心的图元分配模块(由计算单元实现其功能)按照预定的分配策略,将图像帧中的图元分配给包括主核心在内的多个GPU核。
各个GPU核的图元分配子模块(由计算单元实现其功能)将分配给本GPU核的图元分配给本GPU核的多条几何流水线;各条几何流水线并行进行几何处理:顶点着色器(由计算单元实现其功能)从***内存中获取分配给本GPU核的图元对应的顶点坐标信息,并将顶点坐标信息传输给几何着色器(由计算单元实现其功能),几何着色器将顶点的3D坐标转换为展开的纹理坐标(即(u,v)坐标)。另外,计算单元还根据顶点坐标信息进行图元装配。其中,纹理图中顶点坐标对应的纹理坐标处的取值为顶点颜色信息。
图元的顶点坐标信息和顶点纹理坐标被保存到图元在***内存中的数据结构中。
几何处理结束后,各个GPU核的图块划分模块根据深度缓冲区尺寸对图像帧中的图元进行图块划分处理,并将图块划分处理结果以第一图块列表保存,第一图块列表中包括图块覆盖的图元的图元索引,如图1所示,图元索引指示了图元的图元信息的存储地址。
当一帧要显示的所有物体都已完成图块划分,那么会启动光栅化过程。
根据延迟渲染的要求,光栅化模块逐个图块进行处理,每次从当前图块的第二图块列表中读取各个GPU核对应的当前图块的第一图块列表的索引,并根据第一图块列表的索引读取第一图块列表中保存的图元索引(图元标识或图元信息存储地址);光栅化模块通过图元索引读取该图元的图元信息,并利用该图元的图元信息进行像素覆盖测试,以确定该图元覆盖的像素,然后进行像素插值计算及至少一项像素测试(作为举例而非限定,像素测试可以包括深度测试、模板测试等)。
本公开中,采用现有技术实现像素覆盖测试、像素插值计算及像素测试。
经过光栅化处理,输出像素的信息。
当一帧所有的第一图块都完成了光栅化,那么将调用像素处理过程。
具体的,GPU核的片段着色器(由计算单元实现其功能)以图块为单位,逐块根据图元覆盖像素的纹理坐标执行对应像素的着色计算(例如光照计算)。
本公开实施例还提供一种电子装置,该电子装置包括上述任一实施例中所述的图形处理***。在一些使用场景下,该电子装置的产品形式体现为显卡;在另一些使用场景下,该电子装置的产品形式体现为CPU主板。
本公开实施例还提供一种电子设备,该电子设备包括上述的电子装置。在一些使用场景下,该电子设备的产品形式是便携式电子设备,例如智能手机、平板电脑、VR设备等;在一些使用场景下,该电子设备的产品形式是个人电脑、游戏主机、工作站、服务器等。
基于相同的发明构思,本公开实施例还提供一种图形处理方法,该方法应用于多核图形处理***中的图形处理器,如图5所示,该方法至少包括如下操作:
步骤501、对分配给本图形处理器的图元进行几何处理;
步骤502、对分配给本图形处理器的图元进行图块划分处理,将得到的各个图块的图块信息分别保存至本图形处理器对应的各个图块的第一图块列表,各个图块的第一图块列表的索引分别保存在各个图块的第二图块列表中,图块的第二图块列表中保存有该图块在多核图形处理***的多个图形处理器的第一图块列表的索引。
若本图形处理器为多核图形处理***中的主核心,上述图形处理方法还可以包括:将图像帧中的图元分配给多核图形处理***中的多个图形处理器。
进一步的,将图像帧中的图元分配给多核图形处理***中的多个图形处理器,其具体实现方式可以包括:将图像帧中的图元按照预定规则分组,并按照预定的负载均衡策略将各组图元分配给多核图形处理***中的多个图形处理器。
在上述任意图形处理方法实施例的基础上,对分配给本图形处理器的图元进行几何处理,其具体实现方式可以包括:并行对分配给本图形处理器的图元进行几何处理。
在上述任意图形处理方法实施例的基础上,图形处理方法还可以包括:将各个图块的第一图块列表的索引分别保存到各个图块的第二图块列表。
应当指出的是,上述图形处理方法与上述图形处理器基于同样的发明构思。因此,方法中各个步骤的具体实现方式及涉及到的名词解释可以参照上述实施例的描述,此处不再赘述。
尽管已描述了本公开的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开范围的所有变更和修改。
显然,本领域的技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。
Claims (17)
1.一种图形处理器,应用于多核图形处理***,所述图形处理器至少包括:
几何处理模块,被配置为:对分配给本图形处理器的图元进行几何处理;
图块划分模块,被配置为:对分配给本图形处理器的图元进行图块划分处理,将得到的各个图块的图块信息分别保存至本图形处理器对应的各个图块的第一图块列表,各个图块的第一图块列表的索引分别保存在各个图块的第二图块列表中,图块的第二图块列表中保存有所述图块在所述多核图形处理***的多个图形处理器对应的第一图块列表的索引。
2.根据权利要求1所述的图形处理器,若所述图形处理器为所述多核图形处理***中的主核心,所述图形处理器还包括图元分配模块,所述图元分配模块被配置为:将图像帧中的图元分配给所述多核图形处理***中的多个图形处理器。
3.根据权利要求2所述的图形处理器,所述将图像帧中的图元分配给所述多核图形处理***中的多个图形处理器,包括:将所述图像帧中的图元按照预定规则分组,并按照预定的负载均衡策略将各组图元分配给所述多核图形处理***中的多个图形处理器。
4.根据权利要求1至3任一项所述的图形处理器,所述几何处理模块包括图元分配子模块和多个几何处理子模块;
所述图元分配子模块被配置为:将分配给本图形处理器的图元分配给所述多个几何处理子模块;
所述几何处理子模块被配置为:对分配给本几何处理子模块的图元进行几何处理。
5.根据权利要求1至3任一项所述的图形处理器,所述图块划分模块还被配置为:
将所述各个图块的第一图块列表的索引分别保存到各个图块的第二图块列表。
6.一种多核图形处理***,所述多核图形处理***包括至少两个图形处理器,每个图形处理器被配置为:
对分配给本图形处理器的图元进行几何处理;
对分配给本图形处理器的图元进行图块划分处理,将得到的各个图块的图块信息分别保存至本图形处理器对应的各个图块的第一图块列表,各个图块的第一图块列表的分别索引保存在各个图块的第二图块列表中,图块的第二图块列表中保存有所述图块在所述至少两个图形处理器对应的第一图块列表中的索引。
7.根据权利要求6所述的多核图形处理***,所述至少两个图形处理器中,一个图形处理器为主核心,其他图形处理器为从核心;
所述主核心还被配置为:将图像帧中的图元分配给所述多核图形处理***中的多个图形处理器。
8.根据权利要求7所述的多核图形处理***,所述将图像帧中的图元分配给所述多核图形处理***中的多个图形处理器,包括:将所述图像帧中的图元按照预定规则分组,并按照预定的负载均衡策略将各组图元分配给所述多核图形处理***中的多个图形处理器。
9.根据权利要求6至8任一项所述的多核图形处理***,所述对分配给本图形处理器的图元进行几何处理,包括:并行对分配给本图形处理器的图元进行几何处理。
10.根据权利要求6至8任一项所述的多核图形处理***,所述每个图形处理器还被配置为:将所述各个图块的第一图块列表的索引分别保存到各个图块的第二图块列表。
11.一种电子装置,包括权利要求6至10任一项所述的多核图形处理***。
12.一种电子设备,包括权利要求11所述的电子装置。
13.一种图形处理方法,应用于多核图形处理***中的图形处理器,所述图形处理方法至少包括:
对分配给本图形处理器的图元进行几何处理;
对分配给本图形处理器的图元进行图块划分处理,将得到的各个图块的图块信息分别保存至本图形处理器对应的各个图块的第一图块列表,各个图块的第一图块列表的索引分别保存在各个图块的第二图块列表中,图块的第二图块列表中保存有所述图块在所述多核图形处理***的多个图形处理器的第一图块列表的索引。
14.根据权利要求13所述的图形处理方法,若本图形处理器为所述多核图形处理***中的主核心,所述方法还包括:
将图像帧中的图元分配给所述多核图形处理***中的多个图形处理器。
15.根据权利要求14所述的图形处理方法,所述将图像帧中的图元分配给所述多核图形处理***中的多个图形处理器,包括:将所述图像帧中的图元按照预定规则分组,并按照预定的负载均衡策略将各组图元分配给所述多核图形处理***中的多个图形处理器。
16.根据权利要求13至15任一项所述的图形处理方法,所述对分配给本图形处理器的图元进行几何处理,包括:并行对分配给本图形处理器的图元进行几何处理。
17.根据权利要求13至15任一项所述的图形处理方法,所述方法还包括:
将所述各个图块的第一图块列表的索引分别保存到各个图块的第二图块列表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210490158.6A CN117058288A (zh) | 2022-05-07 | 2022-05-07 | 图形处理器及方法、多核图形处理***、电子装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210490158.6A CN117058288A (zh) | 2022-05-07 | 2022-05-07 | 图形处理器及方法、多核图形处理***、电子装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117058288A true CN117058288A (zh) | 2023-11-14 |
Family
ID=88666851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210490158.6A Pending CN117058288A (zh) | 2022-05-07 | 2022-05-07 | 图形处理器及方法、多核图形处理***、电子装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117058288A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117252751A (zh) * | 2023-11-17 | 2023-12-19 | 摩尔线程智能科技(北京)有限责任公司 | 几何处理方法、装置、设备及存储介质 |
CN117472840A (zh) * | 2023-12-28 | 2024-01-30 | 摩尔线程智能科技(北京)有限责任公司 | 多核***以及用于多核***的数据处理的方法 |
CN117934260A (zh) * | 2024-03-25 | 2024-04-26 | 摩尔线程智能科技(北京)有限责任公司 | 渲染方法、图块分配装置、图形处理设备及计算设备 |
CN117934260B (zh) * | 2024-03-25 | 2024-07-26 | 摩尔线程智能科技(北京)有限责任公司 | 渲染方法、图块分配装置、图形处理设备及计算设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090174706A1 (en) * | 2007-11-30 | 2009-07-09 | Howson John W | Multi-core geometry processing in a tile based rendering system |
US20140333620A1 (en) * | 2013-05-09 | 2014-11-13 | Yong-Ha Park | Graphic processing unit, graphic processing system including the same and rendering method using the same |
CN107958437A (zh) * | 2017-11-24 | 2018-04-24 | 中国航空工业集团公司西安航空计算技术研究所 | 一种多gpu大分辨率多屏图形分块并行渲染方法 |
CN110874811A (zh) * | 2018-08-29 | 2020-03-10 | 英特尔公司 | 用于多管芯/gpu图形处理的基于位置的渲染设备和方法 |
US20200104180A1 (en) * | 2018-09-28 | 2020-04-02 | Apple Inc. | Graphics Hardware Driven Pause for Quality of Service Adjustment |
-
2022
- 2022-05-07 CN CN202210490158.6A patent/CN117058288A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090174706A1 (en) * | 2007-11-30 | 2009-07-09 | Howson John W | Multi-core geometry processing in a tile based rendering system |
US20140333620A1 (en) * | 2013-05-09 | 2014-11-13 | Yong-Ha Park | Graphic processing unit, graphic processing system including the same and rendering method using the same |
CN107958437A (zh) * | 2017-11-24 | 2018-04-24 | 中国航空工业集团公司西安航空计算技术研究所 | 一种多gpu大分辨率多屏图形分块并行渲染方法 |
CN110874811A (zh) * | 2018-08-29 | 2020-03-10 | 英特尔公司 | 用于多管芯/gpu图形处理的基于位置的渲染设备和方法 |
US20200104180A1 (en) * | 2018-09-28 | 2020-04-02 | Apple Inc. | Graphics Hardware Driven Pause for Quality of Service Adjustment |
Non-Patent Citations (1)
Title |
---|
杨珂;罗琼;石教英;: "图形处理器在数据库技术中的应用", 浙江大学学报(工学版), no. 08, 15 August 2009 (2009-08-15) * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117252751A (zh) * | 2023-11-17 | 2023-12-19 | 摩尔线程智能科技(北京)有限责任公司 | 几何处理方法、装置、设备及存储介质 |
CN117252751B (zh) * | 2023-11-17 | 2024-02-13 | 摩尔线程智能科技(北京)有限责任公司 | 几何处理方法、装置、设备及存储介质 |
CN117472840A (zh) * | 2023-12-28 | 2024-01-30 | 摩尔线程智能科技(北京)有限责任公司 | 多核***以及用于多核***的数据处理的方法 |
CN117472840B (zh) * | 2023-12-28 | 2024-04-16 | 摩尔线程智能科技(北京)有限责任公司 | 多核***以及用于多核***的数据处理的方法 |
CN117934260A (zh) * | 2024-03-25 | 2024-04-26 | 摩尔线程智能科技(北京)有限责任公司 | 渲染方法、图块分配装置、图形处理设备及计算设备 |
CN117934260B (zh) * | 2024-03-25 | 2024-07-26 | 摩尔线程智能科技(北京)有限责任公司 | 渲染方法、图块分配装置、图形处理设备及计算设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10402937B2 (en) | Multi-GPU frame rendering | |
US10217183B2 (en) | System, method, and computer program product for simultaneous execution of compute and graphics workloads | |
US9293109B2 (en) | Technique for storing shared vertices | |
US11908039B2 (en) | Graphics rendering method and apparatus, and computer-readable storage medium | |
US9418616B2 (en) | Technique for storing shared vertices | |
CN117058288A (zh) | 图形处理器及方法、多核图形处理***、电子装置及设备 | |
US8195882B2 (en) | Shader complex with distributed level one cache system and centralized level two cache | |
CN110675480B (zh) | 用于获取纹理操作的采样位置的方法和装置 | |
CN112801855B (zh) | 基于图元的渲染任务调度的方法、装置及存储介质 | |
CN110807827B (zh) | ***生成稳定的重心坐标和直接平面方程访问 | |
CN111667542B (zh) | 适用于人工神经网络的用于处理压缩数据的解压缩技术 | |
US20140055465A1 (en) | Method and system for coordinated data execution using a primary graphics processor and a secondary graphics processor | |
CN103871019A (zh) | 优化三角形拓扑用于路径渲染 | |
CN111798361A (zh) | 渲染方法、装置、电子设备及计算机可读存储介质 | |
CN116263982B (zh) | 图形处理器、***、方法、电子装置及设备 | |
US9214008B2 (en) | Shader program attribute storage | |
WO2023202367A1 (zh) | 图形处理器、***、装置、设备及方法 | |
CN115375821A (zh) | 一种图像渲染方法、装置及服务器 | |
CN112801856A (zh) | 数据处理方法和装置 | |
CN116263981B (zh) | 图形处理器、***、装置、设备及方法 | |
WO2023202365A1 (zh) | 图形处理器、***、装置、设备及方法 | |
WO2023202366A1 (zh) | 图形处理器、***、电子装置、设备及图形处理方法 | |
CN116957898A (zh) | 图形处理器、***、方法、电子装置及电子设备 | |
KR102111740B1 (ko) | 영상 데이터를 처리하는 방법 및 디바이스. | |
WO2022089504A1 (zh) | 一种数据处理方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |