CN103946823A - 棋盘多gpu配置内的可缩放几何形状处理 - Google Patents
棋盘多gpu配置内的可缩放几何形状处理 Download PDFInfo
- Publication number
- CN103946823A CN103946823A CN201180074917.0A CN201180074917A CN103946823A CN 103946823 A CN103946823 A CN 103946823A CN 201180074917 A CN201180074917 A CN 201180074917A CN 103946823 A CN103946823 A CN 103946823A
- Authority
- CN
- China
- Prior art keywords
- result
- processor core
- processor cores
- core
- geometric configuration
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/52—Parallel processing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Image Generation (AREA)
Abstract
本发明描述了系统、设备和方法,包括将成批的几何对象分发到多核系统,在每一个处理器核处,对对应的成批的几何对象执行顶点处理和几何形状设置处理,将顶点处理的结果存储在可以被所有核访问的共享存储器中,并将几何形状设置处理的结果存储在本地存储中。然后,每一个特定核都可以使用从特定核内的本地存储中获取以及从其他处理器核中的至少一个的本地存储获取的几何形状设置结果,执行栅格化。
Description
背景
提供有竞争力的处理器图形子系统依赖于高效并且可缩放的图形体系结构。需要可缩放性来使用单一体系结构和有限的设计资源来支持一系列图形性能点。跨多个相同的图形核并行化图形工作负荷通常会提供这样的可缩放性。
并行图形流水线的体系结构中固有的一个问题是高效并行化流水线的几何形状处理和栅格化阶段。并行化两个阶段是需要的——假定任何一个阶段都会在处理单一帧的过程中在不同的时间成为性能瓶颈。令人遗憾的是,并行化几何形状处理最天然地需要跨图形核分布几何对象,而并行化栅格化最天然地需要跨图形核分布图像空间(例如,帧缓冲器)。然而,几何对象以及它们的图像空间占用空间之间的关联不是先验已知的。另外,几何对象需要以与它们被提交来进行几何形状处理相同的时间顺序栅格化。因此,需要以高性能/电源和性能/区域特征,并以不需要大量的软件干预的方式,跨并行栅格化流水线,组装、重新排序和分发并行几何形状处理的结果的机制。
包括多个、并行图形核并能够通过使用棋盘呈现(CheckBoardRendering:CBR)方案来进行分布式栅格化的常规图形系统,可以将目标表面(例如,帧缓冲器)细分为小的矩形区域。然后,可以将这些区域的不相重叠的规则网格子集分配给每一个图形核,以便指派所有目标表面像素。然后,图形核中的栅格化流水线可以并行地操作,以便对于每一个已栅格化的对象,栅格化流水线将只呈现(render)包含在其目标表面像素的子集内的那些像素。在当前CBR方案中,每一个图形核都对于所有提交的几何对象执行几何形状处理,将结果只传递到其内部栅格化流水线。由于在这样的常规系统中跨图形核复制几何形状处理,因此,利用图形核的数量,没有几何形状处理速率的正缩放(positive scaling)。
附图简述
此处所描述的材料是作为示例说明的,而不仅限于各个附图的图形。为说明简单和清楚起见,图形中所示出的元件不一定是按比例绘制的。例如,为了清楚起见,某些元件的尺寸可以相对于其他元件而放大。此外,在合适的情况下,在不同的图形中参考标签重复使用,以表示对应的或类似的元件。在图形中:
图1是示例图形系统的说明图;
图2示出了示例棋盘呈现方案;
图3和5示出了示例并行呈现过程的流程图;
图4示出了图3的示例方案的一部分;以及
图6是所有都根据本发明的至少某些实现的排列的示例系统的说明图。
详细描述
现在将参考附图来描述一个或多个实施例或实现。尽管讨论了特定配置以及布局,但是,应该理解,这只是为了说明。那些精通相关技术的人员将认识到,在不偏离描述的主题的精神和范围的情况下,可以使用其他配置和布局。对于那些精通相关技术的人来说显而易见的是,此处所描述的技术和/或布局也可以用于此处所描述的之外各种其他系统和应用中。
尽管下列描述阐述了可以在诸如,例如,片上系统(SoC)体系结构之类的体系结构中表现的各种实现,但是,此处所描述的技术和/或布局的实现不局限于特定体系结构和/或计算系统,并可以通过用于类似的目的的任何体系结构和/或计算系统来实现。例如,使用,例如,多个集成电路(IC)芯片和/或封装,和/或各种计算设备和/或诸如机顶盒、智能电话等等之类的消费电子(CE)设备的各种体系结构可以实现此处所描述的技术和/或布局。进一步地,尽管下列描述可以阐述诸如系统组件的逻辑实现、类型和相互关系,以及逻辑分区/集成选择之类的很多具体细节,但是,要求权利保护的主题也可以在没有这些具体细节的情况下实施。在其他情况下,诸如,例如,没有详细示出控制结构和完全软件指令序列,以便不至于使此处所公开的材料变得模糊。
此处所公开的材料可以以硬件、固件、软件,或其任何组合来实现。此处所公开的材料还可实现为存储在机器可读取的介质中的可以由一个或多个处理器读取和执行的指令。机器可读的介质可以包括用于以机器(例如,计算设备)可读的形式存储或传输信息的任何介质和/或机制。例如,机器可读的介质可以包括,只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;闪存设备;电的、光学的、声音或其他形式的传播信号(例如,载波、红外信号、数字信号等等);及其他。
说明书中对“一个实现”、“实现”、“示例实现”等等的引用表示所描述的实现可包括特定特征、结构或特性,但是,每一个实现都可以不一定包括该特定特征、结构或特征。此外,这样的短语不一定是指同一个实现。此外,当结合一个实现描述特定特征、结构或特性时,认为在本领域技术人员学识范围内,可以与其他实现一起实施这样的特征、结构或特性,无论此处是否显式地描述。
图1示出了根据本公开的示例图形系统100。在各实现中,系统100包括多个并行图形核102和104、共享存储106和并行共享总线108。在各实现中,共享存储108可以是任何类型的存储器,诸如,但不局限于,随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态RAM(SRAM)、闪存等等。图形核102和104中的每一个都可以是被配置成执行三维(3D)图形处理的微处理器核。进一步地,图形核102和104可以类似地配置和/或构建。
在各实现中,核102/104可以被配置成根据各种应用程序编程接口(API)、标准,和/或规范,来执行3D图形处理,包括,但不仅限于,OpenGL规范(参见,例如,The OpenGL Graphics System:A Specification(Version4.0(Core Profile)-March11,2010)(“OpenGL图形系统:规范(版本4.0(核概况)-2010年3月11日)”)),或Direct3D API(参见,例如,“The Direct3D10System″ACM Transactions on Graphics(TOG)-Proceedings of ACM SIGGRAPH,Volume25Issue3,July2006”(“Direct3D10系统”ACM图形学报-ACM SIGGRAPH会议录,2006年7月第3期第25卷))(下面简称为“Direct3D API”)。为了清楚起见,各种设备、系统和过程是在Direct3D API的上下文中描述的,虽然本发明不仅限于任何特定3D图形API、标准,和/或规范。
在图1中详细示出了图形核102的内部组件,包括3D图形流水线103,具有输入处理模块110(包括批处理逻辑112)、可通信地耦合到输入处理模块110以及共享存储106的顶点处理模块114、可通信地耦合到顶点处理模块114的几何形状设置模块116、可通信地耦合到几何形状设置模块116以及共享总线108的诸如先进先出(FIFO)缓冲器118之类的本地存储器结构、可通信地耦合到FIFO118以及共享总线108的交叉开关多路复用器(MUX)120、以及可通信地耦合到交叉开关MUX120、共享存储106,以及共享总线108的栅格化模块122(包括非关联化逻辑(dereferencinglogic)123)。提供给核102/104中的每一个的互连107提供对共享存储器108的读和写访问。并行图形核104中的每一个都可以包括类似的项目。在各实现中,图形核102和104中的每一个都可以被称为图形处理单元(GPU)。那些精通本技术的普通人员将认识到,为了清楚起见,在图1中省略了3D图形流水线的诸如像素着色器模块之类的某些组件或模块。
如下面将更详细地说明的,根据本发明,系统100可以提供可缩放的几何形状处理,其中,图形核102和104可以被配置成使用各种棋盘栅格化(CBR)方案,来执行并行呈现。例如,图2示出了示例CBR方案200,其中,多核处理器202的四个相同的图形核203(每一个都类似于图1的核102和104)已经被映射到帧缓冲器204的不同的区域205的目标像素,以促进并行呈现。如此示例所示,核(1)将呈现帧缓冲器204的标记为“1”的部分中的目标像素的图形数据,核(2)将呈现帧缓冲器204的标记为“2”的部分中的目标像素的图形数据,等等。一旦每一个区域205都被栅格化,在被提供用于在显示器206上显示之前,帧缓冲器204的内容可经历另外的处理,诸如像素着色、输出合并等等。
尽管图2的示例方案示出了分配给特定目标像素区205的总共四个图形核203,但是,本发明不仅限于任何特定数量或类型的图形处理核和/或任何特定并行呈现方案。例如,可以使用用于分摊帧缓冲器的目标像素的呈现的各种已知CBR方案中的任何一种(参见,例如,Carl Mueller,″TheSort-First Rendering Architecture for High-Performance Graphics″,InProceedings of the1995Symposium on Interactive3D Graphics,pages75-84(1995)(Carl Mueller的“用于高性能图形的先排序呈现架构”,1995年交互式3D图形讨论会的会议录,第75-84页(1995)))。进一步地,本发明不仅限于区域205的任何大小和/或布局。如此,例如,区域205中的每一个都可以对应于缓冲器204的64x64像素区、缓冲器204的128x128像素区,等等。另外,帧缓冲器204可以具有任何像素分辨率或格式,并不仅限于如图所示的正方形格式。例如,帧缓冲器204可以具有各种高清晰度(HD)分辨率,诸如1280x720像素,或1920x1080像素等等。
根据本发明,如下面将更详细地说明的,当处理器102执行场景的3D图形处理时,图形核中的每一个都可以对与指派给相应的核的各种目标像素相关联的单独的成批的图形对象,执行顶点和几何形状处理。例如,核(1)可以对横跨帧缓冲器204的标记为“1”的区域205的目标像素的图形对象,执行顶点和几何形状处理,核(2)可以对横跨标记为“2”的区域205的目标像素的图形对象,执行顶点和几何形状处理,等等。
再次参考图1,根据本发明,并如下面将更详细地说明的,输入处理模块110可以接收对应于图形对象的图形数据(例如,对应于三角形、线和点的基元),图形核102和104中的每一个都可以使用批处理逻辑(batching logic)112来选择对应于各种成批的图形对象的图形数据。每一个核中的批处理逻辑112都可以操作以将传入的几何对象细分、分摊或分发到提供给核102/104的成批的连续的对象,而每一个图形核都可以循环地处理其单独的对应的批。在各实现中,批处理大小可以是可编程的,并可以随着输入拓扑而变化。
根据本发明,然后,每一个核都可以与其他核并行地使用模块114来对所指派的对象的顶点执行顶点处理,并可以将顶点处理结果存储在共享存储106中。顶点处理可以包括各种已知功能,诸如顶点着色、曲面细分、几何形状着色等等。如此,根据本发明,并非将每一个每顶点结果复制到所有核102和104,顶点处理结果可以由每一个核在它完成顶点处理时写入到共享存储106,并可以只由那些需要特定对象的顶点处理结果的核在执行栅格化时稍后从共享存储106中读取。
根据本发明,然后,每一个核都可以,与其他核并行地,使用模块116来对指定的对象的执行几何形状设置处理,并可以将几何形状设置结果存储在FIFO118中。几何形状设置处理可以对整个基元进行操作,并可以包括各种已知功能,诸如“剔除”子功能,包括对照剪辑边界的无足轻重的拒绝,背面剔除、退化和零像素对象剔除,等等。那些精通本技术的普通人员将认识到,可以在几何形状设置过程中丢弃几何形状工作负荷的大部分。例如,可以作为几何形状设置处理的结果,丢弃对应于整批的对象的基元。考虑每一个图形核都并行地执行几何形状设置处理(对于不同的批),对于批被丢弃的情况,系统100对于几何形状处理,可以表现出几乎线性的缩放。
几何形状设置处理的结果包括基于所使用的特定CBR方案,确定每一对象都横跨哪一个(哪些)栅格化流水线。可以将此信息,以及栅格化所需的其他设置子功能的结果,写入到每一个图形核的FIFO118。进一步地,指定批划界的控制信息也可以存储在FIFO118中。
在各实现中,FIFO118可以是任何类型的FIFO数据结构。如此,在各非限制性示例中,FIFO118可以通过各种数据结构来提供,包括但不限于,SRAM、触发器、闩锁或任何其他合适形式的存储器结构。进一步地,FIFO118可以包括多组读和写指针,以及存储器和控制逻辑。例如,如下文比较详细地描述的,在各实现中,FIFO118可以是多端口SRAM,包括两组读取指针:与内部对象相关联的一组读取指针124,以及与外部对象相关联的一组读取指针125。
根据本公开,使用从所有FIFO118接收到的以及随后通过共享总线108传输的批划界信息,图形核可以轮流提交批处理结果,以供栅格化。当轮到特定图形核时,其MUX120可以从FIFO118中选择该核的内部对象,用于使用模块122来栅格化,而同时通过共享总线108,从FIFO118输出批内的外部对象。其他图形核可以选择共享总线118,作为到它们的栅格化模块122的输入端。一旦当给定核执行栅格化时已从FIFO118去除当前批的所有对象(如果有的话),该图形核就可以通过共享总线108发信号指示批划界,并且然后,可以切换其MUX120以输入通过共享总线108从其他图形核接收到的外部对象。
在栅格化过程中,每一个图形核的栅格化模块122都可以通过根据需要从共享存储106中读取,来访问顶点处理结果。当给定核消耗顶点处理结果时,该核的栅格化模块122可以使用非关联化逻辑123来通过共享总线108,将非关联化信息传输回生成用于栅格化的特定顶点处理结果的图形核。如此,成批的对象可以由系统100按时间顺序以循环的方式栅格化。
图3和5示出了根据本发明的各实现的用于并行呈现的示例过程300的流程图。过程300可以包括如图3和5的框302-322中的一个或多个所示出的一个或多个操作、功能或动作。作为非限制性示例,此处将参考图1的示例图形系统100和图2的示例CBR方案200来描述过程300。
过程300可以从框302开始,其中,图形核可以接收一批图形对象。例如,在各实现中,核102可以在输入处理模块110处接收一批图形对象,在那里,批处理逻辑112可以从图形对象的输入列表(例如,点基元、线基元等等的输入列表)中,确定要被分摊到核102的对象。例如,图形核(1)可以在框302接收一批图形对象,其中,以目标表面(例如,帧缓冲器)像素位置表示的对象的位置至少部分地位于帧缓冲器204中的标记为(1)的区域205的至少一个内。然后,输入处理模块110可以将对应的成批的对象的基元提供到顶点处理模块114。
在框304,可以对对象基元执行顶点处理,并且结果可以存储在共享存储中。例如,在各实现中,核102可以使用顶点处理模块114来执行顶点处理操作,诸如顶点着色、曲面细分、几何形状着色等等。所产生的每顶点基元数据(诸如强度、颜色、深度、透明度等等)可以存储在共享存储108中,在那里,它可以被核102/104中任何一个访问。
在框306,可以对对象基元执行几何形状设置处理,并且结果可以存储在本地存储中。例如,在各实现中,核102可以使用几何形状设置模块116来执行几何形状设置操作,诸如对照剪辑边界的无足轻重的拒绝,背面剔除、退化和零像素对象剔除,等等。另外,框306处的处理还包括基于呈现目标的棋盘子部分(例如,可以被用来确定哪些图形核102/104将涉及栅格化给定对象的信息)来确定每一对象横跨哪一个(哪些)栅格化流水线。可以将此批控制信息,以及栅格化所需的其他设置子功能的结果,写入到FIFO118。例如,根据本公开,几何形状设置模块116可以将批信息存储在FIFO118中,在那里,批信息按呈现目标位置来分类基元(例如,藉此数据与哪个CBR区域相关联)。
在各实现中,作为执行框306的结果,FIFO118可以接收几何形状设置结果和指定对应的对象如何映射到帧缓冲器位置的批控制信息。在这一方面,只映射到与执行过程300的核相关联或指派给执行过程300的核的帧缓冲器位置的图形对象可以表示为内部对象,而映射到未与执行过程300的核相关联或指派给执行过程300的核的帧缓冲器位置的图形对象可以表示为外部对象。在各实现中,图形对象可以指定为两个类别。
例如,图4比较详细地示出了图2的帧缓冲器204的一部分400,其中,作为框302的结果,两个对象402和406被包括在要由处理器202的核(1)在框304和306处理的一批对象中。在此示例中,对象402只横跨完全驻留在指派给核(1)的区域404内的帧缓冲器像素位置,因此,当核(1)对于区域404执行框306时,批控制信息可以将对象402指定为内部对象。相比之下,对象406横跨指派给核(1)的区域404内以及分配给核(2)的区域408中的像素位置。因此,当核(1)对于区域404执行框306时,控制信息可以将对象402指定为内部对象和外部对象两者。在各实现中,FIFO118包括两组读取指针,一组读取指针124用于跨越分配给执行过程300的特定图形核的目标像素的内部对象,而第二组读取指针125用于跨越分配给子系统中的其他图形核的目标像素的外部对象。
在各实现中,框302-306可以由所有图形核并行地执行。例如,框302-306可以由处理器202的核203使用由批处理逻辑在核之间分摊的对象来并行地执行。结果,对应于帧缓冲器的所有像素位置的顶点处理结果可以存储在共享存储108中,而内部和外部对象的几何形状设置结果可以存储在核203的相应FIFO中。
过程300可以在框308继续,在那里,可以从本地存储获取内部对象设置结果,并且在框310,可以通过共享总线将外部对象设置结果提供到其他图形核。在各示例中,框308可以涉及核102使用MUX120和存储在FIFO118中的控制信息来从FIFO118中获取内部对象的数据,并将该数据提供给栅格化模块122,而框310可以涉及核102使用存储在FIFO118中的控制信息来标识外部对象,并且然后,可以通过共享总线108,将那些外部对象的数据提供到核104。在框311,可以从共享存储器中获取内部对象的顶点处理结果。例如,在各实现中,框308可以涉及核102使用互连107,从共享存储106获取内部对象的顶点处理结果。
在框312,可以执行内部对象的栅格化。例如,核102可以使用栅格化模块122,通过使用已知的栅格化技术,来栅格化其所指派的目标像素区内的内部对象。然后,过程300可以在图5的框316和318。
在框316,可以通过共享总线提供批划界信息。例如,已栅格化所有内部对象之后,核102可以使用FIFO118,通过使用共享总线108,向核104来发信号指示批划界。在框318,可以通过共享总线,从其他图形核中获取外部对象。例如,核102可以使用共享总线108来从各个核104中获取外部对象的几何形状设置结果。例如,再次参考图4的示例,框318可以涉及核(1)通过共享总线108,从核(3)获取涉及对象410的信息(在框304和306,由核(3)进行了处理)。为在框318获取外部对象数据,核104可以使用与核104中的一个或多个的FIFO相关联的外部对象读取指针。
在框319,可以从共享存储器中获取外部对象的顶点处理结果。例如,在各实现中,框319可以涉及核102使用互连107,从共享存储106获取外部对象(在框318中获得的)的顶点处理结果。在框320,可以执行外部对象的栅格化。例如,核102可以使用栅格化模块122,使用已知的栅格化技术,来栅格化由它自己的FIFO118获取的外部对象和从核104中的一个或多个的FIFO获取的外部对象。
在框321,可以通过共享总线,向其他核提供非关联化数据。例如,在各实现中,框321可以涉及核102使用非关联化逻辑123来通过共享总线108,向核104发送非关联化信息。非关联化信息可以向各种核通知特定顶点已经被呈现,因此,可以从共享存储106中的存储位置擦除对应的顶点数据。
在框322,然后,可以关于过程300是否应该继续作出判断。例如,如果特定核已经完成栅格化与其目标像素区相关联的所有对象,那么,过程300可以返回到框308/310,在那里,可以由与该核的目标像素区相关联的所有对象的另一图形核执行如上文所描述的处理。如此,框308-321可以由多核GPU系统的其他核执行,从而允许按时间顺序来栅格化帧缓冲器。当消耗这些结果时,消费者栅格化流水线通过并行共享非关联化总线,将非关联化信息传输回生成顶点处理结果的图形核。
尽管示例过程300的实现,如图3和5所示,可以包括执行按所示出的顺序所示出的全部框,但是,本发明在这方面不受限制,在各示例中,过程300的实现可以包括只执行所示出的框的子集和/或以所示出的不同的顺序来执行。例如,当在框311/312和319/320消耗顶点处理结果时,核的栅格化模块可以通过共享总线传输非关联化信息,而并非等待直到框321才这样做。
另外,可以响应于由一个或多个计算机程序产品所提供的指令,执行图3和5的框中的任何一个或多个。这样的程序产品可以包括提供指令的信号携带介质,所述指令,在由,例如,处理器执行时,可以提供此处所描述的功能。计算机程序产品可以以任何形式的计算机可读介质来提供。如此,例如,包括一个或多个处理器核的处理器可以响应于由计算机可读介质传输到处理器的指令,执行图3和5所示出的框中的一个或多个。
如此处所描述的任何实现中所使用的,术语“模块”是指被配置成提供此处所描述的功能的软件、固件和/或硬件的任何组合。软件可以作为软件程序包、代码和/或指令集或指令来实现,而如此处所描述的任何实现中所使用的“硬件”,可以包括,例如,单独地或以任何组合的硬连线的硬件、可编程的硬件、状态机硬件和/或存储由可编程硬件执行的指令的固件。模块可以共同地或分别地被实现为构成较大的系统的一部分的电路,例如,集成电路(IC)、芯片上系统(SoC)等等。
图6示出了根据本发明的示例计算系统600。系统600可以被用来执行此处所讨论的各种功能中的某些或全部,并可以包括能够执行根据本发明的各种实现的此处所描述的过程的任何设备或设备的集合。例如,系统600可以包括诸如台式机、移动或平板电脑、智能电话、机顶盒等等之类的计算平台或设备的选择的组件,虽然本发明在这方面不受限制。在某些实现中,系统600可以在,例如,CE设备中,包括基于Intel体系结构(IA)的计算平台或SoC。那些精通本技术的普通人员将轻松地理解,在不偏离本发明的范围的情况下,此处所描述的实现可以与替代的处理系统一起使用。
计算机系统600可以包括主机系统602、总线616、显示器618、网络接口620,以及成像设备622。主机系统602可以包括处理器604、芯片组606、主机存储器608、图形子系统610,以及存储612。处理器604可以包括一个或多个处理器核,并可以是任何类型的能够执行软件指令和/或处理数据信号的处理器逻辑。在各种示例中,处理器704可以包括复杂指令集计算机(CISC)处理器核、精简指令集计算机(RISC)微处理器核、超长指令字(VLIW)微处理器核,和/或实现指令集的任何组合或类型的任意数量的处理器核。在某些实现中,处理器604可以能够执行数字信号处理和/或微控制器处理。
处理器604可以包括可以用于将由,例如,芯片组606和/或图形子系统610接收到的指令解码为控制信号和/或微代码入口点的解码器逻辑。进一步地,响应于控制信号和/或微代码入口点,芯片组606和/或图形子系统610可以执行对应的操作。在各实现中,处理器604可以被配置成执行此处所描述的过程中的任何一个,包括参考图3和5所描述的示例过程。
芯片组606可以在处理器604、主机存储器608、存储612、图形子系统610,以及总线616之间提供相互通信。例如,芯片组606可以包括能够与存储612进行相互通信的存储器适配器(未描绘)。例如,存储器适配器可以能够根据若干种协议中的任何一个,包括,但不仅限于,小型计算机系统接口(SCSI)、光纤通道(FC),和/或串行高级技术附件(S-ATA)协议,与存储器612进行通信。在各实现中,芯片组606可以包括能够在主机存储器608内,或在网络接口620和主机存储器608之间,或一般而言,在系统600中的任何组件组之间传输信息的逻辑。在各实现中,芯片组606可以包括一个以上的IC。
主机存储器608可以实现为易失性存储器设备,诸如,但不仅限于,随机存取存储器(RAM)、动态随机存取存储器(DRAM),或静态RAM(SRAM)等等。存储器612可以实现为非易失性存储器设备,诸如,但不仅限于,磁盘驱动、光盘驱动、磁带驱动、内部存储设备、附连存储设备、闪存、电池供电的SDRAM(同步DRAM),和/网络可访问的存储设备等等。
在执行此处所描述的过程中的任何一个过程时,包括参考图3和5所描述的示例过程,存储器120存储要由处理器102执行的指令和/或通过数据信号来表示的数据。例如,主机存储器608可以存储vertex处理结果,目标像素区等等。在某些实现中,存储612也可以存储这样的项目。
图形子系统610可以对诸如静止图像或视频图像之类的图像执行处理,供显示。例如,在某些实现中,图形子系统610可以执行3D图形处理。例如,图形子系统610可以执行如参考图3和5所描述的活动。模拟或数字接口可以被用来可通信地耦合图形子系统610和显示器618。例如,接口可以是高清晰度多媒体接口、显示端口(DisplayPort)、无线HDMI,和/或遵循无线HD的技术中的任何一个。在各实现中,图形子系统610可以集成到处理器604或芯片组606中。在某些其他实现中,图形子系统610可以是可通信地耦合到芯片组606的独立卡。
总线616可以在至少主机系统602、网络接口620、成像设备622以及诸如键盘、鼠标等等之类的其他外围设备(未描绘)之间提供相互通信。总线616可以支持串行或并行的通信。总线616可以支持节点到节点或节点到多节点通信。总线616可以至少兼容于例如在位于美国俄勒冈州波特兰市的PCI特殊兴趣组在2004年2月2日所提供的“外围组件互连(PCI)局部总线规范,修订版3.0”中描述的外围组件互连(PCI)规范(以及其修订版);在PCI特殊兴趣组的PCI Express Base Specification,Revision1.0a中描述的PCI Express(以及其修订版);在美国俄勒冈州波特兰市的如上所述的PCI特殊兴趣组所提供的“PCI-X Specification Rev.1.1,March28,2005”中描述的PCI-x(以其及修订版);和/或通用串行总线(USB)(以及相关的标准)以及其他互连标准。
网络接口620能够根据诸如有线或无线技术之类的任何适用的协议,在主机系统602和网络之间提供相互通信。例如,网络接口620可以符合诸如802.3、802.11,或802.16之类的各种IEEE通信标准。网络接口620可以使用总线616,与主机系统602互相通信。在某些实现中,网络接口620可以集成到芯片组606中。
此处所描述的3D图形处理技术可以以各种硬件体系结构来实现。例如,3D图形功能可以集成在芯片组内。可另选地,可以使用单独的图形处理器。作为再一个实现,3D图形功能可以通过通用处理器(包括多核处理器)来实现。在又一实现中,功能可以在消费电子产品中实现。
显示器618可以是任何类型的显示设备和/或面板。例如,显示器618可以是液晶显示器(LCD)、等离子体显示板(PDP)、有机发光二极管(OLED)显示器等等。在某些实现中,显示器618可以是投影显示器(诸如微微投影仪显示器等等)、微显示器等等。在各实现中,显示器618可以被用来显示由如此处所描述的3D图形处理所产生的图像。
成像设备622可以是诸如数码相机、手机照像机、红外线(IR)照像机等等之类的任何类型的成像设备。成像设备622可以包括一个或多个图像传感器(诸如电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)图像传感器)。成像设备622可以捕捉彩色或单色图像。成像设备622可以捕捉输入图像(静止或视频),并通过总线616和芯片组606,将这些图像提供给处理器604。
在某些实现中,系统600可以通过I/O总线(未示出)与图6中未示出的各种I/O设备进行通信。这样的I/O设备可以包括,但不仅限于,例如,通用异步接收器/发射器(UART)设备、USB设备、I/O扩展接口或其他I/O设备。在各实现中,系统600可以表示用于进行移动、网络和/或无线通信的系统的至少某些部分。
尽管参考各种实现描述了此处所阐述的某些特征,但是,此描述不旨在以限制性方式来解释。因此,对本发明涉及的所属技术领域的专业人员显而易见的对此处所描述的实现的各种修改,以及其他实现被认为在本发明的精神和范围内。
Claims (30)
1.一种设备,包括:
用于执行三维(3D)图形处理的多个处理器核,每一个处理器核包括用于缓存几何形状设置结果的本地存储;
通信地耦合到所述多个处理器核的共享存储,所述共享存储缓存由每一个处理器核所提供的顶点处理结果;以及
通信地耦合到每一个处理器核的所述本地存储的总线,所述总线用于在所述多个处理器核之间分布几何形状设置结果中的至少某些。
2.如权利要求1所述的设备,其特征在于,每一个处理器核包括用于在所述多个处理器核之间分摊顶点处理工作负荷的批处理逻辑。
3.如权利要求2所述的设备,还包括用于向所述多个处理器核提供对所述顶点处理结果的共享访问的互连。
4.如权利要求1所述的设备,其特征在于,所述本地存储包括先进先出(FIFO)缓冲器。
5.如权利要求4所述的设备,其特征在于,所述FIFO缓冲器包括两组读取指针。
6.如权利要求5所述的设备,其特征在于,一组读取指针将引用只跨越包括所述FIFO缓冲器的所述处理器核的目标像素的对象,并且其中另一组读取指针将引用跨越包括所述FIFO缓冲器的所述处理器核的目标像素和至少一个其他处理器核的目标像素的对象。
7.如权利要求4所述的设备,其特征在于,所述FIFO缓冲器还将缓冲指定在所述多个处理器核之间分摊几何形状设置结果的控制信息。
8.如权利要求7所述的设备,其特征在于,所述控制信息基于棋盘呈现(CBR)方案来指定几何形状设置结果的分摊。
9.如权利要求1所述的设备,还包括用于通过所述总线将非关联化信息发送到其他处理器核的非关联化逻辑。
10.如权利要求1所述的设备,其特征在于,每一个处理器核包括:
栅格化模块;以及
通信地耦合到所述栅格化模块以及所述本地存储的交叉开关多路复用器,其中所述交叉开关多路复用器将通过所述总线,在源自所述本地存储的内部对象和源自其他处理器核的外部对象之间选择。
11.一种计算机实现的方法,包括:
将成批的几何对象分发到包括第一处理器核的多个处理器核;
在每一个处理器核处,对对应的成批的几何对象执行顶点处理和几何形状设置处理,将所述顶点处理的结果存储在可以被所有处理器核访问的共享存储器中,并将所述几何形状设置处理的结果存储在本地存储中;以及
在所述第一处理器核上,使用从所述第一处理器核的本地存储中获取以及从所述其他处理器核中的至少一个的本地存储获取的几何形状设置结果,来执行栅格化。
12.如权利要求11所述的方法,其特征在于,所述几何形状设置结果包括内部对象结果以及外部对象结果,并且其中执行栅格化包括:
使用从所述本地存储中获取的内部对象结果以及使用经由共享总线从所述其他处理器核中的至少一个的本地存储结构获取的外部对象结果,来执行栅格化。
13.如权利要求12所述的方法,还包括:
在所述共享总线上输出外部对象结果;以及
通过所述共享总线,发信号指示批划界。
14.如权利要求12所述的方法,其特征在于,内部对象结果包括横跨与所述第一处理器核相关联的目标像素的几何对象的几何形状设置结果,并且其中外部对象结果包括横跨与至少另一个所述处理器核相关联的目标像素的几何对象的几何形状设置结果。
15.如权利要求11所述的方法,其特征在于,所述本地存储包括先进先出(FIFO)缓冲器。
16.如权利要求15所述的方法,其特征在于,所述FIFO缓冲器包括两组读取指针。
17.如权利要求11所述的方法,其特征在于,还包括:
将控制信息存储在所述本地存储中,所述控制信息指定所述成批的几何对象在所述多个处理器核之间的所述分布。
18.如权利要求17所述的方法,其特征在于,所述成批的几何对象在所述多个处理器核之间的所述分布包括棋盘呈现(CBR)方案。
19.一种包括其中存储有指令的计算机程序产品的制品,所述指令如果执行,则导致:
将成批的几何对象分发到包括第一处理器核的多个处理器核;
在每一个处理器核处,对对应的成批的几何对象执行顶点处理和几何形状设置处理,将所述顶点处理的结果存储在可以被所有处理器核访问的共享存储器中,并将所述几何形状设置处理的结果存储在本地存储中;以及
在所述第一处理器核上,使用从所述第一处理器核的本地存储中获取以及从所述其他处理器核中的至少一个的本地存储获取的几何形状设置结果,来执行栅格化。
20.如权利要求19所述的制品,其特征在于,所述几何形状设置结果包括内部对象结果以及外部对象结果,并且其中执行栅格化包括:
使用从所述本地存储中获取的内部对象结果,以及使用经由共享总线从所述其他处理器核中的至少一个的本地存储结构获取的外部对象结果,来执行栅格化。
21.如权利要求20所述的制品,其特征在于,还包括指令,所述指令如果执行,则导致:
在所述共享总线上输出外部对象结果;以及
通过所述共享总线,发信号指示批划界。
22.如权利要求20所述的制品,其特征在于,内部对象结果包括横跨与所述第一处理器核相关联的目标像素的几何对象的几何形状设置结果,并且其中外部对象结果包括横跨与至少另一个所述处理器核相关联的目标像素的几何对象的几何形状设置结果。
23.如权利要求19所述的制品,其特征在于,所述本地存储包括先进先出(FIFO)缓冲器。
24.如权利要求23所述的制品,其特征在于,所述FIFO缓冲器包括两组读取指针。
25.一种系统,包括:
执行三维(3D)图形处理的多个处理器核,每一个处理器核包括用于缓存几何形状设置结果的本地存储;
通信地耦合到所述多个处理器核的共享存储器,所述共享存储器缓存由每一个处理器核所提供的顶点处理结果;
通信地耦合到每一个处理器核的所述本地存储的总线,所述总线在所述多个处理器核之间分布几何形状设置结果中的至少某些;以及
通信地耦合到所述多个处理器核的显示器,所述显示器用于作为所述3D图形处理的结果的由所述多个处理器核所生成的图像。
26.如权利要求25所述的系统,其特征在于,每一个处理器核在所述多个处理器核之间分摊顶点处理工作负荷的批处理逻辑,并且其中所述系统还包括用于向所述多个处理器核提供对所述顶点处理结果的共享访问的互连。
27.如权利要求25所述的系统,其特征在于,所述本地存储包括具有两组读取指针的先进先出(FIFO)缓冲器。
28.如权利要求27所述的系统,其特征在于,所述FIFO缓冲器还将缓冲基于棋盘呈现(CBR)方案来指定在所述多个处理器核之间分摊顶点处理工作负荷的控制信息。
29.如权利要求24所述的系统,其特征在于,每一个处理器核包括用于通过所述总线将非关联化信息发送到其他处理器核的非关联化逻辑。
30.如权利要求24所述的系统,其特征在于,每一个处理器核包括:
栅格化模块;以及
通信地耦合到所述栅格化模块以及所述本地存储器的交叉开关多路复用器,其中所述交叉开关多路复用器将通过所述总线在源自所述本地存储的内部对象和源自其他处理器核的外部对象之间选择。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2011/061447 WO2013074124A1 (en) | 2011-11-18 | 2011-11-18 | Scalable geometry processing within a checkerboard multi-gpu configuration |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103946823A true CN103946823A (zh) | 2014-07-23 |
CN103946823B CN103946823B (zh) | 2017-04-05 |
Family
ID=48430019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180074917.0A Expired - Fee Related CN103946823B (zh) | 2011-11-18 | 2011-11-18 | 棋盘多gpu配置内的可缩放几何形状处理 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9619855B2 (zh) |
CN (1) | CN103946823B (zh) |
WO (1) | WO2013074124A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9619855B2 (en) | 2011-11-18 | 2017-04-11 | Intel Corporation | Scalable geometry processing within a checkerboard multi-GPU configuration |
US10217270B2 (en) | 2011-11-18 | 2019-02-26 | Intel Corporation | Scalable geometry processing within a checkerboard multi-GPU configuration |
US9483862B2 (en) * | 2013-12-20 | 2016-11-01 | Qualcomm Incorporated | GPU-accelerated path rendering |
CN106909198B (zh) * | 2015-12-22 | 2020-11-06 | 华硕电脑股份有限公司 | 一种外接装置、电子装置及电子系统 |
US10825231B2 (en) * | 2018-12-10 | 2020-11-03 | Arm Limited | Methods of and apparatus for rendering frames for display using ray tracing |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1571991A (zh) * | 2000-09-28 | 2005-01-26 | 英特尔公司 | 并行分担的单个块变换 |
CN1643545A (zh) * | 2002-03-11 | 2005-07-20 | 索尼计算机娱乐公司 | 优化图形处理的系统和方法 |
WO2008079984A1 (en) * | 2006-12-22 | 2008-07-03 | Qualcomm Incorporated | Quick pixel rendering processing |
US20110080404A1 (en) * | 2009-10-05 | 2011-04-07 | Rhoades Johnny S | Redistribution Of Generated Geometric Primitives |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6222550B1 (en) | 1998-12-17 | 2001-04-24 | Neomagic Corp. | Multiple triangle pixel-pipelines with span-range pixel interlock for processing separate non-overlapping triangles for superscalar 3D graphics engine |
US7379069B2 (en) | 2001-02-15 | 2008-05-27 | Sony Corporation | Checkerboard buffer using two-dimensional buffer pages |
US6816161B2 (en) | 2002-01-30 | 2004-11-09 | Sun Microsystems, Inc. | Vertex assembly buffer and primitive launch buffer |
CN101849227A (zh) | 2005-01-25 | 2010-09-29 | 透明信息技术有限公司 | 在单片构造的硅芯片上采用多个图形核心的图形处理和显示系统 |
CN100557584C (zh) * | 2005-06-09 | 2009-11-04 | Nxp股份有限公司 | 用于对网络和存储器进行耦合的存储器控制器和方法 |
US7616206B1 (en) * | 2006-06-16 | 2009-11-10 | Nvidia Corporation | Efficient multi-chip GPU |
US7928990B2 (en) | 2006-09-27 | 2011-04-19 | Qualcomm Incorporated | Graphics processing unit with unified vertex cache and shader register file |
GB0723536D0 (en) * | 2007-11-30 | 2008-01-09 | Imagination Tech Ltd | Multi-core geometry processing in a tile based rendering system |
US8675003B2 (en) * | 2009-09-09 | 2014-03-18 | Advanced Micro Devices, Inc. | Efficient data access for unified pixel interpolation |
CN103003838A (zh) * | 2010-07-19 | 2013-03-27 | 超威半导体公司 | 在多处理单元中使用片上存储器的数据处理 |
US9619855B2 (en) | 2011-11-18 | 2017-04-11 | Intel Corporation | Scalable geometry processing within a checkerboard multi-GPU configuration |
-
2011
- 2011-11-18 US US13/976,843 patent/US9619855B2/en not_active Expired - Fee Related
- 2011-11-18 WO PCT/US2011/061447 patent/WO2013074124A1/en active Application Filing
- 2011-11-18 CN CN201180074917.0A patent/CN103946823B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1571991A (zh) * | 2000-09-28 | 2005-01-26 | 英特尔公司 | 并行分担的单个块变换 |
CN1643545A (zh) * | 2002-03-11 | 2005-07-20 | 索尼计算机娱乐公司 | 优化图形处理的系统和方法 |
WO2008079984A1 (en) * | 2006-12-22 | 2008-07-03 | Qualcomm Incorporated | Quick pixel rendering processing |
US20110080404A1 (en) * | 2009-10-05 | 2011-04-07 | Rhoades Johnny S | Redistribution Of Generated Geometric Primitives |
Also Published As
Publication number | Publication date |
---|---|
US9619855B2 (en) | 2017-04-11 |
US20140306949A1 (en) | 2014-10-16 |
CN103946823B (zh) | 2017-04-05 |
WO2013074124A1 (en) | 2013-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105574924B (zh) | 渲染方法、渲染设备和电子设备 | |
US10535186B2 (en) | Multi-resolution deferred shading using texel shaders in computing environments | |
US11055902B2 (en) | Smart point cloud reconstruction of objects in visual scenes in computing environments | |
KR102572583B1 (ko) | 멀티 코어 컴퓨팅 아키텍처에서 그래픽 작업부하를 가속화하기 위한 메커니즘 | |
TWI731897B (zh) | 促進於異質運算環境中橫跨計算機叢集的有效率通訊及資料處理之技術 | |
CN108475440B (zh) | 用于在计算装置处高效处理图形数据的光线压缩 | |
CN103793876A (zh) | 分布式拼接式进行高速缓存 | |
US10956359B2 (en) | Smart performance of spill fill data transfers in computing environments | |
US10089264B2 (en) | Callback interrupt handling for multi-threaded applications in computing environments | |
US20170263040A1 (en) | Hybrid mechanism for efficient rendering of graphics images in computing environments | |
WO2017039865A1 (en) | Facilitating efficient scheduling of graphics workloads at computing devices | |
CN103946823A (zh) | 棋盘多gpu配置内的可缩放几何形状处理 | |
WO2017082973A2 (en) | Facilitating efficeint centralized rendering of viewpoint-agnostic graphics workloads at computing devices | |
US20170169537A1 (en) | Accelerated touch processing in computing environments | |
DE102020130880A1 (de) | Mechanismus zur partitionierung eines geteilten lokalen speichers | |
WO2017164965A1 (en) | System characterization and configuration distribution for facilitating improved performance at computing devices | |
US9148544B2 (en) | System, process, and computer program product for implementing a document scanner in a hand-held device | |
EP3284058A1 (en) | Supporting multi-level nesting of command buffers in graphics command streams at computing devices | |
US10002405B2 (en) | Smart optimization of unused graphics buffer memory in computing environments | |
WO2017222646A1 (en) | Extension of register files for local processing of data in computing environments | |
TW202121336A (zh) | 平行解壓縮機制 | |
WO2017105612A1 (en) | Interpolated minimum-maximum compression/decompression for efficient processing of graphics data at computing devices | |
WO2017082976A1 (en) | Facilitating efficeint graphics commands processing for bundled states at computing devices | |
US20190068974A1 (en) | Smart multiplexed image compression in computing environments | |
US10217270B2 (en) | Scalable geometry processing within a checkerboard multi-GPU configuration |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170405 Termination date: 20211118 |
|
CF01 | Termination of patent right due to non-payment of annual fee |