CN104050627A - 线程机制的条件结束 - Google Patents
线程机制的条件结束 Download PDFInfo
- Publication number
- CN104050627A CN104050627A CN201410160221.5A CN201410160221A CN104050627A CN 104050627 A CN104050627 A CN 104050627A CN 201410160221 A CN201410160221 A CN 201410160221A CN 104050627 A CN104050627 A CN 104050627A
- Authority
- CN
- China
- Prior art keywords
- instruction
- thread
- pixel
- pixels
- execution
- 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
- 230000007246 mechanism Effects 0.000 title claims description 17
- 238000012545 processing Methods 0.000 claims abstract description 62
- 238000000034 method Methods 0.000 claims abstract description 28
- 230000008569 process Effects 0.000 abstract description 12
- 239000000872 buffer Substances 0.000 description 21
- 238000004891 communication Methods 0.000 description 12
- 238000009877 rendering Methods 0.000 description 10
- 238000003860 storage Methods 0.000 description 9
- 230000001052 transient effect Effects 0.000 description 9
- 238000004040 coloring Methods 0.000 description 7
- 239000012634 fragment Substances 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 3
- 230000005611 electricity Effects 0.000 description 3
- 238000005286 illumination Methods 0.000 description 3
- 238000011282 treatment Methods 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 206010038743 Restlessness Diseases 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 210000003414 extremity Anatomy 0.000 description 1
- 230000008921 facial expression Effects 0.000 description 1
- 210000003811 finger Anatomy 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000011221 initial treatment Methods 0.000 description 1
- WABPQHHGFIMREM-UHFFFAOYSA-N lead(0) Chemical compound [Pb] WABPQHHGFIMREM-UHFFFAOYSA-N 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
- 210000000707 wrist Anatomy 0.000 description 1
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
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- 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/44—Arrangements for executing specific programs
-
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Graphics (AREA)
- General Engineering & Computer Science (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
Abstract
本文描述一种图形处理单元、方法、计算机可读介质和系统。所述图形处理单元包括至少一个执行单元,所述执行单元配置为执行着色器。所述着色器包括指令,所述指令使所述执行单元并行处理多个像素直到所述多个像素的每一个被丢弃以及最后写入指令的执行;并且在所述多个像素的每一个被丢弃并且最后写入指令的执行之后,执行线程指令的条件结束,其中,所述线程指令的条件结束的执行用于终止所述线程。
Description
背景技术
可以在处理器上执行一个或多个着色器以便在计算系统上渲染音频或视频。在一些情况下,着色器是典型地作为图形子系统的一部分执行的一段代码。着色器能够用于向由图形处理单元(GPU)渲染管线渲染的图像应用各种效果。着色器可以对于诸如基于单指令多数据(SIMD)架构的各种计算架构中的像素执行计算。使用多个执行单元,GPU能够执行几个线程以便处理着色器在多个像素上的指令。按照这一方式,能够并行处理多个像素。
附图说明
图1说明了根据实施例的图形渲染管线;
图2A是表示根据实施例丢弃像素的方式的图;
图2B是表示根据实施例具有线程终止的条件结束的丢弃像素的方式的图;
图3是根据实施例插入条件线程终止的方法的处理流程图;
图4是根据实施例可以用于线程机制的条件结束的计算设备的方框图;
图5是根据实施例执行线程机制的条件结束的示例性系统的方框图;
图6是根据实施例其中可以体现图5的系统的小形状因数设备的示意图;
图7是表示存储用于线程机制的条件结束的代码的有形非暂态计算机可读介质的方框图。
在整个说明书和附图中使用相同的附图标记来指代类似的部件和特征。100系列中的数字指代最初在图1中发现的特征;200系列中的数字指代最初在图2中发现的特征;等等。
具体实施方式
如上面讨论的,可以并行地处理线程。每一个线程可以使用基于SIMD的计算架构来处理多个像素。诸如着色器的图形程序能够通过执行丢弃指令来去除线程的子集或者所有像素。丢弃指令指示将要被去除的像素的计算结果不被写入到特定的输出缓冲器。由于丢弃指令而没有被写入的输出缓冲器取决于用于对着色器进行写入的应用程序接口(API)。例如,使用DirectX,丢弃指令应用于被称为Render Target的输出缓冲器。使用OpenGL,丢弃指令应用于被称为Color Attachment的输出缓冲器。在丢弃指令之后,受丢弃指令影响的像素仍然由着色器处理,尽管它们将不被写入到输出缓冲器。丢弃指令之后的像素的处理会浪费处理周期并且不必要地消耗功率。
本文描述的实施例提供线程机制的条件结束。在一些实施例中,线程机制的结束是通过着色器编译器引入到着色器中的线程指令的结束。也可以将验证码引入到着色器中。验证码验证多个像素中的每一个像素的状态。如果多个像素中的所有像素已经被丢弃并且没有被写入到任何其它缓冲器,则可以通过线程指令的条件结束来终止该线程。通过验证所丢弃的像素,线程机制的结束可以基于像素的状态而被有条件地执行。当终止该线程时,系统性能可以通过节约处理周期而得到提升。此外,还可以节约系统功率。在一些实施例中,在诸如DirectX或OpenGL的规范中定义的丢弃指令与处理像素相关,并且如果对于给定像素的计算结果将最终被写入到被称为Render Target(DirectX)或Color Attachment(OpenGL)的输出缓冲器,则考虑条件指示。
在下面的说明书和权利要求书中,可以使用术语“耦接”和“连接”及其衍生词。应该理解,这些术语并不意在作为彼此的同义词。而是,在特定实施例中,“连接”可以用于指示两个或更多个元件彼此直接物理或电学接触。“耦接”可以意味着两个或更多个元件直接物理或电学接触。然而,“耦接”还可以意味着两个或更多个元件不彼此直接接触,但是仍然协同操作或者彼此相互作用。
一些实施例可以实现在硬件、固件和软件的一个或组合中。一些实施例还可以实现为存储在计算机可读介质上的指令,该指令可以由计算平台读取并且执行以便执行其中描述的操作。计算机可读介质可以包括用于以诸如计算机的机器可读形式存储或传输信息的任何机制。例如,机器可读介质可以包括只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光学存储介质;闪存设备;或者电学、光学、声学或其它形式的传播信号,例如载波、红外信号、数字信号或传输和/或接收信号的接口等等。
实施例是实现或者示例。在说明书中对“实施例”、“一个实施例”、“一些实施例”、“各种实施例”或“其它实施例”的提及意味着结合所述实施例描述的特定特征、结构或特性包括在本发明的至少一些实施例中,但是不必包括在本发明的所有实施例中。“实施例”、“一个实施例”或者“一些实施例”的各种出现不必全部指代相同的实施例。来自一个实施例的元件或方面可以与来自另一实施例的元件或方面进行组合。
并不是本文描述和说明的所有部件、特征、结构、特性等等都包括在特定的一个或多个实施例中。如果说明书例如陈述了“可以”、“或许”、“能够”或者“可能”包括部件、特征、结构、或特性,则不要求一定包括该特定部件、特征、结构、或特性。如果说明书或权利要求书提到“一”元件,则并不意味着仅存在一个元件。如果说明书或权利要求书提到“附加”元件,则不排除存在多于一个的附加元件。
应当注意的是,尽管参照特定实现描述了一些实施例,但是根据一些实施例,其它实现也是可能的。此外,在附图中说明的和/或在本文描述的电路元件或其它特征的布置和/或顺序不需要按照所说明和所描述的特定方式进行布置。根据一些实施例,许多其它布置也是可能的。
在图中示出的每一个系统中,一些情况下的元件可以分别具有相同的附图标记或者不同的附图标记以便表明所代表的元件可以相同和/或不同。然而,元件可以足够灵活以便具有不同的实现,并且与本文示出或描述的一些或所有系统一起工作。附图中示出的各种元件可以相同或者不同。哪一个元件被称为第一元件以及哪一个元件被称为第二元件是任意的。
图1说明了根据实施例的图形渲染管线100。尽管本文描述的管线包含某些元件,但是图形管线可以包含与本文描述的那些相比较更多或更少的元件。图形渲染管线100用于示例性目的。管线可以指代一组链接的计算处理。发送数据作为到管线中的第一处理的输入,将每一个处理的输出发送到下一个处理作为输入,直到数据离开了该链接的一组处理。
将图形数据典型地作为形成2维(2D)或三维(3D)图像的几何形状的一组顶点发送到GPU。顶点可以用于形成2D或3D图像的几何形状的图元表示。图元包括点、三角形和线条。在方框102,处理顶点。顶点的初始处理包括但不局限于确定对于每一个顶点的照明,并且确定要应用于每一个顶点的变换类型。光源由它们在图像中的位置来定义。还可以确定诸如色度、反射率以及亮度的其它属性。
在方框104,顶点着色器可以用于将每一个3D顶点的位置从3D坐标空间变换到2D坐标空间。在方框106,几何形状着色器可以用于根据初始发送到图形渲染管线的图元来生成新的图元。在方框108,像素着色器可以用于计算场景内片段的颜色和其它属性。在绘制场景时产生片段,并且图元被栅格化为片段。在示例中,片段的属性可以从图元的顶点被插入。在方框108,片段可以被处理、丢弃或存储在输出缓冲器中。
由像素着色器处理的像素数据可以是任何种类的数据。在一些示例中,像素数据可以是DirectX或OpenGL的规范允许作为到像素着色器的输入和输出的任何数据。因此,像素着色器在每像素基础上执行,并且能够使用任何参数作为输入,例如位置、颜色、照明或用于定义给定像素的特性的任何其它参数。在实施例中,像素数据可以是一组这样的参数。在执行期间,像素着色器基于输入参数来计算输出参数。在实施例中,输入参数和输出参数可以不同。例如,基于参数位置和颜色的两个输入,像素着色器可以计算照明值作为输出参数。像素着色器可以将输出参数的值写入到诸如Render Target的输出缓冲器。
诸如中央处理器(CPU)或图形处理单元(GPU)的处理器可以用于执行系统内的图形渲染管线100。然而,实施例可以在允许像素或其它数据的并行处理的任何处理系统中使用。尽管本文描述的实施例使用GPU执行图形渲染管线,但是可以使用任何处理单元。在一些实施例中,GPU可以是单指令多数据(SIMD)处理器。因此,GPU包括能够在几个线程上并行操作的多个执行单元。而且,计算系统可以具有不同的指令宽度用于SIMD处理。每一个SIMD处理器可以包括数量为n的通道,并且被称为n-通道SIMD处理器。指令宽度用于适应在线程内并行地处理n个像素。n的值典型地为8、16、32或64。通过并行处理多个像素,基于SIMD的GPU能够使用图形数据的并行性以便有效地处理数据。在一些实施例中,使用基于SIMD的GPU来处理诸如相机输入、打印和显示成像工作负载的工作负载。可选地,片上系统(SOC)可以使用单指令多线程(SIMT)处理器来实现SIMD。SIMT处理器包括并行运行的SIMD单元。
在示例中,可以使用API来在图形处理器上渲染2D或3维3D图形。API包括但不局限于DirectX和OpenGL。在线程的执行期间,可以修改、变换或者以其它方式改变场景,以使得线程的像素可以不被写入到输出缓冲器。在示例中,当使用DirectX和OpenGLAPI时,丢弃指令可以用于指示像素将不被写入到特定输出缓冲器。丢弃指令典型地被有条件地执行,其中由单线程处理的像素的子集由每一个丢弃指令丢弃。在DirectX中,丢弃指令应用于要被写入到被称为Render Target的输出缓冲器的像素。类似地,在OpenGL中,丢弃指令应用于要被写入到被称为Color Attachment的输出缓冲器中的像素。因此,当丢弃指令应用于一个或多个像素时,来自线程的该一个或多个指令将不被写入到输出缓冲器。然而,在丢弃指令之后,像素被处理,直到该线程终止。结果,即使丢弃指令在线程内已经出现,但是线程内的像素被处理,直到线程到达其处理的结束,尽管所产生的被处理的像素不被写入到输出缓冲器。处理丢弃的像素会浪费功率和处理时间。
图2A是表示根据实施例丢弃像素的方式的图200。GPU202包括几个执行单元204。每一个执行单元执行多个线程206。在这一示例中,每一个执行单元处理四个线程206。如上所述,每一个线程在多个像素208A和像素208B的数据上并行地执行。在图2A中,每一个线程包括像素208A和208B中的八个,每一个像素由SIMD处理单元的通道处理。可以使用图形渲染管线来处理所有像素208A和像素208B,例如图形渲染管线100。
多个具有倒三角的细实线的每一条中的一个,例如附图标记为213的线条,对应于像素208A和208B中的每一个。每一条具有倒三角的细实线213代表相对应的像素208A和像素208B的处理。一个或多个丢弃指令210可以在线程的执行期间发生。例如,第一丢弃指令210A在前三个像素208A的处理期间发生。第一丢弃指令210A不应用于最后五个像素208B。因此,对于每一个像素208A的实线,例如实线209,在丢弃指令210A处停止。所有像素208A和像素208B中的每一个具有相对应的实线,例如在附图标记209处的实线。每一条实线209代表像素数据的状态为被处理以便将该像素数据写入到缓冲器,例如丢弃输出缓冲器214或任何其它缓冲器。每一个像素208A的实线209在丢弃指令210A处停止,因为像素208A的像素数据不被处理,可预期的是,在丢弃指令210A到实线209在其处结束的像素208A之后,会将像素数据从像素208A写入到丢弃输出缓冲器214。对应于每一个像素208A的多条虚线211在丢弃指令210A之后开始。在丢弃指令210A之后的每一条虚线211指示像素数据的状态为没有被写入到诸如丢弃输出缓冲器214或任何其它缓冲器的缓冲器。然而,代表相对应的像素208的处理的具有倒三角的每一条细实线213在丢弃指令210A之后继续,尽管如由对应于每一个像素208A的每一条虚线211指示的,像素数据的状态已经改变到不被写入到缓冲器。这说明了像素208A的像素数据在第一丢弃指令210A之后被处理。
第二丢弃指令210B在像素208B的随后处理期间发生。对于每一个像素208B的实线209在丢弃指令210B处停止,其中对于每一个像素208B的实线209指示像素数据将被写入到丢弃输出缓冲器214。在丢弃指令210B之后,在第二丢弃指令210B之后的对于像素208B的虚线211指示对于每一个像素208B的像素数据将不被写入到缓冲器。然而,每一条具有倒三角的细实线213代表对像素208B的处理在第二丢弃指令210B之后继续,尽管如由对应于像素208B的每一条虚线211指示的,像素208B的状态已经改变到不被写入到缓冲器。因此,在丢弃指令210A和丢弃指令210B之后,处理所有像素208A和像素208B的像素数据,尽管像素208A和像素208B的像素数据都不会被写入到缓冲器。
具有丢弃掩码212的输出缓冲器写入在线程206A的执行期间发生,以便输出还没有被丢弃的像素208A和像素208B的数据。由于所有像素208A和像素208B使用丢弃指令210A和丢弃指令210B被丢弃,因此没有数据被写入到丢弃输出缓冲器214。在一些示例中,丢弃指令应用于被写入到特定缓冲器的像素。具体地说,使用DirectX,丢弃指令应用于到Render Target缓冲器的写入。类似地,在使用OpenGL时,丢弃指令应用于到ColorAttachment缓冲器的写入。
当线程到达处理的结束时,该线程在附图标记216处终止。在方框212处的渲染目标写入以及附图标记216处的线程终止之前,执行线程,尽管由于丢弃指令210A和丢弃指令210B而不使用所产生的所处理的像素。这会浪费执行时间和功率,如在方框218处所示。
图2B是表示根据实施例使用线程终止的条件结束220的丢弃像素的方式的图250。图250包括具有多个执行单元204的GPU202,每一个执行单元204包括多个线程206。每一个线程处理八个像素208。图250还包括实线209,虚线211和具有倒三角的细实线213,对应于如参照图2A描述的每一个像素208A和像素208B。
与图2A类似,像素208A由丢弃指令210A丢弃。丢弃指令210A之后是线程终止的条件结束220A。像素208A的处理,如由具有倒三角的细实线213表示的,不会被丢弃指令210A停止。因此,具有倒三角的细实线213在对于像素208A的丢弃指令210A之前和之后发生。进而,像素208A不被线程终止的条件结束220A终止,因为没有丢弃线程206A的所有像素。具体地说,在线程终止的第一条件结束220A处,还没有丢弃像素208B。
如由在线程终止的条件结束220A之后对于像素208A的虚线211和对于像素208B的实线209说明的,所有像素208A和像素208B都被处理,直到丢弃指令210B为止,而与它们的状态无关。对应于每一个像素208A的虚线211指示像素数据的状态没有被写入到缓冲器。对应于每一个像素208A的每一条具有倒三角的细实线213指示像素208A在线程终止的条件结束220A之后被处理。
在丢弃指令210B之后,由对于像素208B的具有倒三角的细线213代表的处理由另一个线程终止的条件结束220B终止。在线程终止的条件结束220B之后,所有像素208A和像素208B被丢弃。由于所有像素208A和208B被丢弃,所以执行线程终止的条件结束,并且在线程终止的条件结束220B之后,在线程206A中不再进行进一步计算。这在图2B中由线程终止的条件结束220B之后不存在虚线211和具有倒三角的细实线213指示。
在一些示例中,一个丢弃指令会使线程的所有像素被丢弃。在这样的情况下,线程终止的条件结束将使线程中的所有像素的处理都终止。线程终止的条件结束将不终止线程内的像素的处理,直到使用丢弃指令丢弃了线程的所有像素。在一些实施例中,着色器编译器用于将包括线程终止的条件结束的代码引入到着色器中。此外,在一些实施例中,着色器编译器在每一个线程终止的结束之前将附加的验证码引入到着色器中。验证码在线程指令的条件结束之前验证像素的状态。如果还没有丢弃线程的所有像素,则验证码不允许线程的处理流进行到线程终止的条件结束。然而,如果丢弃了线程的所有像素,则验证码使线程的处理流进行到线程终止的条件结束。按照这一方式,验证码能够用于确保线程不会由于插入的线程指令的条件结束的执行而被过早终止。而且,当线程包括到缓冲器的附加写入时,验证码将防止线程指令的条件结束的执行,直到该到其它缓冲器的附加写入完成。按照这种方式,利用线程终止的条件结束从线程获得数据的所有其它缓冲器、处理和线程能够在线程终止之前接收该数据。因此,验证码能够验证像素的状态,并且像素不会被写入到任何其它缓冲器。
图3是根据实施例用于插入条件线程终止的方法300的处理流程图。在方框302,编译着色器。在实施例中,着色器由作为计算系统的图形驱动器的一部分的着色器编译器进行编译。在一些实施例中,着色器被编译以便在基于SIMD的架构上执行。着色器的编译包括在每一个丢弃指令和写入指令之后引入条件线程终止。对着色器进行编译也可以包括在每一个线程指令的条件结束之前引入验证码,其中如上所述,验证码用于验证像素的状态。在实施例中,在丢弃所述多个像素中的每一个之后,验证所丢弃的像素的状态。
在方框304,执行所编译的着色器。在执行期间,如果丢弃了线程的所有像素并且该线程不将任何像素写入到另一缓冲器,则该线程由线程指令的条件结束终止。可以验证像素的状态,并且如果在线程指令的条件结束之后没有丢弃线程的所有像素,并且该线程将任何像素写入到另一缓冲器,则不执行线程指令的条件结束。通过终止线程,如果在线程指令的条件结束之后丢弃了线程的所有像素并且该线程没有将任何像素写入到另一缓冲器,则该线程指令的条件结束将省去该线程的所有进一步计算的执行。按照这种方式,处理器不会在所丢弃的像素上浪费处理时间,并且由于不处理所丢弃的像素而能够节约功率。
图4是根据实施例可以用于线程机制的条件结束的计算设备400的方框图。计算设备400可以例如是膝上型电脑、桌面计算机、超级本、平板电脑、移动设备或服务器等等。计算设备400可以包括配置为执行所存储的指令的中央处理单元(CPU)402以及存储由CPU402可执行的指令的存储器设备404。CPU可以通过总线406耦接到存储器设备404。此外,CPU402可以是单核处理器、多核处理器、计算集群或任何数量的其它配置。而且,计算设备400可以包括多于一个CPU402。
计算设备400还可以包括图形处理单元(GPU)408。如图所示,CPU402可以经过总线406耦接到GPU408。GPU408可以配置为执行计算设备400内的任何数量的图形操作。例如,GPU408可以配置为渲染或操控图形图像、图形帧、视频等等,以便被显示到计算设备400的用户。GPU408包括多个执行单元410。执行单元410可以处理来自任何数量的图形操作的线程。
存储器设备404能够包括随机存取存储器(RAM)、只读存储器(ROM)、闪存或任何其它适合的存储器系统。例如,存储器设备404可以包括动态随机存取存储器(DRAM)。计算设备400包括图像捕获机制412。在一些实施例中,图像捕获机制412是相机、立体相机、扫描仪、红外感测器等等。
CPU402可以经过总线406链接到配置为将计算设备400链接到显示设备416的显示接口414。显示设备416可以包括作为计算设备400的内置部件的显示屏。显示设备416还可以包括外部连接到计算设备400的计算机监视器、电视或投影仪等等。
CPU402还可以经过总线406连接到配置为将计算设备400链接到一个或多个输入/输出(I/O)设备420的I/O设备接口418。I/O设备420可以例如包括键盘和指向设备,其中指向设备可以包括触摸板或触摸屏等等。I/O设备420可以是计算设备400的内置部件,或者可以是外部连接到计算设备400的设备。
计算设备还包括储存器设备422。储存器设备422是诸如硬驱、光学驱动、拇指驱动、驱动阵列或其任何组合的物理存储器。储存器设备422还可以包括远程存储驱动。计算设备400还可以包括配置为经过总线406将计算设备400连接到网络426的网络接口控制器(NIC)424。网络426可以是宽域网(WAN)、局域网(LAN)或互联网等等。
图4的方框图并不意在指示计算设备400要包括图4所示的所有部件。进而,取决于具体实现的细节,计算设备400可以包括图4中未示出的任何数量的附加部件。
图5是根据实施例执行线程机制的条件结束的示例性系统500的方框图。参照图4描述类似标号的项目。在一些实施例中,系统500是媒体系统。此外,可以将系统500结合到个人计算机(PC)、膝上型电脑、超级膝上型电脑、服务器计算机、平板电脑、触摸板、便携式电脑、手持电脑、掌上电脑、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视、智能设备(例如智能手机、智能平板或智能电视),移动互联网设备(MID)、消息传送设备、数据通信设备、打印设备、嵌入式设备等等。
在各种实施例中,系统500包括耦接到显示器504的平台502。平台502可以接收来自诸如内容服务设备506或内容递送设备508或者其它类似内容源的内容设备的内容。包括一或多个导航特征的导航控制器510可以用于例如与平台502和/或显示器504进行交互。下面详细地描述这些部件中的每一个。
平台502可以包括芯片集512、中央处理单元(CPU)402、存储器设备404、储存器设备422、图形子系统514、应用520和无线电516的任意组合。芯片集512可以在CPU402、存储器设备404、储存器设备422、图形子系统514、应用520和无线电516之间提供相互通信。例如,芯片集512可以包括能够提供与储存器设备422的相互通信的存储适配器(未示出)。
CPU402可以实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器、X86指令集兼容处理器、多核或任何其它微处理器或中央处理单元(CPU)。在一些实施例中,CPU402包括多核处理器、多核移动处理器等等。存储器设备404可以实现为易失性存储器设备,例如但不局限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)或静态RAM(SRAM)。储存器设备422可以实现为非易失性储存器设备,例如但不局限于磁盘驱动、光盘驱动、磁带驱动、固态驱动、内部储存器设备、附接的储存器设备、闪存、电池备份SDRAM(同步DRAM)和/或网络可访问储存器设备。在一些实施例中,例如当包括多个硬驱时,储存器设备422包括用于增加对于有价值的数字媒体的存储性能增强保护的技术。
图形子系统514可以执行诸如静止或视频的图像的处理用于显示。图形子系统514可以包括例如以图形处理单元(GPU)408或者视觉处理单元(VPU)为例的GPU。模拟或数字接口可以用于可通信地耦接图形子系统514和显示器504。例如,所述接口可以是高清多媒体接口、显示端口、无线HDMI和/或无线HD兼容技术中的任意一个。图形子系统514可以结合到CPU402或芯片集512中。可选地,图形子系统514可以是可通信地耦接到芯片集512的独立的卡。
本文描述的图形和/或视频处理技术可以实现在各种硬件架构中。例如,图形和/或视频功能可以集成到芯片集512中。可选地,可以使用分立的图形和/或视频处理器。作为再一实施例,图形和/或视频功能可以由包括多核处理器的通用处理器实现。在进一步的实施例中,所述功能可以在消费类电子设备中实现。
无线电516可以包括能够使用各种合适的无线通信技术来发射和接收信号的一个或多个无线电。这样的技术可以涉及一个或多个无线网络之间的通信。示例性无线网络包括无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝网络、卫星网络等等。在这样的网络之间进行通信时,无线电516可以根据任何版本的一个或多个应用标准进行操作。
显示器504可以包括任何电视类型的监视器或显示器。例如,显示器504可以包括计算机显示屏、触控屏显示器、视频监控器、电视等等。显示器504可以是数字或模拟的。在一些实施例中,显示器504是全息显示器。并且,显示器504可以是可以接收视觉投影的透明表面。这样的投影可以传递各种形式的信息、图像、对象等等。例如,这样的投影可以是用于移动增强现实(MAR)应用的视觉覆盖。在一个或多个应用520的控制下,平台502可以在显示器504上显示用户界面518。
内容服务设备506可以由任何本土、国际或独立的服务主持,并且因而例如经由互联网对于平台502可访问。内容服务设备506可以耦接到平台502和/或显示器504。平台502和/或内容服务设备506可以耦接到网络426以便向并且从网络426通信(例如,发送和/或接收)媒体信息。内容传送设备508还可以耦接到平台502和/或显示器504。
内容服务设备506可以包括有线电视盒、个人计算机、网络、电话、或者能够递送数字信息的互联网使能的设备。此外,内容服务设备506可以包括能够经由网路426或直接地在内容提供方和平台502或显示器504之间单向或双向地通信内容的任何其它类似的设备。将意识到,能够经由网络426向并且从系统500中的部件和内容提供方中的任意一个单向和/或双向地通信所述内容。内容的示例包括任何媒体信息,例如视频、音乐、医疗和游戏信息等等。
内容服务设备506可以接收诸如有线电视节目的内容,包括媒体信息、数字信息或其它内容。内容提供方的示例可以包括任何有线或卫星电视或者无线电或互联网内容提供方等等。
在一些实施例中,平台502从包括一个或多个导航特征的导航控制器510接收控制信号。导航控制器510的导航特征可以用于例如与用户接口518进行交互。导航控制器510可以是指向设备或触控屏设备,其可以是允许用户将空间(例如,连续和多维)数据输入到计算机中的计算机硬件部件(具体地说是人机接口设备)。诸如图形用户接口(GUI)的许多系统以及电视和监视器允许用户使用物理姿势来控制并且提供数据到计算机或电视。物理姿势包括但不局限于面部表情、面部移动、多种肢体的移动、身体移动、身体语言或其任意组合。这样的物理姿势可以被识别并且被翻译为命令或指令。
导航控制器510的导航特征的移动可以通过显示在显示器504上的指针、光标、聚焦环或其它视觉指示器的移动而反映在显示器504上。例如,在应用520的控制下,可以将位于导航控制器510上的导航特征映射到在用户界面518上显示的虚拟导航特征。在一些实施例中,导航控制器510可以不是分离的部件,而是可以集成到平台502和/或显示器504中。
系统500可以包括驱动器(未示出),该驱动器包括例如在被使能时在初始引导之后使用户能够利用按钮触摸来即时地打开和关闭平台502。程序逻辑可以在平台502关闭时允许该平台将内容流传送到媒体适配器或其它内容服务设备506或内容递送设备508。此外,芯片集512可以例如包括支持5.1环绕立体声音频和/或高清7.1环绕立体声音频的硬件和/或软件。驱动器可以包括用于集成的图形平台的图形驱动器。在一些实施例中,图形驱动器包括外围部件互连快速(PCIe)图形卡。
在各种实施例中,可以集成在系统500中示出的任何一个或多个部件。例如,可以集成平台502和内容服务设备506;可以集成平台502和内容递送设备508;或者可以集成平台502、内容服务设备506和内容递送设备508。在一些实施例中,平台502和显示器504是集成的单元。例如,可以集成显示器504和内容服务器设备506,或者可以集成显示器504和内容递送设备508。
系统500可以实现为无线系统或有线系统。当实现为无线系统时,系统500可以包括适合于经由诸如一个或多个天线、发射机、接收机、收发机、放大器、滤波器、控制逻辑等等的无线共享介质进行通信的部件和接口。无线共享介质的示例可以包括诸如RF频谱的无线频谱的一部分。当系统500实现为有线系统时,系统500可以包括适合于经由诸如输入/输出(I/O)适配器、使I/O适配器与相对应的有线通信介质连接的物理连接器、网络接口卡(NIC)、磁盘控制器、视频控制器、音频控制器等等的有线通信介质进行通信的部件和接口。有线通信介质的示例可以包括导线、电缆、金属引线、印刷电路板(PCB)、背板、交换机结构、半导体材料、双绞线、同轴电缆、光纤等等。
平台502可以建立一条或多条逻辑或物理通道以便通信信息。该信息可以包括媒体信息和控制信息。媒体信息可以指代代表意在用于用户的内容的任何数据。内容的示例可以例如包括来自语音会话、视频会议、流视频、电子邮件(email)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等等的数据。来自语音会话的数据可以例如是讲话信息、静默时段、背景噪声、舒适噪声、语调等等。控制信息可以指代代表意在用于自动系统的命令、指令或控制字的任何数据。例如,控制信息可以用于经过系统路由媒体信息,或者指示节点按照预定的方式处理媒体信息。然而,实施例并不局限于图5中示出或描述的元件或上下文。
图6是根据实施例其中可以体现图5的系统的小形状因数设备600的示意图。参照图5描述了类似编号的项目。例如,在一些实施例中,设备600可以实现为具有无线能力的移动计算设备。移动计算设备可以指代具有处理系统和移动功率源或电源的任何设备,该移动功率源或电源例如以一个或多个电池为例。
如上所述,移动计算设备的示例可以包括个人计算机(PC)、笔记本电脑、超级笔记本电脑、服务器计算机、平板电脑、触摸板、便携式电脑、手持电脑、掌上电脑、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视、智能设备(例如智能手机、智能平板或智能电视),移动互联网设备(MID)、消息传送设备、数据通信设备等等。
移动计算设备的示例还可以包括布置为由用户佩戴的计算机,例如手腕计算机、手指计算机、戒指计算机、眼镜计算机、皮带扣计算机、臂带计算机、鞋计算机、衣服计算机或任何其它类型的可穿戴计算机。例如,移动计算设备可以实现为能够执行计算机应用以及语音通信和/或数据通信的智能电话。尽管通过示例的方式以移动计算设备实现为智能电话来描述一些实施例,但是可以意识到,其它实施例也可以使用其它有线或无线移动计算设备实现。
如图6所示,设备600可以包括壳体602、显示器604、输入/输出(I/O)设备606以及天线608。设备600也可以包括导航特征612。显示器604可以包括用于显示适合于移动计算设备的信息的任意适合的显示器610单元。I/O设备606可以包括用于将信息输入到移动计算设备中的任何适当的I/O设备。例如,I/O设备606可以包括字母数字键盘、数字按键、触摸板、输入键、按钮、开关、摇杆开关、麦克风、扬声器、语音识别设备以及软件等等。信息还可以通过麦克风输入到设备600中。这样的信息可以通过语音识别设备进行数字化。
图7是表示存储有用于线程机制的条件结束的代码的有形非暂态计算机可读介质700的方框图。该有形非暂态计算机可读介质700可以由处理器702通过计算机总线704访问。而且,该有形非暂态计算机可读介质700可以包括配置为指示处理器702执行本文描述的方法的代码。
可以将本文描述的各种软件部件存储在如图7中指示的一个或多个有形非暂态计算机可读介质700上。例如,编译器模块706可以配置为编译着色器。编译器模块还可以配置为在丢弃指令之后引入校验码到着色器中,并且引入线程指令的条件结束,其中线程指令的条件结束终止所有像素的处理。
图7的方框图并不意在指示有形非暂态计算机可读介质700要包括图7中示出的所有部件。进而,取决于具体实现的细节,有形非暂态计算机可读介质700可以包括图7中未示出的任何数量的附加部件。
示例1
本文描述了图形处理单元。图形处理单元包括至少一个执行单元,该执行单元配置为执行着色器。着色器包括至少一个线程,该线程使执行单元处理多个像素,直到丢弃了该多个像素中的每一个并且直到执行了最后写入指令。着色器还包括使执行单元在多个像素中的每一个被丢弃之后并且在没有最后写入指令被执行之后,执行线程指令的条件结束,其中线程指令的条件结束终止该线程。
多个像素可以通过执行一个丢弃指令而被丢弃。多个像素也可以通过执行多个丢弃指令而被丢弃,其中每一个丢弃指令丢弃所述多个像素的一部分。在丢弃了所述多个像素中的每一个之后,验证所丢弃的像素的状态。所丢弃的像素不被写入到DirectX中的Render Target缓冲器或OpenGL中的Color Attachment缓冲器。最后写入指令包括将多个像素写入到除了DirectX中的Render Target缓冲器或OpenGL中的Color Attachment缓冲器之外的其它缓冲器的其它写入。当在线程指令的条件结束之后所有像素都被丢弃时,并且在没有多个像素的其它写入要被执行之后,该线程指令的条件结束用于通过执行单元防止线程的所有进一步计算的执行。通过在所述多个像素的每一个被丢弃并且执行最后写入指令之后的线程的终止,增强了图形处理单元的性能并且节约了功率。
示例2
本文描述了一种方法。该方法包括编译着色器,其中编译着色器包括在每一个丢弃指令和最后写入指令之后,将线程指令的条件结束引入到着色器中。该方法还包括执行所编译的着色器,其中如果线程的所有像素都被丢弃,并且线程不将任何像素写入到另一缓冲器,则通过线程指令的条件结束来终止该线程。
编译着色器还包括在线程指令的每一个条件结束之前引入验证码,其中该验证码用于验证像素的状态。执行所编译的着色器还包括验证像素的状态,以使得如果在线程指令的条件结束之后没有丢弃线程的所有像素并且线程将任意像素写入到其它缓冲器,则不执行线程指令的条件结束。丢弃指令用于指示没有数据将被写入到DirectX中的Render Target缓冲器或OpenGL中的ColorAttachment缓冲器。如果在线程指令的条件结束之后线程的所有像素被丢弃并且该线程不将任何像素写入到其它缓冲器,则通过线程指令的条件结束的线程的终止省去该线程的所有进一步计算的执行。
示例3
本文描述有形非暂态计算机可读介质。有形非暂态计算机可读介质包括用于指示处理器编译着色器的代码,其中编译器用于在每一个丢弃指令和写入指令之后将线程指令的条件结束引入到着色器中。此外,编译器用于在线程指令的每一个条件结束之前将验证码引入到着色器中,其中验证码用于验证多个像素的状态。如果多个像素的每一个的状态被丢弃并且多个像素不被写入到任何其它缓冲器,则执行线程指令的条件结束。丢弃指令用于指示没有数据将被写入到DirectX中的Render Target缓冲器或OpenGL中的Color Attachment缓冲器。进而,如果在线程指令的条件结束之后线程的所有像素被丢弃并且线程不将任何像素写入到其它缓冲器,则线程指令的条件结束用于指示终止线程的所有进一步计算。在丢弃多个像素的每一个之后,并且在没有多个像素的其它写入要被执行之后,通过线程指令的条件结束的线程的终止节约了功率。
示例4
本文描述了包括线程机制的条件结束的系统。该系统包括显示器、无线电以及用于存储指令并且可通信地耦接到显示器的存储器。该系统还包括可通信地耦接到无线电和存储器的处理器。当处理器执行指令时,该处理器并行地处理多个像素,直到该多个像素中的每一个被丢弃并且执行了最后写入指令,并且在该多个像素中的每一个被丢弃并且执行了最后写入指令之后,执行线程指令的条件结束,其中该线程指令的条件结束的执行用于终止该线程。
处理器可以包括用于执行指令的执行单元。此外,处理器是n通道SIMD处理单元。处理器也可以是图形处理单元。指令可以包括丢弃指令,其中一个丢弃指令的执行用于多个像素的丢弃。
指令还可以包括多条丢弃指令,其中多条丢弃指令的执行用于丢弃多个像素,其中每一个丢弃指令的执行用于丢弃多个像素的一部分。处理器可以在丢弃多个像素的每一个并且最后写入指令的执行之后,验证所丢弃的像素的状态。
可以理解,可以在一个或多个实施例的任何地方使用前述示例的具体细节。例如,上述计算设备的所有可选特征也可以关于本文描述的方法或计算机可读介质来实现。而且,尽管本文使用了流程图和/或状态表来描述实施例,但是本发明并不局限于那些图或本文相对应的描述。例如,流程图不需要经过每一个所说明的方框或者状态或者按照与本文说明或描述相同的顺序进行移动。
本发明并不局限于本文列出的特定细节。实际上,得益于这一公开的本领域的普通技术人员将意识到,能够在本发明的范围内做出根据前述说明书和附图的许多其它变形。因此,包括对于其的任意修改的下面权利要求书定义本发明的范围。
Claims (21)
1.一种图形处理单元,包括:
至少一个执行单元,所述执行单元配置为执行着色器,所述着色器包括指令,所述指令用于使所述执行单元执行下列动作:
并行处理多个像素,直到所述多个像素中的每一个被丢弃以及最后写入指令的执行;并且
在所述多个像素中的每一个被丢弃以及所述最后写入指令的执行之后,执行线程指令的条件结束,其中,所述线程指令的条件结束的执行用于终止线程。
2.根据权利要求1所述的图形处理单元,其中,所述指令包括丢弃指令,并且其中,一个丢弃指令的执行导致所述多个像素的丢弃。
3.根据权利要求1所述的图形处理单元,其中,所述指令包括多个丢弃指令,并且其中,所述多个丢弃指令的执行导致所述多个像素的丢弃,其中,每一个丢弃指令的执行用于丢弃所述多个像素的一部分。
4.根据权利要求3所述的图形处理单元,其中,所述执行单元用于在所述多个像素中的每一个被丢弃之后并且在所述最后写入指令的执行之后验证所丢弃的像素的状态。
5.根据权利要求1所述的图形处理单元,其中,所述执行单元不使所丢弃的像素写入到DirectX中的Render Target缓冲器或者OpenGL中的Color Attachment缓冲器。
6.根据权利要求1所述的图形处理单元,其中,所述最后写入指令包括所述多个像素的其它写入,并且所述其它写入使所述执行单元写入到除了DirectX中的Render Target缓冲器或者OpenGL中的Color Attachment缓冲器之外的任何缓冲器。
7.根据权利要求1所述的图形处理单元,其中,在所述线程指令的条件结束之后,当所有像素被丢弃时并且在所述最后写入指令的执行之后,所述线程指令的条件结束的执行用于防止通过所述执行单元的所述线程的所有进一步计算的执行。
8.根据权利要求1所述的图形处理单元,其中,在所述多个像素中的每一个被丢弃之后并且在不执行所述多个像素的其它写入之后,通过所述线程的终止来增强所述图形处理单元的性能并且节约功率。
9.一种用于线程机制的条件结束的方法,包括:
编译着色器,其中,编译所述着色器包括在每一个丢弃指令和最后写入指令之后将线程指令的条件结束引入到所述着色器中;
执行所编译的着色器,其中,如果在所述线程指令的条件结束之后线程的所有像素被丢弃并且所述线程不将任意像素写入到另一缓冲器,则通过所述线程指令的条件结束来终止所述线程。
10.根据权利要求9所述的方法,其中,编译所述着色器包括在每一个线程指令的条件结束之前引入验证码,其中,所述验证码用于验证所述像素的状态。
11.根据权利要求10所述的方法,其中,执行所编译的着色器包括验证所述像素的状态,以使得如果在所述线程指令的条件结束之后没有丢弃所述线程的所有像素并且所述线程将任意像素写入到另一缓冲器,则所述线程指令的条件结束将不执行。
12.根据权利要求9所述的方法,其中,每一个丢弃指令用于指示没有数据将被写入到DirectX中的Render Target缓冲器或OpenGL中的ColorAttachment缓冲器。
13.根据权利要求9所述的方法,其中,如果在所述线程指令的条件结束之后所述线程的所有像素被丢弃并且所述线程不将任意像素写入到另一缓冲器,则通过所述线程指令的条件结束的所述线程的终止用于省去所述线程的所有进一步计算的执行。
14.一种包括代码的机器可读介质,当被执行时,所述代码使机器执行权利要求9-13中的任意一项的方法。
15.一种包括线程机制的条件结束的系统,包括:
显示器;
无线电;
存储器,用于存储指令并且可通信地耦接到所述显示器;以及
处理器,可通信地耦接到所述无线电和所述存储器,其中,当所述处理器执行所述指令时,所述处理器用于:
并行处理多个像素,直到所述多个像素中的每一个被丢弃以及最后写入指令的执行;并且
在所述多个像素中的每一个被丢弃之后并且在所述最后写入指令的执行之后,执行线程指令的条件结束,其中,所述线程指令的条件结束的执行用于终止线程。
16.根据权利要求15所述的系统,其中,所述处理器包括用于执行所述指令的执行单元。
17.根据权利要求15所述的系统,其中,所述处理器是n通道SIMD处理单元。
18.根据权利要求15所述的系统,其中,所述处理器是图形处理单元。
19.根据权利要求15所述的系统,其中,所述指令包括丢弃指令,并且其中,一个丢弃指令的执行导致所述多个像素的丢弃。
20.根据权利要求15所述的系统,其中,所述指令包括多个丢弃指令,并且其中,所述多个丢弃指令的执行导致所述多个像素的丢弃,其中,每一个丢弃指令的执行用于丢弃所述多个像素的一部分。
21.根据权利要求18所述的系统,其中,所述处理器用于在所述多个像素中的每一个被丢弃之后并且在所述最后写入指令的执行之后验证所丢弃的像素的状态。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/834,540 | 2013-03-15 | ||
US13/834,540 US9292898B2 (en) | 2013-03-15 | 2013-03-15 | Conditional end of thread mechanism |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104050627A true CN104050627A (zh) | 2014-09-17 |
CN104050627B CN104050627B (zh) | 2017-07-21 |
Family
ID=50554591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410160221.5A Expired - Fee Related CN104050627B (zh) | 2013-03-15 | 2014-03-14 | 线程机制的条件结束 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9292898B2 (zh) |
CN (1) | CN104050627B (zh) |
GB (1) | GB2514440B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017219586A (ja) * | 2016-06-03 | 2017-12-14 | 株式会社ジャパンディスプレイ | 信号供給回路及び表示装置 |
KR20180038793A (ko) * | 2016-10-07 | 2018-04-17 | 삼성전자주식회사 | 영상 데이터 처리 방법 및 장치 |
GB2566761B (en) * | 2017-09-20 | 2020-01-22 | Advanced Risc Mach Ltd | Discarding of threads processed by a warp processing unit |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1691069A (zh) * | 2004-04-20 | 2005-11-02 | 香港中文大学 | 采用多图形处理器加速方格片元过滤的实时体绘制方法 |
CN101371247A (zh) * | 2005-12-19 | 2009-02-18 | 辉达公司 | 用于图形处理器的并行阵列结构 |
CN101425175A (zh) * | 2007-12-06 | 2009-05-06 | 威盛电子股份有限公司 | 着色器处理系统与方法 |
US20110080415A1 (en) * | 2009-10-06 | 2011-04-07 | Duluk Jr Jerome F | Inter-shader attribute buffer optimization |
CN102156959A (zh) * | 2010-04-21 | 2011-08-17 | 威盛电子股份有限公司 | 具有多线程执行单元的绘图处理装置及其存储器存取方法 |
US20120069021A1 (en) * | 2010-09-20 | 2012-03-22 | Samsung Electronics Co., Ltd. | Apparatus and method of early pixel discarding in graphic processing unit |
GB2511176A (en) * | 2012-12-17 | 2014-08-27 | Advanced Risc Mach Ltd | Hidden surface removal in graphic processing systems |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6646639B1 (en) * | 1998-07-22 | 2003-11-11 | Nvidia Corporation | Modified method and apparatus for improved occlusion culling in graphics systems |
US6286027B1 (en) * | 1998-11-30 | 2001-09-04 | Lucent Technologies Inc. | Two step thread creation with register renaming |
JP2000305795A (ja) * | 1999-04-20 | 2000-11-02 | Nec Corp | 並列処理装置 |
US20030126379A1 (en) * | 2001-12-31 | 2003-07-03 | Shiv Kaushik | Instruction sequences for suspending execution of a thread until a specified memory access occurs |
US20100091018A1 (en) * | 2008-07-11 | 2010-04-15 | Advanced Micro Devices, Inc. | Rendering Detailed Animated Three Dimensional Characters with Coarse Mesh Instancing and Determining Tesselation Levels for Varying Character Crowd Density |
CN102165428B (zh) * | 2008-08-13 | 2015-05-20 | 高通股份有限公司 | 软件应用性能增强 |
US8854383B2 (en) * | 2011-04-13 | 2014-10-07 | Qualcomm Incorporated | Pixel value compaction for graphics processing |
US8601485B2 (en) * | 2011-05-25 | 2013-12-03 | Arm Limited | Data processing apparatus and method for processing a received workload in order to generate result data |
US20140168228A1 (en) * | 2012-12-13 | 2014-06-19 | Nvidia Corporation | Fine-grained parallel traversal for ray tracing |
-
2013
- 2013-03-15 US US13/834,540 patent/US9292898B2/en not_active Expired - Fee Related
-
2014
- 2014-03-06 GB GB1403933.3A patent/GB2514440B/en not_active Expired - Fee Related
- 2014-03-14 CN CN201410160221.5A patent/CN104050627B/zh not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1691069A (zh) * | 2004-04-20 | 2005-11-02 | 香港中文大学 | 采用多图形处理器加速方格片元过滤的实时体绘制方法 |
CN101371247A (zh) * | 2005-12-19 | 2009-02-18 | 辉达公司 | 用于图形处理器的并行阵列结构 |
CN101425175A (zh) * | 2007-12-06 | 2009-05-06 | 威盛电子股份有限公司 | 着色器处理系统与方法 |
US20110080415A1 (en) * | 2009-10-06 | 2011-04-07 | Duluk Jr Jerome F | Inter-shader attribute buffer optimization |
CN102156959A (zh) * | 2010-04-21 | 2011-08-17 | 威盛电子股份有限公司 | 具有多线程执行单元的绘图处理装置及其存储器存取方法 |
US20120069021A1 (en) * | 2010-09-20 | 2012-03-22 | Samsung Electronics Co., Ltd. | Apparatus and method of early pixel discarding in graphic processing unit |
GB2511176A (en) * | 2012-12-17 | 2014-08-27 | Advanced Risc Mach Ltd | Hidden surface removal in graphic processing systems |
Also Published As
Publication number | Publication date |
---|---|
CN104050627B (zh) | 2017-07-21 |
GB2514440A (en) | 2014-11-26 |
US9292898B2 (en) | 2016-03-22 |
GB2514440B (en) | 2017-03-29 |
US20140267272A1 (en) | 2014-09-18 |
GB201403933D0 (en) | 2014-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110023962B (zh) | 人类体验到机器人和其他自主机器的高效传递 | |
US9378181B2 (en) | Scalable computing array | |
US11232531B2 (en) | Method and apparatus for efficient loop processing in a graphics hardware front end | |
US20160364828A1 (en) | Facilitating dynamic runtime transformation of graphics processing commands for improved graphics performance at computing devices | |
US20190325763A1 (en) | Real and virtual collision-free movement of autonomous vehicles in mixed-reality environments | |
CN104050040B (zh) | 媒体重放工作负荷调度器 | |
CN104951263A (zh) | 避免向显示器发送未改变的区域 | |
US20160284121A1 (en) | Facilitating true three-dimensional virtual representation of real objects using dynamic three-dimensional shapes | |
US20200118500A1 (en) | Facilitating chromatic adaptation of display contents at computing devices based on chromatic monitoring of environmental light | |
CN104951358B (zh) | 基于优先级的上下文抢占 | |
CN105051792A (zh) | 用于使用深度映射和光源合成增强3d图像的设备 | |
WO2018044403A1 (en) | Multi-resolution deferred shading using texel shaders in computing environments | |
WO2018064794A1 (en) | General purpose input/output data capture and neural cache system for autonomous machines | |
CN104035540A (zh) | 在图形渲染期间降低功耗 | |
CN104012059B (zh) | 协处理器之间的直接链路同步通信 | |
CN104050634A (zh) | 丢弃过滤器抽头的纹理地址模式 | |
US20170140570A1 (en) | Facilitating efficeint centralized rendering of viewpoint-agnostic graphics workloads at computing devices | |
US20170154403A1 (en) | Triple buffered constant buffers for efficient processing of graphics data at computing devices | |
WO2017107118A1 (en) | Facilitating efficient communication and data processing across clusters of computing machines in heterogeneous computing environment | |
CN104737198B (zh) | 在输入几何对象粒度上记录可见度测试的结果 | |
CN104067318A (zh) | 使用三维光栅化的时间连续碰撞检测 | |
US20170169537A1 (en) | Accelerated touch processing in computing environments | |
CN106662999A (zh) | 用于simd结构化分支的方法和装置 | |
CN103927223B (zh) | 用于对图形资源的串行化访问的方法、系统、装置、设备以及存储介质 | |
WO2016200497A1 (en) | Facilitating increased precision in mip-mapped stitched textures for graphics computing devices |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170721 Termination date: 20210314 |
|
CF01 | Termination of patent right due to non-payment of annual fee |