CN105654418B - 图形处理单元和包括其的装置 - Google Patents
图形处理单元和包括其的装置 Download PDFInfo
- Publication number
- CN105654418B CN105654418B CN201510844088.XA CN201510844088A CN105654418B CN 105654418 B CN105654418 B CN 105654418B CN 201510844088 A CN201510844088 A CN 201510844088A CN 105654418 B CN105654418 B CN 105654418B
- Authority
- CN
- China
- Prior art keywords
- model
- processing unit
- complexity
- memory
- graphics processing
- 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.)
- Active
Links
Images
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
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
提供了用于根据中央处理单元(CPU)的控制确定是否对第一模型执行细分的图形处理单元(GPU)。GPU从存储准备好的具有不同复杂度的模型的存储器中读取第一模型;计算第一模型的复杂度;将所计算的复杂度与参考复杂度进行比较;并根据比较结果确定是否对第一模型执行细分操作。
Description
相关申请的交叉引用
本申请要求在2014年11月27日提交的韩国专利申请号10-2014-0167153的优先权,其公开内容通过引用全部并入本文。
技术领域
本发明构思的实施例涉及图形处理,并且更具体地,涉及一种用于读取具有不同复杂度的预定模型之一,并响应于对读出模型的复杂度和参考复杂度的比较确定是否对该已读出的模型执行细分操作的图形处理单元(GPU)。
背景技术
在计算机图形学中,细节的等级(LOD)涉及基于诸如控制点的深度值或由控制点所限定的曲率的几何信息调整细节。换句话说,LOD涉及降低远离观看者时的三维(3D)对象的表示的复杂度。LOD技术通过降低在图形管线级(例如,顶点变换)的工作量提高渲染的效率。
在图形管线的细分级,预期曲面细分器(tessellator)对对象执行细分操作。因此,由于计算需求,曲面细分的开销增加了。
发明内容
本发明构思的一些实施例提供了一种图形处理单元(GPU)以及包括其的装置,其用于根据计算装置的属性或特征,从在渲染操作之前准备好的具有不同复杂度的模型中选择模型,以及确定是否对所选模型执行细分,从而减少图形管线(例如,曲面细分)的开销。
根据本发明构思的一些实施例,提供了一种用于根据中央处理单元(CPU)的控制确定是否对多个准备好的模型之中的第一模型执行细分操作的GPU,包括:被配置为从存储器中读取第一模型的存取电路,存储多个准备好的具有不同复杂度的模型的存储器,存取电路还配置为计算第一模型的复杂度、将所计算的复杂度与参考复杂度进行比较、并根据比较结果确定是否对第一模型执行细分操作。
所述GPU被配置为接收由CPU从与存储模型的存储器的存储区域对应的地址中选择的第一地址,使用第一地址从存储区域中的第一存储区域读取第一模型,使用第一模型的几何信息计算第一模型的复杂度,并根据将参考复杂度与所计算的复杂度进行比较的结果确定是否要对第一模型执行细分操作。GPU被配置为以对象、图元(primitive)、块(patch)、边、顶点、或控制点为单元计算第一模型的复杂度。
所述GPU被配置为基于包括在图元中的顶点的深度值或者由顶点定义的曲率计算第一模型的复杂度。所述GPU被配置为基于包括在块中的控制点的深度值或由控制点所限定的曲率计算第一模型的复杂度。
所述GPU被配置为从CPU接收与存储模型的存储器的存储区域相应的一个或多个地址,估计GPU和存储器之间的带宽、GPU的计算功率、GPU的最大功耗、根据动态电压频率调节(DVFS)确定的GPU的电压和频率以及GPU的温度中的至少一个,基于估计结果从地址中选择第一地址;使用所选的第一地址从存储区域当中的第一存储区域中读取第一模型,使用第一模型的几何信息计算第一模型的复杂度,并根据将参考复杂度与所计算的复杂度进行比较的结果,确定是否对第一模型执行细分操作。
根据本发明构思的其他实施例,提供一种包括了包括多个细分级的GPU、CPU、由GPU存取的存储器、以及由CPU控制的存储器控制器的片上系统(SoC)。所述GPU被配置为通过存储器控制器从存储器读取第一模型,其中存储多个准备好的具有不同复杂度的模型;计算第一模型的复杂度;将参考复杂度与所计算的复杂度进行比较;以及根据CPU的控制根据比较结果确定是否对第一模型执行细分。
所述CPU被配置为估计GPU与存储器之间的频带、GPU的计算功率、GPU的最大功耗、根据GPU的DVFS确定的电压和频率、以及GPU的温度中的至少一个;以及基于估计结果发送与存储模型的存储器的存储区域相应的地址之中的第一地址到GPU。所述GPU被配置为使用第一地址从存储区域中的第一存储区域中读取第一模型。
所述GPU被配置为使用包括在第一模型中的每个块的控制点的几何信息计算复杂度。所述几何信息可以是控制点的深度值或由控制点所限定的曲率。存储渲染操作之前的模型的存储器可以在SoC内部或外部实现。
可替代地,所述CPU被配置为发送与存储模型的存储器的存储区域对应的地址到GPU。所述GPU被配置为估计GPU和存储器之间的频带、GPU的计算功率、GPU的最大功耗、根据GPU的动态电压频率调节(DVFS)确定的电压和频率以及GPU的温度中的至少一个;基于估计结果选择地址中的第一地址;以及使用第一地址从存储区域中的第一存储区域读取第一模型。
所述GPU被配置为使用包括在第一模型中的每一个块的每一个控制点的深度值或由控制点所限定的曲率计算第一模型的复杂度。
所述GPU被配置为当第一模型的复杂度小于参考复杂度时对第一模型执行细分操作。
所述细分级被配置为包括外壳着色器(hull shader)、曲面细分器、以及域着色器。所述计算和比较可以由外壳着色器执行。确定可以由曲面细分器执行。曲面细分器被配置为基于确定的结果传递第一模型到域着色器或使用由曲面细分器发送的细分因子对第一模型执行细分操作。
根据本发明构思的其它实施例,提供了一种计算装置,包括被配置为存储多个准备好的具有不同复杂度的模型的存储器、显示器、以及被配置为控制存储器和显示器的SoC。该SoC包括包括了细分级的GPU、CPU、被配置为根据CPU的控制控制显示的显示控制器,以及被配置为根据CPU的控制控制存储器的存储器控制器。所述GPU被配置为通过存储器控制器从存储模型的存储器读取第一模型,计算第一模型的复杂度,将所计算的复杂度与参考复杂度进行比较,并根据CPU的控制根据比较结果确定是否要对第一模型执行细分操作。
所述CPU被配置为估计GPU和存储器之间的频带、GPU的计算功率、GPU的最大功耗、根据GPU的动态电压频率调节(DVFS)确定的电压和频率、以及GPU的温度中的至少一个;以及基于估计结果发送与存储模型的存储器的存储区域对应的地址之中的第一地址到GPU。GPU被配置为使用第一地址从存储区域中的第一存储区域中读取第一模型。
所述GPU被配置为以对象、图元(primitive)、块(patch)、边、顶点、或控制点为单元计算第一模型的复杂度。
所述GPU被配置为当第一模型的复杂度小于参考复杂度时,对第一模型执行细分操作。
可替代地,所述CPU被配置为发送与存储模型的存储器的存储区域相应的地址到GPU。所述GPU被配置为估计GPU和存储器之间的频带、GPU的计算功率、GPU的最大功耗、根据GPU的动态电压频率调节(DVFS)确定的电压和频率、以及GPU的温度中的至少一个;基于估计结果选择地址中的第一地址;以及使用第一地址从存储区域中的第一存储区域读取第一模型。GPU被配置为当第一模型的复杂度小于参考复杂度时,对第一模型执行细分操作。
根据本发明构思的进一步的实施例,提供了一种应用处理器,包括包括了细分级的GPU、CPU、以及由CPU控制的存储器控制器。所述GPU被配置为通过存储器控制器从存储准备好的具有不同复杂度的模型的存储器中读取第一模型;计算第一模型的复杂度;将参考复杂度和所计算的复杂度进行比较;以及按照CPU的控制根据比较结果确定是否要对第一模型执行细分。
所述CPU被配置为估计GPU和存储器之间的频带、GPU的计算功率、GPU的最大功耗、根据GPU的动态电压频率调节(DVFS)确定的电压和频率、以及GPU的温度中的至少一个;并可以基于估计结果发送与存储模型的存储器的存储区域对应的地址之中的第一地址到GPU。所述GPU被配置为使用第一地址从存储区域中的第一存储区域中读取第一模型。
可替代地,所述CPU被配置为发送与存储模型的存储器的存储区域对应的一个或多个地址到GPU。所述GPU被配置为估计GPU和存储器之间的频带、GPU的计算功率、GPU的最大功耗、依赖于动态电压频率调节(DVFS)确定的GPU的电压和频率、以及GPU的温度中的至少一个;基于估计结果选择地址中的第一地址;以及使用第一地址从存储区域中的第一存储区域读取第一模型。
根据本发明构思的进一步的实施例,提供了一种图形处理单元(GPU)系统,包括:被配置为存储多个准备好的具有不同复杂度的模型的存储器;以及被配置为从存储器读取多个准备好的模型的模型、计算模型的复杂度、将参考复杂度和所计算的复杂度进行比较、并确定是否要响应于比较对模型执行细分操作的图形处理器。
所述GPU系统被配置为还包括中央处理单元(CPU),其被配置为选择包括在存储多个准备好的模型的存储器中的存储区域的地址,并发送所选择的地址到图形处理器,其使用该地址从存储器读取模型。
所述图形处理器被配置为包括命令解码器,其被配置为根据由CPU或从存储器接收到的命令来控制GPU系统。
所述图形处理器可以包括存取电路,其被配置为使用所选择的地址,从存储区域读取模型,使用模型的几何信息计算模型的复杂度,将参考复杂度和所计算的复杂度进行比较,并响应于该比较确定是否对模型执行细分操作。
所述图形处理器可以包括用于执行光栅操作的一个或多个处理单元。
附图说明
本发明构思的上述的和其它的特征和优点将通过参照附图详细描述其示例性实施例变得更加明显,其中:
图1是根据本发明构思的一些实施例的计算装置的框图;
图2是图1中示出的中央处理单元(CPU)和图形处理单元(GPU)的框图;
图3是根据本发明构思的一些实施例用于说明图1中所示的GPU的图形管线的概念图;
图4是图1所示的第一存储器的结构图;
图5是具有不同复杂度的模型的概念图;
图6是根据本发明构思的一些实施例的、计算所选择的模型的复杂度的方法的图;
图7是根据本发明构思的其它实施例的、计算所选择的模型的复杂度的方法的图;
图8A至图8D是具有不同复杂度的模型的概念图;
图9A和图9B是示出对具有不同复杂度的模型执行细分操作的结果;
图10是图1中示出的计算装置的操作的流程图;
图11是根据本发明构思的一些实施例的、从具有不同复杂度的模型中选择模型的方法的图;
图12是根据本发明构思的其它实施例的、从具有不同复杂度的模型之中选择模型的方法的图;以及
图13是根据本发明构思的一些实施例的包括图形卡的计算装置的框图。
具体实施方式
现在将参考示出了本发明的实施例的附图,在下文更全面地描述本发明的构思。但是本发明可以体现为许多不同形式,而不应被解释为限于在此阐述的实施例。而是,提供这些实施例使得本公开将是彻底的和完整的,并且将充分地向本领域技术人员传达本发明的范围。在附图中,为清楚可以放大层和区域的尺寸和相对尺寸。相同的数字指代相似的元件。
应该理解的是,当元件被称为“连接”或“耦合”到另一元件时,它可以直接连接或耦合到另一元件或者可以存在中间元件。相反地,当元件被称为“直接连接”或“直接耦合”到另一元件时,不存在中间元件。如本文所使用的,术语“和/或”包括一个或多个相关所列的项目的任意和所有组合,并且可以缩写为“/”。
应该理解的是,尽管术语第一、第二等在这里可以用于描述各种元件,但是这些元件不应该受这些术语的限制。这些术语仅用于彼此区分元件。例如,第一信号可被称为第二信号,并且类似地,第二信号可被称为第一信号,而不脱离本公开的教导。
本文所用的术语仅用于描述具体实施例的目的,并非意在限制本发明。如本文所用,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文另外明确指出。将进一步理解,在本说明书中使用术语“包括”和/或“包含”,或者“包括”和/或“包含”时,指定特征、区域、整体、步骤、操作、元件和/或组件的存在,但不排除或添加一个或多个其它特征、区域、整体、步骤、操作、元件、部件和/或其组合的存在。
除非另有定义,这里使用的所有术语(包括技术和科学术语)具有如由普通技术人员对本发明所属领域中通常理解的相同的含义。将进一步理解,诸如在常用词典中定义的术语,应该被解释为具有与它们在相关技术和/或本申请的上下文中的含义一致的的含义,并且不会在被解释理想化的或过于正式的意义,除非在此明确定义。
在简要概述中,本发明构思的实施例包括粗糙的细节级别(Level-of-Detail,LOD)几何方案,由此选择了粗糙的LOD几何图中的最接近的LOD几何形状,并且进行只需要基于最接近的LOD几何形状的附加的几何形状的计算。以这种方式,相同的LOD几何形状可以被重复使用而无需冗余计算。另外,通过应用最接近的LOD几何形状,可以降低广泛使用于当前配置中的细分渲染开销。
图1是根据本发明构思的一些实施例的计算装置100的框图。计算装置100可以实施为电子装置,例如电视(TV)(例如,数字TV或智能TV)、个人计算机(PC)、台式计算机、膝上型计算机、计算机工作站、平板PC、视频游戏平台(或视频游戏控制台)、服务器、或便携式电子装置。实施实施例的便携式电子装置可以包括但不限于蜂窝电话、智能电话、个人数字助理(PDA)、企业数字助理(EDA)、数字静态照相机、数字摄像机、便携式多媒体播放器(PMP)、个人导航装置或便携式导航装置(PND)、移动互联网装置(MID)、可穿戴计算机、物联网(IoT)装置、万物联网(IOE)装置,或电子书。
计算装置100可以包括各种类型的可处理和显示二维(2D)或三维(3D)图形数据的装置。计算装置100包括片上系统(SoC)200、一个或多个存储器310-1和310-2,以及显示器400。
SoC 200可以用作主机计算装置100。SoC 200可以控制计算装置100的整体操作。例如,SoC 200可以被替换为集成电路(IC)、应用程序处理器(AP)、或移动AP,其可以执行在本发明构思的实施例中的下文中描述的以下操作,也即确定是否对模型执行与细分相关的操作的操作。
SoC 200可包括中央处理单元(CPU)210、一个或多个存储器控制器220-1和220-2、用户接口230、显示控制器240以及也称为图形处理器的图形处理单元(GPU)260,其可以经由总线201彼此通信。总线201可以实现为外围组件总线(PCI)总线、PCI快速(PCIe)总线、高级微控制器总线架构(AMBATM)、高级高性能总线(AHB)、高级外设总线(APB)、高级可扩展接口(AXI)或它们的组合。
CPU 210可控制SoC 200的操作。根据一些实施例,CPU 210可以估计(也即,计算或测量)计算装置100的属性或特征中的至少一个,根据估计(即,计算或测量)的结果选择包括在存储多个准备好的模型的第一存储器310-1的存储区域中的一个地址,并发送所选择的地址到GPU 260。属性或特征可以包括在GPU 260和存储器310-1或310-2之间的带宽、GPU260的计算功率、GPU 260最大功耗、基于GPU 260的动态电压频率调节(DVFS)确定的电压和频率以及GPU 260的温度中的至少一个。
SoC 200可包括软件(固件)组件和/或硬件组件205,其估计(即,计算或测量)在GPU 260和存储器310-1或310-2之间的带宽、GPU 260的计算功率、GPU 260的最大功耗,基于GPU 260的DVFS确定的电压和频率以及GPU 260的温度的至少一个。
软件组件可被存储在硬件存储器中,并且由SoC 200中的一个或多个处理器和/或SoC200外部的一个或多个处理器执行。例如,软件组件可以由CPU 210执行。至少一个硬件组件205可以包括计算器、检测器和/或传感器中的至少一个。在CPU 210中执行的软件组件(例如图2中的应用程序211)可以使用来自至少一个硬件组件205输出的输出信号估算(即,计算或测量)计算装置100的至少一个属性或特征。
GPU 260可以从CPU 210接收地址,使用该地址从存储区域中的一个读取模型,例如使用存取电路252或另一处理器使用模型的几何信息计算该模型的复杂度,将参考复杂度和所计算的复杂度进行比较,并基于比较结果确定是否对模型执行细分。
可替代地,CPU 210可以发送在其中存储多个模型的存储器310-1或310-2的多个存储区域的多个地址到GPU 260。GPU 260可以从CPU 210接收多个地址,估计(即,计算或测量)计算装置100的至少一个属性或特征,并基于估计(即,计算或测量)结果选择地址中的一个。GPU 260可使用所选择的地址从存储区域中的一个读取模型,使用模型的几何信息计算模型的复杂度,将参考复杂度和所计算的复杂度进行比较,并基于比较结果确定是否要对模型执行细分。
在其中计算装置100是便携式电子装置的实施例中,计算装置100还可以包括电池203。至少一个硬件组件205和/或在CPU 210中执行的软件组件(例如,图2中的应用211)可以估计(即,计算或测量)电池203的剩余值。在这种情况下,计算装置100的至少一个属性或特征可以包括电池203的剩余值或剩余值相关的信息。
用户可以通过用户界面230输入到SoC 200的输入,使得CPU 210执行至少一个应用程序(例如,在图2中的软件应用211)。由CPU 210执行的至少一个应用可以包括操作系统(OS)、文字处理器应用、媒体播放器应用、视频游戏应用、和/或图形用户界面(GUI)应用。
用户可以通过连接到用户界面230的输入装置(未示出)输入到SoC 200的输入。例如,输入装置可以实施为键盘、鼠标、麦克风或触摸垫。由CPU 210执行的应用(例如,图2中的211)可以包括可能与图形应用程序编程接口(API)相关的图形渲染指令。
图形API可以包括开放图形库(OpenGL)的API,嵌入式系统的开放图形库(OpenGLES)的API、DirectX API,Renderscript API、WebGL API、或OpenAPI的一个或多个。为处理图形渲染指令,CPU 210可以通过总线201发送图形渲染命令到GPU 260。响应于图形渲染命令,GPU 260可处理(或渲染)图形数据。
图形数据可以包括点、线、三角形、四边形、块、和/或图元。图形数据也可以包括线段、椭圆弧、二次贝塞尔曲线和/或三次贝塞尔曲线。
响应于来自CPU 210或GPU 260的读请求,该一个或多个存储器控制器220-1和220-2可以从一个或多个存储器310-1和310-2读数据(例如,图形数据)并可以将数据(例如,图形数据)发送到相应的元件(例如,210、240、或260)。响应于来自CPU 210或GPU 260的写请求,一个或多个存储器控制器220-1和220-2可以从相应的元件(例如,210、230、或240)写数据(例如,图形数据)到一个或多个存储器310-1和310-2。
在图1中示出的实施例中,一个或多个存储器控制器220-1和220-2与CPU 210或GPU 260分离。然而,一个或多个存储器控制器220-1和220-2可以是在CPU 210中、在GPU260中或一个或多个存储器310-1和310-2中。
当第一存储器310-1由易失性存储器形成以及第二存储器310-2由非易失性存储器形成时,第一存储器控制220-1可以实现为与第一存储器310-1通信并且第二存储器控制器220-1可以实现为能够与第二存储器310-2进行通信。易失性存储器可以是随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、晶闸管的RAM(T-RAM)、零电容器的RAM(Z-RAM)、或双晶体管RAM(TTRAM)。非易失性存储器可以是电可擦除可编程只读存储器(EEPROM)、闪存、磁RAM(MRAM)、自旋转移矩的MRAM、铁电RAM(FeRAM)、相变RAM(PRAM)、或电阻性内存(RRAM)。非易失性存储器也可以实现为多媒体卡(MMC)、嵌入式MMC(eMMC)、通用闪存(UFS)、固态驱动器(SSD)、或通用串行总线(USB)闪存驱动器。
一个或多个存储器控制器220-1和220-2可以存储可以由CPU 210执行的程序(或应用)或者指令。另外,一个或多个存储器控制器220-1和220-2可存储由CPU 210执行的程序要使用的数据。一个或多个存储器控制器220-1和220-2也可以存储与用户应用相关的用户应用程序和图形数据,并且可以存储由包括在SoC 200中的组件将要使用或生成的数据(或信息)。一个或多个存储器控制器220-1和220-2可存储用于GPU 260的操作的数据和/或由GPU 260的操作生成的数据。一个或多个存储器控制器220-1和220-2可存储GPU 260处理的指令流。
显示控制器240可以发送由CPU 210处理的数据或GPU 260处理的数据(例如,图形数据)到显示器400。显示器400可以实现为监视器、电视监视器、投影装置、薄膜晶体管-液晶显示器(TFT-LCD)、发光二极管(LED)显示器、有机发光二极管(OLED)显示器、有源矩阵OLED(AMOLED)显示器、或柔性显示器。
显示器400可以集成到(或嵌入到)计算装置100中。显示器400可以是通过无线或有线通信链路连接到计算装置100的便携式电子装置或独立装置的屏幕。可替代地,显示器400可以是通过有线或有线链路连接到PC的计算机监视器。
GPU 260可以从CPU 210接收命令并运行该命令。由GPU 260运行的命令可以包括图形命令、存储器转移命令、内核执行命令、细分命令、或者纹理命令。GPU 260可以执行图形操作来渲染图形数据。
当由CPU 210运行的应用请求执行图形处理时,CPU 210可以发送图形数据和图形命令到GPU 260,使得图形数据在显示器400中渲染。图形命令可以包括细分命令和/或纹理命令。图形数据可以包括顶点数据、纹理数据、或表面数据。表面可包括参数曲面、细分曲面、三角形网格、或曲线。
在一些实施例中,CPU 210可以发送图形命令和图形数据到GPU 260。在其他实施例中,当CPU 210写入图形命令和图形数据到一个或多个存储器310-1和310-2中时,GPU260可以从一个或多个存储器310-1和310-2读出图形命令和图形数据。
GPU 260可以直接存取GPU高速缓存290。这里,GPU 260可以写入图形数据到GPU的高速缓存290或从中读取图形数据,而无需使用总线201。GPU高速缓存290是可以由GPU 260存取的GPU存储器的例子。
GPU 260和GPU高速缓存290在图1示出的实施例中彼此分离。在其它实施例中,GPU260可以包括GPU高速缓存290。GPU高速缓存290可以由包括DRAM或SRAM或类似物形成。CPU210或GPU 260可以在包括于一个或多个存储器310-1和310-2的帧缓冲器中存储处理(或渲染)过的图形数据。
图2是图1中示出的CPU 210和GPU 260的框图。参照图2,硬件组件205、CPU 210和GPU 260可以经由总线201彼此通信。在一些实施例中,硬件组件205、CPU 210和GPU 260可以集成到母板或SoC中或者可以实施为安装在母板上的图形卡中。在图13中示出的计算装置100A中13,硬件组件205可以实施在母板或图形卡中。
CPU 210可以包括一个或多个应用(例如,软件应用)211、图形API 213、GPU驱动器215、以及OS 217。CPU 210可以运行或执行组件211、213、215和217。
应用211可以包括用于显示图形数据的指令和/或将要在GPU260中执行的指令。例如,应用211可以估计(即,计算或测量)计算装置100的至少一个属性或特征的至少一个,并且可以基于该估计(即,计算或测量)的结果发送与模型相关的一个地址或与多个模型或相关的多个地址到GPU 260。此时,应用211可以使用、处理和/或参考硬件组件205的输出信号。
在一些实施例中,应用程序211输出到图形API 213的指令。图形API 213可以将从应用程序211接收到的指令转换为由GPU驱动程序215使用的格式。
GPU驱动程序215可以通过图形API 213接收指令,并可以控制GPU 260的操作使得指令由GPU 260执行。例如,GPU驱动程序215可以通过OS 217发送命令到GPU 260,或者可以发送命令到可以由GPU 260存取的一个或多个存储器310-1和310-2。GPU 260可以包括命令解码器(或指令引擎)251、存取电路252、以及一个或多个处理单元253。
命令解码器251可以从CPU 210接收命令或通过一个或多个存储器310-1和310-2接收命令,并且可以控制GPU 260执行命令,或根据命令控制GPU 260。例如,命令解码器251可以从CPU 210接收与多个模型之一相关的地址或与多个模型相关的多个地址,并且可以发送该地址或多个地址到存取电路252。存取电路252可以使用从CPU 210发送的地址或者从处理单元253中的一个发送来的地址从第一存储器310-1读出模型,并且可以发送已经读取到图形管线(例如,图3中的260A)的模型。
处理单元253可以包括可编程处理单元、固定功能处理单元、以及估计(即,计算或测量)计算装置100的至少一个属性和特征中的至少一个并发送估计结果到存取电路252的估计单元。例如,可编程处理单元可以是能够执行至少一个着色器程序的可编程着色器单元。可编程着色器单元可从CPU 210下载到GPU 260。运行在处理单元253中的可编程着色单元可以包括一个或多个顶点着色器单元、外壳着色器器单元、域着色器单元、几何着色器单元、像素着色器单元(或片段着色器单元)、和/或统一着色器单元。
固定功能处理单元可以包括诸如在此描述的硬件单元205的硬件组件。硬件组件可以是用于执行给定功能的硬连线。例如,在处理单元253中的固定功能的处理单元可包括执行光栅操作的处理单元。例如,处理单元253可以形成三维图形管线。例如,三维图形管线可能符合OpenGL API、Open GL ES API,DirectX API,Renderscript API,WebGL API或OpenAPI。
图形管线260A可以包括在图2所示的一个或多个处理单元253和资源块263中执行的多个处理级。处理级(或处理单元253)可以包括但不限于输入集成器261-1、顶点着色器261-2、外壳着色器261-3、曲面细分器261-4、域着色器261-5、几何着色器261-6、光栅化器261-7、像素着色器261-8、以及输出合并261-9中的一些或全部。
外壳着色器261-3、曲面细分器261-4、以及域着色器261-5可以形成图形管线260A的细分级。因此,细分级可以执行细分(或细分操作)。像素着色器261-8可以称为片段着色器。例如,输入组合器261-1、曲面细分器261-4、光栅化器261-7以及输出合并器261-9是固定功能级。顶点着色器261-2、外壳着色器261-3、域着色器261-5、几何着色器261-6、以及像素着色器261-8是可编程级。
可编程级具有在其中可以执行特定类型的着色器程序的结构。例如,顶点着色器261-2可以执行顶点着色器程序,外壳着色器261-3可以执行外壳着色器程序,域着色器261-5可以执行域着色器程序,几何着色器261-6可以执行几何着色器程序,以及像素着色器261-8可以执行像素着色器程序。每个着色器程序可在适当的时间在GPU 260的着色器单元中执行。
不同的着色器程序可以在GPU 260的通用着色器(或通用着色单元)中执行。例如,通用着色器可以是统一着色器。在其他实施例中,至少一个专用着色器可以专门地执行至少一种特定类型的着色器程序。
输入集成器261-1、顶点着色器261-2、外壳着色器261-3、域着色器261-5、几何着色器261-6、像素着色器261-8、以及输出合并261-9可以经由一个或多个连接器或接口直接或间接地与资源数据块263进行通信。因此,输入集成器261-1、顶点着色器261-2、外壳着色器261-3、域着色器261-5、几何着色器261-6、像素着色器261-8、以及输出合并261-9可以从资源块263检索或接收输入数据。几何着色器261-6以及输出合并261-9可以分别包括输出,用于将输出数据写到资源块263。
图3中示出的从部件261-1到261-9的每一个和资源块263之间的通信只是例子,并且可以以各种方式修改。因此,除了本发明构思的实施例的组件(例如,261-1和261-4)的操作,组件261-1到261-9的操作是与微软的DirectX 11所限定的图形管线基本相同或相似的。因此,详细的说明因而将省略。
输入集成器261-1提供用于图形管线260A的图形相关的数据(例如,三角形、线和/或点)。由存取电路252读取的模型可以提供给输入集成器261-1。输入集成器261-1从资源块263读取数据(例如,三角形、线和/或点)并将数据组合到可以在其他的处理级中使用的图元中。输入集成器261-1集成顶点到不同类型的图元(例如,线列表、三角形条带或者带有临街信息的图元)。
顶点着色器261-2处理(例如,执行转换、表面变换(skinning)、变形以及诸如逐顶点照明的对每个顶点的操作)从输入集成器261-1输出的组装的顶点。顶点着色器261-2采用或操作单独的输入顶点,并生成单独的输出顶点。
外壳着色器261-3转换从顶点着色器261-2输出的输入控制点,并将低阶表面定义为构成块的输出控制点。外壳着色器261-3可以执行对每个块的计算以为曲面细分器261-4和域着色器261-5提供数据。
例如,外壳着色器261-3可以从顶点着色器261-2接收输入的控制点、生成输出控制点(可以与输入控制点相同)、块恒定数据、以及细分因子数量无关的细分因子,输出输出控制点和细分因子到曲面细分器261-4,并输出块恒定数据和细分因子到域着色器261-5以进行处理。
曲面细分器261-4可以使用输出控制点和细分因子将域(例如,四边形、三角形、或边)细分为更小的物体(如三角形、点或线)。域着色器261-5计算从外壳着色器261-3输出的输出控制点的顶点位置以及从曲面细分器261-4输出的块的细分点的顶点位置。
图4是图1中示出的计算装置100的第一存储器310-1的结构图。参照图1和图4,第一存储器310-1可以由GPU 260存取,并包括多个存储区域MEM1到MEM5。在渲染操作之前,分别具有不同复杂度的模型MOD1到MOD5分别存储在存储区域MEM1到MEM5。存储区域MEM1到MEM5可以分别通过地址ADD1到ADD5来选择或定义。这里,术语“模型”可以是对象的上位概念。
图5是具有不同复杂度的模型MOD1到MOD5的概念图。参照图4和图5,假定与第一模型MOD1具有最低的复杂度以及第五模型MOD5具有最高的复杂度。换句话说,第二模型MOD2的复杂度比第一模型MOD1的更高,第三模型MOD3的复杂度比第二模型MOD2的更高,第四模型MOD4的复杂度比第三个模型MOD3的更高,以及第五模型MOD5的复杂度比第四模型MOD4的更高。模型MOD1-MOD5可能需要不同量的例如图形处理所需要的计算能力,并取决于不同复杂度。
虽然在图4和图5中示出了具有不同复杂度的五种模型MOD1到MOD5,但是这些只是例子。在其它实施例中,至少一个模型可以对应于两个模型MOD1及MOD2、MOD2和MOD3、MOD3和MOD4、或MOD4和MOD5之间存在。
参考图1至图5,CPU 210可以估计(即,计算或测量)计算装置100的一个或多个属性或特征中的至少一个,根据估计(即,计算或测量)结果选择分别对应于存储模型MOD1到MOD5的第一存储器310-1的存储区域MEM1到MEM5的地址ADD1到ADD5,并将所选择的地址发送到GPU 260。
如上所述,一个或多个属性或特征可以包括GPU 260和存储器310-1之间的频带、GPU 260的计算能力、GPU 260的最大功耗、根据GPU 260的DVFS确定的电压和频率、和/或GPU的260的温度,等等。
例如,在计算装置100是台式计算机或计算机工作站的实施例中,CPU 210可以根据估计(即计算或测量)结果,将与存储具有最高的复杂度的第五模型MOD5的第五存储区域MEM5相应的第五地址ADD5发送至GPU 260。
然而,当计算装置100是像智能电话的便携式电子装置时,CPU 210可以根据估计(即计算或测量)结果,将与存储具有最低复杂度的第一模型MOD1的第一存储器区MEM1的第一地址ADD1到GPU 260。在其中计算装置100是包括电池203的便携式电子装置的实施例中,计算装置100的属性或特征可以包括电池203的剩余值,其在一些实施例中可被显示。
因此,当电池203的剩余值是第一值时,CPU 210可以发送与第二模型MOD2对应的第二地址ADD2到GPU 260,并且当电池203的剩余值是第二值时,可以发送与第一模型MOD1对应的第一地址ADD1到GPU 260。此时,第一值可以比第二值更高。
GPU 260可以从CPU 210接收地址,使用该地址从存储区域MEM1到MEM5中的一个读取模型,使用模型的几何信息计算模型的复杂度,将参考复杂度和所计算的复杂度进行比较,并根据该比较结果确定是否要对模型执行细分。
可替代地,CPU 210可以发送分别与分别存储模型MOD1到MOD5的存储区域MEM1到MEM5对应的地址列表ADD1到ADD5给GPU 260。GPU 260可以从CPU 210接收地址ADD1到ADD5,估计(即,计算或测量)计算装置100的一个或多个属性或特征中的至少一个,并且可以根据估计(即计算或测量)结果,选择与模型MOD1到MOD5相关的地址ADD1到ADD5之一。
如上所述,所选择的地址可以发送到存取电路252。GPU 260,更具体地,存取电路252可以使用所选择的地址从存储区域MEM1到MEM5之一读取模型,使用模型的几何信息计算模型的复杂度,将参考复杂度和所计算的复杂度进行比较,并根据该比较结果确定是否要对模型执行细分。
已使用资源块263读出的模型可以被发送给输入集成器261-1。例如,GPU 260的存取电路252可以使用从CPU 210接收的或者由GPU 260选择的地址读取存储在与该地址相应的存储区域中的模型。
几何信息可以包括一个或多个控制点的深度值或由包含在模型中的控制点所限定的曲率。例如,外壳着色器261-3,它是图形管线260A的曲面细分级的一部分,可以使用模型的几何信息计算模型的复杂度,将参考复杂度和所计算的复杂度进行比较,并发送对应于比较结果的比较信息INF到曲面细分器261-4。
曲面细分器261-4可以接收关于模型和比较信息INF的数据,并基于比较信息INF确定是否对模型执行细分。换句话说,曲面细分器261-4可以对模型执行细分,或者可替代地,可以原封不动地传递该模型到域着色器261-5。
图6是根据本发明构思的一些实施例计算所选择的模型的复杂度的方法的图。GPU260,更具体地,本文中描述的在一些实施例中的外壳着色器261-3可以使用诸如控制点的深度值的模型的几何信息计算模型的复杂度,并且可以执行比较。
CPU 210或GPU 260可以基于计算装置100的属性,生成一个地址,使能(或读取)是最接近于计算装置100所期望的一个的模型被读取。因此,GPU 260使用该地址从第一存储器310-1读取最接近计算装置100所期望的模型。
图6是为描述的方便起见提供的示例性概念图。参考第一情况CASE1,当由GPU 260读出的模型包括包括四个控制点P11、P12、P13、和P14的四边形块并且控制点P11、P12、P13和P14的深度值都小于参考深度值RDEP(例如,当块相对接近观看者)时,外壳着色器261-3可以发送指示对模型执行细分的比较信息INF到曲面细分器261-4。因此,曲面细分器261-4可以对从外壳着色器261-3接收的模型执行细分操作。
然而,参照第三种情况CASE3,当由GPU 260读出的模型是包括四个控制点P31、P32、P33和P34的四边形块并且控制点P31、P32、P33和P34的深度值大于参考深度值RDEP(例如,当块相对远离观察者)时,外壳着色器261-3可以发送指示传递模型到曲面细分器261-4的比较信息INF。因此,曲面细分器261-4不对从外壳着色器261-3接收到的模型执行细分。由于曲面细分器261-4不执行细分操作,所以降低了在其他情况下在曲面细分器261-4中生成的处理密集型的开销。其结果是,图形管线260A的开销降低。
参照第二种情况CASE2,当由GPU 260读出的模型是包括四个控制点P21、P22、P23和P24的四边形块并且在控制点P21、P22、P23和P24之中仅控制点P21的深度值小于参考深度值RDEP时,外壳着色器261-3可以向本曲面细分器261-4发送指令曲面细分器261-4执行对模型的细分操作的比较信息INF,或者发送指令根据已设置的程序传递模型的比较操作信息INF。
作为替代方案,GPU 260可以读取具有比计算装置100所期望的一个更高复杂度的模型。例如,当计算装置100期望的模型是第一模型MOD1并且由GPU 260读取的模型是第三、第四或第五模型MOD3、MOD4、或MOD5时,则外壳着色器261-3可以向曲面细分器261-4发送即使在CASE1、CASE2和CASE3任何情况下,也指示传递一个或多个模型MOD3、MOD4、或MOD5的比较信息INF。
作为另一替代方案,GPU 260可以读取具有比计算装置100所期望的一个更低复杂度的模型。例如,当计算装置100所期望的模型是第五模型MOD5并且GPU 260读出的模型是第一、第三或第四模型MOD1、MOD3、MOD4时,外壳着色器261-3可以向本曲面细分器261-4发送即使在上述任何情况CASE1、CASE2和CASE3下也指示对模型MOD1、MOD3或MOD4执行细分操作的比较信息INF。
图7是根据本发明构思的其它实施例计算所选择的模型的复杂度的方法的图。参照图3至图5以及图7,GPU 260,更具体地,外壳着色器261-3可以使用诸如由一组控制点P41、P42、P43和P44限定的曲率的模型的几何信息计算模型的复杂度,并可以执行比较。
假设CPU 210或GPU 260基于计算装置100的属性生成使能(或读取)最接近由计算装置100所期望的一个模型被读取。因此,GPU 260使用该地址从第一存储器310-1中读取最接近计算装置100所期望的一个的模型。
当由包含在由GPU 260读出的模型中的控制点P41、P42、P43和P44所限定的曲率CV1大于参考曲率RCV时,外壳着色器261-3可以向本曲面细分器261-4发送指令对模型执行细分操作的比较信息INF。然而,当由包含在由GPU 260读出的模型中的控制点P41、P42、P43和P44所限定的曲率CV2小于参考曲率RCV时,外壳着色器261-3可以向曲面细分器261-4发送指示传递模型的比较信息INF。
可替代地,作为替代方案,GPU 260可以读取具有比计算装置100所期望的一个更高复杂度的模型。例如,当由计算装置100期望的模型是第一模型MOD1并且由GPU 260读取的模型是第三、第四或第五模型MOD3、MOD4、或MOD5时,则外壳着色器261-3可以向曲面细分器261-4发送指令传递一个或多个模型MOD3、MOD4、或MOD5的比较信息INF而不论所计算的曲率为何。
可替代地,GPU 260可以读取具有比由计算装置100所期望的一个更低的复杂度。例如,当由计算装置100所期望的模型是第五模型MOD5并且GPU 260读出的模型是第一、第三或第四模型MOD1、MOD3、MOD4时,外壳着色器261-3可以向本曲面细分器261-4发送指令对模型MOD1、MOD3或MOD4执行细分操作的比较信息INF,而不论所计算的曲率为何。
图8是具有不同复杂度的模型MOD11、MOD12、MOD13和MOD14概念图。参照图4和图8,具有不同复杂度的模型MOD11、MOD12、MOD13和MOD14可以分别存储在存储区域MEM1到MEM4中。一个模型,例如,MOD1或MOD11,存储在第一存储区域MEM1中。一个模型,例如,MOD2或MOD12,存储在第二存储区域MEM2中。一个模型,例如,MOD3或MOD13,存储在第三存储区域MEM3中。一个模型,例如,MOD4或MOD14,存储在第四存储区域MEM4中。
包括在第九模型MOD14的块(例如,三角形)的数量M4大于包括在第八模型MOD13中的块(例如,三角形)的数量M3。包括在第八模型MOD13中的块(例如,三角形)的数量M3大于包括在第七模型MOD12中的块(例如,三角形)的数量M 2。包括在第七模型MOD12中的块(例如,三角形)的数量M 2大于包括在第六模型MOD11中的块(例如,三角形)的数量M1。
虽然图8中示出的实施例中的块是三角形,但是在其他实施例中,块可能是为四边形。包括在模型中的块的数量与模型的复杂度有关。详细地,包括在模型中块的数量越多,模型的复杂度越高。模型MOD11、MOD12、MOD13和MOD14中的每一个通过输入集成器261-1和顶点着色器261-2发送到外壳着色器261-3。GPU 260,更具体地,存取电路252,可以基于由CPU 210或GPU 260选择的地址读取存储在第一存储器310-1中的模型MOD11、MOD12、MOD13和MOD14中的一个。
图9A和图9B是示出对具有不同复杂度的模型执行细分操作的结果。在图9A示出的图像TES1可以对应于图8所示的第九模型MOD14。图9B示出的图像TES2可对应于图8中所示的第六模型MOD11。
当GPU 260从第一存储器310-1读取模型MOD11、MOD12或MOD13时,曲面细分器261-4根据从外壳着色器261-3接收的比较信息INF对模型MOD11、MOD12、或MOD13执行细分操作。此时,图9A的图像TES1可以对应于已细化的模型MOD11、MOD12或MOD13。
然而,当模型MOD14由GPU 260从第一存储器310-1读出时,曲面细分器261-4并不根据从外壳着色器261-3接收的比较信息INF对模型MOD14执行细分。此时,图9A的图像TES1可以对应于尚未细化的模型MOD14。
当模型MOD11由GPU 260从第一存储器310-1读出时,曲面细分器261-4根据从外壳着色器261-3接收到的比较信息INF对模型MOD11执行细分操作。此时,图9B的图像TES2可以对应于已细化的模型MOD11。
图10是在图1中所示的计算装置100的操作的流程图。参照图1至图10,在渲染操作之前,CPU 210、GPU 260和/或其他建模器的组合通过MOD14生成具有不同复杂度的多个模型MOD1到MOD5或MOD11到MOD14,并在操作S110中在可以由GPU 260存取的存储器中存储模型MOD1到MOD5或MOD11到MOD14。CPU 210或GPU 260在操作S120中估计计算装置100的属性或特征中的至少一个。
GPU 260,并且更具体地,存取电路252,在操作S130中使用由CPU 210或GPU 260选择的地址(即,估计结果)从存储器读出模型MOD1到MOD5或MOD11到MOD14中的一个。已经读取的模型提供给图形管线260A。
图形管线260A,并且更具体地,细分级(例如,外壳着色器261-3),基于模型的几何信息计算模型的复杂度,并在操作S140中比较参考复杂度与所计算的复杂度。所计算的复杂度和参考复杂度可通过包括在模型中的诸如三角形、多边形、几何图元等等的块的控制点的深度值或由控制点所限定的曲率进行定义。外壳着色器261-3可以以对象、图元、块、边、顶点或控制点为单元计算模型的复杂度。
当所计算的复杂度被确定为小于参考复杂度时,即,当需要模型的细分时,外壳着色器261-3向曲面细分器261-4发送指令执行细分操作的比较信息INF。此时,外壳着色器261-3可以发送模型和细分操作的细分因子到曲面细分器261-4。曲面细分器261-4在操作S150中对模型执行细分操作。
然而,当所计算的复杂度大于参考复杂度时,也即,当不需要模型的细分时,外壳着色器261-3向曲面细分器261-4发送指令不细分传递模型的比较信息INF。曲面细分器261-4在操作S160中不对模型执行细分操作。
图11是根据本发明构思的一些实施例从具有不同复杂度的模型中选择模型的方法的图。一些或所有的方法可在诸如本文描述的CPU 210和/或GPU 260的硬件装置来执行。在图11中示出的实施例中,CPU210估计计算装置100的属性或特征。参考图1至图7和图11,在渲染操作之前,在操作S210中,CPU 210、GPU 260或建模器生成具有不同复杂度的多个模型MOD1到MOD5,并在可以由GPU 260存取的第一存储器310-1中存储模型MOD1到MOD5。
CPU 210在操作S220中估计(即,计算或测量)计算装置100的属性或特征中的至少一个。如图2、图4和图5中所示,在操作S230中,根据估计(即计算或测量)结果,CPU 210分别发送与分别存储模型MOD1到MOD5的存储区域MEM1到MEM5对应的地址ADD1至ADD5之间的地址(例如,ADDi,其中1≤i≤5)到GPU 260。
GPU 260在操作S240中从CPU 210接收地址ADDi并使用地址ADDi从存储区域MEM1到MEM5中的一个读取模型MODi。GPU 260使用与模型MODi相关的几何信息计算模型MODi的复杂度,并在操作S250中比较参考复杂度和所计算的复杂度。
GPU 260可以在操作S260中根据比较结果确定是否对模型MODi执行细分操作。换句话说,曲面细分器261-4在操作S260中根据比较信息INF可以或可以不对模型Modi执行细分操作。
图12是根据本发明构思的其它实施例从具有不同复杂度的模型之中选择模型的方法的图。在图12所示的实施例中,GPU 260估计计算装置100的属性或特征。参照图1至图7和图12,在渲染操作之前,在操作S310中,CPU 210、GPU 260或建模器生成具有不同复杂度的多个模型MOD1到MOD5并在可以由GPU 260存取的第一存储器310-1中存储模型MOD1到MOD5。
CPU 210可以在操作S320中发送与存储模型MOD1到MOD5的存储区域MEM1到MEM5对应的多个地址ADD1到ADD5到GPU 260。GPU 260在操作S330中从CPU 210接收地址ADD1到ADD5并估计(即,计算或测量)计算装置100的属性或特征中的至少一个。
GPU 260在操作S340中根据估计(即,计算或测量)的结果在地址ADD1到ADD5中选择地址(例如,ADDj,其中1≤j≤5),并在操作S350中使用所选择的地址ADDj从存储区域MEM1到MEM5读取模型MODj。GPU 260在操作S360中使用与模型MODj相关的几何信息计算模型MODj的复杂度并比较参考复杂度和所计算的复杂度。
GPU 260可以在操作S370中根据比较结果确定是否对模型MODj执行细分操作。换句话说,曲面细分器261-4在操作S370根据比较信息INF可以或可以不对模型MODj执行细分操作。
图13是根据本发明构思的一些实施例的包括图形卡500的计算装置100A的框图。参考图13,计算装置100A可包括CPU 210、图形卡500和显示器400。计算装置100A可以是TV(例如,数字TV或智能TV)、PC、台式计算机、膝上型计算机、计算机工作站或使用图形卡500的计算装置。
图形卡500包括GPU 260、接口510、图形存储器520、数字-模拟转换器(DAC)530、输出端口540和卡连接器550。接口510可以从CPU 210发送命令和/或数据到图形存储器520,或者可以发送关于图形卡500的信息到CPU 210。图形存储器520可以存储由GPU 26生成的数据,并且可以从CPU 210发送命令到GPU 260。
结合CPU 210,GPU 260执行参考图1至图12所描述的操作的一个或多个。在GPU260中生成的数据发送到图形存储器520。
DAC 530将数字信号转换成模拟信号。输出端口540从DAC 530发送模拟信号,也即,图像信号,到显示器400。卡连接器550插入到包括CPU 210的主板的槽。
根据本发明构思的一些实施例,GPU判断是否对从准备好的模型中选择的模型执行细分,由此减少图形管线的开销(即,细分)。此外,在渲染操作之前,GPU在存储器中存储具有不同复杂度的模型,根据计算装置的特性,选择模型中的一个,并确定是否要对选择的模型执行细分,从而减少了图形管线(即,细分)开销。
虽然参考其示例实施例已具体示出并描述了本发明构思,但是本领域的普通技术人员应理解,可以做出形式和细节上的各种变化,而不脱离如以下权利要求所限定的本发明构思的精神和范围。
Claims (17)
1.一种图形处理单元,用于根据中央处理单元的控制,确定是否对多个准备好的模型之中的第一模型执行细分操作,该图形处理单元包括:
存取电路,被配置为从存储器中读取第一模型,存储器中存储多个准备好的具有不同复杂度的模型,计算所述第一模型的复杂度,将参考复杂度和所计算的复杂度进行比较,并根据比较结果确定是否对第一模型执行细分操作,
其中所述图形处理单元被配置为从中央处理单元接收与存储模型的存储器中的存储区域对应的一个或多个地址,估计图形处理单元和存储器之间的带宽、图形处理单元的计算功率、图形处理单元的最大功耗、根据图形处理单元的动态电压频率调节确定的电压和频率、以及图形处理单元的温度中的至少一个,基于估计结果从地址中选择第一地址,使用所选第一地址从存储区域之中的第一存储区域中读取第一模型,使用第一模型的几何信息计算第一模型的复杂度,并根据将参考复杂度和所计算的复杂度进行比较的结果,确定是否对第一模型执行细分操作。
2.如权利要求1所述的图形处理单元,其中所述图形处理单元被配置为以对象、图元、块、边、顶点和控制点中的一个为单位计算第一模型的复杂度。
3.如权利要求2所述的图形处理单元,其中所述图形处理单元被配置为基于包括在图元中的顶点的深度值或由顶点限定的曲率计算所述第一模型的复杂度。
4.如权利要求2所述的图形处理单元,其中所述图形处理单元被配置为基于包括在块中的控制点的深度值或由控制点所限定的曲率计算第一模型的复杂度。
5.一种片上系统,包括:
图形处理单元,其包括多个细分级;
中央处理单元;
由图形处理单元存取的存储器;以及
由中央处理单元控制的存储器控制器,
其中,所述图形处理单元被配置为根据中央处理单元的控制,通过存储器控制器,从存储器读取第一模型,所述存储器中存储多个准备好的具有不同复杂度的模型,计算所述第一模型的复杂度,将参考复杂度和所计算的复杂度进行比较,并根据比较结果确定是否对所述第一模型执行细分,
其中所述中央处理单元被配置为估计图形处理单元和存储器之间的频带、图形处理单元的计算功率、图形处理单元的最大功耗、根据图形处理单元的动态电压频率调节确定的电压和频率、以及图形处理单元的温度中的至少一个;并基于估计结果发送与存储模型的存储器的存储区域对应的地址之中的第一地址到图形处理单元,并且所述图形处理单元被配置为使用第一地址从存储区域中的第一存储区域中读取第一模型。
6.如权利要求5所述的片上系统,其中所述图形处理单元被配置为使用包括在第一模型中的每一个块的控制点的几何信息计算复杂度。
7.如权利要求6所述的片上系统,其中,所述几何信息是控制点的深度值或由控制点所限定的曲率。
8.如权利要求6所述的片上系统,其中在渲染操作之前存储所述模型的存储器在片上系统外部实现。
9.如权利要求6所述的片上系统,其中所述片上系统被配置为当第一模型的复杂度小于参考复杂度时,对第一模型执行细分操作。
10.如权利要求5所述的片上系统,其中所述细分级包括:
外壳着色器;
曲面细分器;以及
域着色器,
其中,所述计算和比较由所述外壳着色器执行,所述确定由所述曲面细分器执行,以及
其中所述曲面细分器被配置为基于确定的结果传递第一模型到域着色器或使用由曲面细分器发送的细分因子对第一模型执行细分。
11.一种计算装置,包括:
被配置为存储多个准备好的具有不同复杂度的模型的存储器;
显示器;以及
被配置为控制所述存储器和所述显示器的片上系统,
其中片上系统包括:
图形处理单元,其包括细分级;
中央处理单元;
被配置为根据中央处理单元的控制来控制显示器的显示控制器;以及
被配置为根据中央处理单元的控制来控制存储器的存储器控制器,
其中,所述图形处理单元被配置为通过存储器控制器从存储模型的存储器读取第一模型,计算第一模型的复杂度,将所计算的复杂度和参考复杂度进行比较,并根据中央处理单元的控制根据比较结果确定是否要对第一模型执行细分操作,
其中所述中央处理单元被配置为估计图形处理单元和存储器之间的频带、图形处理单元的计算功率、图形处理单元的最大功耗、根据图形处理单元的动态电压频率调节DVFS确定的电压和频率、以及图形处理单元的温度中的至少一个,并基于估计结果发送与存储模型的存储器的存储区域对应的地址之中的第一地址到图形处理单元,并且所述图形处理单元被配置为使用第一地址从存储区域中的第一存储区域中读取第一模型。
12.如权利要求11所述的计算装置,其中所述图形处理单元被配置为以对象、图元、块、边、顶点、或控制点中的一个为单元计算第一模型的复杂度。
13.如权利要求11所述的计算装置,其中所述图形处理单元被配置为当第一模型的复杂度小于参考复杂度时,对第一模型执行细分操作。
14.一种图形处理单元系统,包括:
存储器,被配置为存储多个准备好的具有不同复杂度的模型;
图形处理器,被配置为从存储器读取多个准备好的模型的模型、计算模型的复杂度、将参考复杂度和所计算的复杂度进行比较、并确定是否要响应于比较对模型执行细分操作,
中央处理单元,被配置为将与存储模型的存储器的存储区域相对应的一个或多个地址发送到图形处理单元,以及
所述图形处理器被配置为估计图形处理器和存储器之间的频带、图形处理器的计算功率、图形处理器的最大功耗、根据图形处理器的动态电压频率调节确定的电压和频率、以及图形处理器的温度中的至少一个,并基于估计结果选择地址之中的第一地址,并且使用第一地址从存储区域中的第一存储区域中读取第一模型。
15.如权利要求14所述的图形处理单元系统,其中,所述图形处理器包括,根据从中央处理单元或从存储器接收到的命令控制所述图形处理单元系统的命令解码器。
16.如权利要求14所述的图形处理单元系统,其中所述图形处理器包括存取电路,其被配置为使用所选择的地址,从存储区域读取模型,使用模型的几何信息计算模型的复杂度,将参考复杂度和所计算的复杂度进行比较,并响应于比较结果确定是否对模型执行细分操作。
17.如权利要求14所述的图形处理单元系统,其中所述图形处理器包括用于执行光栅操作的一个或多个处理单元。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140167153A KR102313020B1 (ko) | 2014-11-27 | 2014-11-27 | 그래픽스 프로세싱 유닛과 이를 포함하는 장치 |
KR10-2014-0167153 | 2014-11-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105654418A CN105654418A (zh) | 2016-06-08 |
CN105654418B true CN105654418B (zh) | 2021-01-05 |
Family
ID=55967989
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510844088.XA Active CN105654418B (zh) | 2014-11-27 | 2015-11-26 | 图形处理单元和包括其的装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10140677B2 (zh) |
KR (1) | KR102313020B1 (zh) |
CN (1) | CN105654418B (zh) |
DE (1) | DE102015117768A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170358132A1 (en) * | 2016-06-12 | 2017-12-14 | Apple Inc. | System And Method For Tessellation In An Improved Graphics Pipeline |
US10460513B2 (en) | 2016-09-22 | 2019-10-29 | Advanced Micro Devices, Inc. | Combined world-space pipeline shader stages |
KR20180067220A (ko) | 2016-12-12 | 2018-06-20 | 삼성전자주식회사 | 모션 기반 영상을 처리하는 방법 및 장치 |
US11388050B2 (en) * | 2017-10-03 | 2022-07-12 | Dell Products L.P. | Accelerating machine learning and profiling over a network |
US11037356B2 (en) | 2018-09-24 | 2021-06-15 | Zignal Labs, Inc. | System and method for executing non-graphical algorithms on a GPU (graphics processing unit) |
JP2022545604A (ja) * | 2019-08-20 | 2022-10-28 | インテル コーポレイション | 切り替え可能なグラフィックシステムのパフォーマンス、エネルギー消費ベースのアプリケーション、及びリアルタイムシステムの電力/熱バジェットを改善するための機器及び方法 |
CN110706147B (zh) * | 2019-09-29 | 2023-08-11 | 阿波罗智联(北京)科技有限公司 | 图像处理的环境确定方法、装置、电子设备和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060125824A1 (en) * | 2004-12-14 | 2006-06-15 | Adrian Sfarti | Rapid zippering for real time tesselation of bicubic surfaces |
WO2010121085A1 (en) * | 2009-04-16 | 2010-10-21 | Ioan Alexandru Salomie | Scalable particle interactive networks |
CN102196300A (zh) * | 2010-03-18 | 2011-09-21 | 国际商业机器公司 | 虚拟世界场景的图像的提供方法和设备及处理方法和设备 |
CN102497550A (zh) * | 2011-12-05 | 2012-06-13 | 南京大学 | H.264编码中运动补偿插值的并行加速方法及装置 |
CN102663822A (zh) * | 2012-03-07 | 2012-09-12 | 上海大学 | 基于细分方法的分子表面网格生成方法 |
CN102880587A (zh) * | 2012-10-09 | 2013-01-16 | 无锡江南计算技术研究所 | 基于嵌入式加速核心的独立显卡架构 |
US20130265309A1 (en) * | 2012-04-04 | 2013-10-10 | Qualcomm Incorporated | Patched shading in graphics processing |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6356263B2 (en) * | 1999-01-27 | 2002-03-12 | Viewpoint Corporation | Adaptive subdivision of mesh models |
US20030210271A1 (en) | 2002-05-13 | 2003-11-13 | King William Davis | Power based level-of- detail management system for a portable computer graphics display |
JP2004213641A (ja) | 2002-12-20 | 2004-07-29 | Sony Computer Entertainment Inc | 画像処理装置、画像処理方法、情報処理装置、情報処理システム、半導体デバイス、コンピュータプログラム |
US7262713B1 (en) | 2004-09-30 | 2007-08-28 | Rockwell Collins, Inc. | System and method for a safe depiction of terrain, airport and other dimensional data on a perspective flight display with limited bandwidth of data presentation |
KR100809522B1 (ko) | 2005-12-08 | 2008-03-04 | 한국전자통신연구원 | 지형의 효율적인 뷰-의존 lod 렌더링 방법 |
KR100745768B1 (ko) | 2006-08-29 | 2007-08-02 | 삼성전자주식회사 | 전력 소비를 감소시키기 위한 lod 값 계산 방법과이것을 이용한 3차원 렌더링 시스템 |
US7948500B2 (en) | 2007-06-07 | 2011-05-24 | Nvidia Corporation | Extrapolation of nonresident mipmap data using resident mipmap data |
US20090195541A1 (en) | 2008-02-05 | 2009-08-06 | Rambus Inc. | Rendering dynamic objects using geometry level-of-detail in a graphics processing unit |
JP5419044B2 (ja) | 2008-12-20 | 2014-02-19 | 国立大学法人 東京大学 | ボリュームデータの実時間レンダリング方法及び装置 |
WO2011035800A2 (en) * | 2009-07-24 | 2011-03-31 | Uws Ventures Ltd. | Direct ray tracing of 3d scenes |
US8532924B2 (en) | 2009-09-02 | 2013-09-10 | Alpine Electronics, Inc. | Method and apparatus for displaying three-dimensional terrain and route guidance |
FI20096354A0 (fi) | 2009-12-18 | 2009-12-18 | Visual Components Oyj | Yksityiskohtien prosessoinnin taso |
US9165403B2 (en) | 2011-01-14 | 2015-10-20 | Intel Corporation | Planetary scale object rendering |
US8654124B2 (en) | 2012-01-25 | 2014-02-18 | Google Inc. | Texture fading for smooth level of detail transitions in a graphics application |
-
2014
- 2014-11-27 KR KR1020140167153A patent/KR102313020B1/ko active IP Right Grant
-
2015
- 2015-08-11 US US14/823,476 patent/US10140677B2/en active Active
- 2015-10-19 DE DE102015117768.4A patent/DE102015117768A1/de active Pending
- 2015-11-26 CN CN201510844088.XA patent/CN105654418B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060125824A1 (en) * | 2004-12-14 | 2006-06-15 | Adrian Sfarti | Rapid zippering for real time tesselation of bicubic surfaces |
WO2010121085A1 (en) * | 2009-04-16 | 2010-10-21 | Ioan Alexandru Salomie | Scalable particle interactive networks |
CN102196300A (zh) * | 2010-03-18 | 2011-09-21 | 国际商业机器公司 | 虚拟世界场景的图像的提供方法和设备及处理方法和设备 |
CN102497550A (zh) * | 2011-12-05 | 2012-06-13 | 南京大学 | H.264编码中运动补偿插值的并行加速方法及装置 |
CN102663822A (zh) * | 2012-03-07 | 2012-09-12 | 上海大学 | 基于细分方法的分子表面网格生成方法 |
US20130265309A1 (en) * | 2012-04-04 | 2013-10-10 | Qualcomm Incorporated | Patched shading in graphics processing |
CN102880587A (zh) * | 2012-10-09 | 2013-01-16 | 无锡江南计算技术研究所 | 基于嵌入式加速核心的独立显卡架构 |
Non-Patent Citations (2)
Title |
---|
Anjul Patney等.Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces.《Proceedings of the Conference on High Performance Graphics 2009》.2009, * |
Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces;Anjul Patney等;《Proceedings of the Conference on High Performance Graphics 2009》;20090831;第99-108页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105654418A (zh) | 2016-06-08 |
US20160155209A1 (en) | 2016-06-02 |
DE102015117768A1 (de) | 2016-06-02 |
KR20160063648A (ko) | 2016-06-07 |
KR102313020B1 (ko) | 2021-10-15 |
US10140677B2 (en) | 2018-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105654418B (zh) | 图形处理单元和包括其的装置 | |
KR102197064B1 (ko) | Lod를 조절할 수 있는 그래픽스 프로세싱 유닛, 이의 작동 방법, 및 상기 그래픽스 프로세싱 유닛을 포함하는 장치들 | |
US8698802B2 (en) | Hermite gregory patch for watertight tessellation | |
US20150170406A1 (en) | Graphic processing unit, system-on-chip including graphic processing unit, and graphic processing system including graphic processing unit | |
US9665980B2 (en) | Graphics processing unit, method of operating the same, and devices including the same | |
US9576396B2 (en) | Graphics processing unit, graphics processing system including the same, and method of operating the same | |
US9779547B2 (en) | Tessellation method for assigning a tessellation factor per point and device performing the method | |
KR102188543B1 (ko) | 그래픽 처리 장치 | |
TW201142741A (en) | Edge processing techniques | |
KR20180056316A (ko) | 타일-기반 렌더링을 수행하는 방법 및 장치 | |
US8570324B2 (en) | Method for watertight evaluation of an approximate catmull-clark surface | |
US9552618B2 (en) | Method for domain shading, and devices operating the same | |
US8605085B1 (en) | System and method for perspective corrected tessellation using parameter space warping | |
US8558833B1 (en) | System and method for symmetric parameterization of independently tessellated patches | |
US9633458B2 (en) | Method and system for reducing a polygon bounding box | |
US20160071317A1 (en) | Graphics processing unit (gpu) including subdivider and device including the gpu | |
JP2014529143A (ja) | テクスチャ座標導関数を用いた高速化テクスチャ検索 | |
US9582935B2 (en) | Tessellation device including cache, method thereof, and system including the tessellation device | |
US9460559B2 (en) | Method of generating tessellation data and apparatus for performing the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |