CN1890660A - Pc总线上的多重三维图形管线的方法及系统 - Google Patents
Pc总线上的多重三维图形管线的方法及系统 Download PDFInfo
- Publication number
- CN1890660A CN1890660A CNA2004800343078A CN200480034307A CN1890660A CN 1890660 A CN1890660 A CN 1890660A CN A2004800343078 A CNA2004800343078 A CN A2004800343078A CN 200480034307 A CN200480034307 A CN 200480034307A CN 1890660 A CN1890660 A CN 1890660A
- Authority
- CN
- China
- Prior art keywords
- gpu
- data
- hub
- software
- frame
- 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
Images
Classifications
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- 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
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/363—Graphics controllers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1423—Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
- G06F3/1438—Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display using more than one graphics controller
-
- 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)
- General Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
Abstract
一种用于改善图像处理并行性的方法和系统,其使用一个或多个并行模式,其中图像通过一个或多个图形处理单元(GPUs)(130)显示在至少一个计算机屏幕上。提供应用软件(120)用于发出图形命令,提供图形库(122)用于存储用来执行图形命令的数据。提供软件集线器驱动(123)用于控制硬件集线器(110),用于对将生成图像帧的数据流进行实时分析,用于确定各个GPU的并行模式,以及用于将数据流或其部分转送到各个GPU,提供GPU驱动(124)用于使得GPU与图形库相互作用,并提供I/O模块(160)用于软件模块和硬件集线器之间的相互连接。
Description
技术领域
本发明涉及一种三维的(three-dimensional)多重图形处理方法及系统。特别涉及一种基于时间分割、图像分割和对象分割三种并行方法的统一框架,通过图形处理单元(GPU)改善图像处理并行性的方法及系统。
定义、首字母缩拼词和缩写词
本说明书通篇采用下列定义:
GPU:GPU(Graphic Processing Units)与CPU(Central ProcessingUnit)相类似,GPU是主要用于处理三维功能的单芯片处理器。其可执行的任务包括,光照效果,对象转换以及三维动作。这些都是计算密集的任务,会给CPU造成很重的负荷,而由于专门的GPU可以处理大多数三维计算,它可以协助计算机更有效并且当然能更快地执行这些任务。
多边形:三维图形中的多边形是二维的图元(two-dimensionalprimitives),其可以生成并显示三维的复杂图形物体。该多边形是该物体的各个面并且由N个顶点组成。实际上,多边形是由三条或更多的线段围成的封闭的平面图形。
帧缓冲区:帧缓冲区(FB)是以象素形式存储图像内容的缓冲区。通常,内存部分是留作保存送到监视器显示的完整位图图像之用的。特别地,帧缓冲区是存储在视频适配器的内存芯片里的。然而,在某些情况下,视频芯片组集成在主板设计中,并且帧缓冲区存储在通用主内存中。
对象合成单元:用于将多个三维光栅再次合成为最终图像。基于象素的深度值,该经合并的数据根据与三维空间中的观察器距离最近的象素而分解。所述的新方法基于自主联合决策,允许运用对于任何帧复杂性的多重GPU。
显示列表:显示列表是通过例如多边形和属性的图形图元的列表对三维场景的描述。该显示列表为快速图像检索提供了中间图像存储。
顶点数组:顶点数组是描绘三维场景的顶点的数组。顶点数组为快速图像检索提供了中间图像存储。
阿尔法融合:阿尔法融合控制了图形信息以诸如透明度或者不透明度等级显示的方式。
背景技术
三维图形管线结构分为CPU阶段,总线阶段,GPU顶点处理阶段,GPU碎片(象素)处理阶段。给定的管线仅与上述阶段之一的最薄弱的环节一样强壮,因此该主要瓶颈决定了总的处理能力。要提高性能就必须减少或者消除这些瓶颈。主要的瓶颈很大程度上依赖于应用程序。极端的两个例子,一个是类似CAD(Computer Aided Design)的应用程序,其特征为大量的多边形(顶点),另一个是视频游戏应用程序,其具有少量的多边形但具有密集的碎片活动性(例如纹理)。第一类遭遇到顶点处理的瓶颈,而第二类遭遇到碎片的瓶颈。两者经常在PC总线上发生堵塞。许多应用程序具有混合的特征,在单帧基础上,其瓶颈任意地在两个极端之间改变。
改善GPU性能的唯一方法是根据瓶颈解决方法的其中之一使多重GPU能并行处理。有两种主要的使用GPU再现(rendering)图形数据的方法。这些方法包括时间分割(时域合成)法,其中每个GPU再现后继帧,以及图像分割(屏幕空间合成)法,其中每个GPU再现各帧的子象素集。第三种不常用的方法是对象分割(多边形分解)法。
在时间分割法中每个GPU再现后继帧。其缺点在于每个GPU都得再现一幅完整的帧。因此,各帧再现的速度就受限于单个GPU再现帧的速度。虽然多重GPU具有较高的帧频,但是对于用户的输入在系统的响应时间(反应时间)里会产生延迟。这个延迟的发生是因为,虽然在任何给定的时间,只有一个GPU参与显示一幅已再现的帧,但是每个GPU都处于顺次再现一系列帧的其中之一的处理过程中。为了保持高的帧频,系统延迟了用户的输入,直至首先接收到序列中循环信号的特定GPU再次参与其再现帧的显示。在实际应用中,这种情况限制了系统中使用GPU的数量。如果有大数据集,由于每个GPU都必须能够访问所有的数据,这里出现另一个瓶颈。这就要求或者是维持多重的大数据集的拷贝操作,或者在进行单独拷贝操作中产生可能的冲突。
图像分割法将屏幕分割给了N个GPU,因而每个GPU显示图像的1/N。整个多边形集被转移到各个GPU进行处理,但是,像素处理被显著减少为窗口尺寸。图像分割没有等待时间的问题,但是它有与大数据集相类似的瓶颈,因为每个GPU都必须检查整个数据库以确定哪个图形元素落在了分配给该GPU的屏幕部分内。图像分割方法适合于密集的像素处理的应用程序。
对象分割方法是基于数据子集在多重GPU之间的分配。该数据子集再现于GPU管线,并转换到碎片(子图像像素)的帧缓冲区(FB)。多重FB的子图像必须被合并(合成)以产生最终要显示的图像。对象分割在由大量多边形构成的非常复杂的数据的单帧级别上传递并行再现。输入数据在多边形级别被分解,并在象素级别被重组。由专用的驱动巧妙地将由应用程序生成的数据流在所有GPU之间进行分配。由GPU产生的光栅被合成为最终的光栅,以及被移动到显示器。对象分割法更适用于需要再现大量几何数据的应用程序。特别是CAD,数字内容创作(Digital Content Creation),以及类似的视觉仿真软件,其被视为“观察器”,意味着数据是预先设计好的,以致它们在空间中的三维位置不受用户的交互控制。但是,用户可以对观察器的位置、观察方向和图形数据的尺度进行交互控制。用户还可以对子数据集的选择以及其再现的方法进行控制。其包括操控图像的光照效果,着色效果,透明效果,以及底层数据其它的视觉特性。
在上述软件中,由于所述显示列表或顶点数组中的数据通常包括大量的几何体,所以所述数据都趋向非常复杂。因此,单帧的构成时间也趋向于非常长(典型地,例如两千万个多边形需时0.5秒),其反过来降低了整个系统的性能。
因此,需要提供一个面临PC(Personal Computer)总线上的高通信量,能保证最佳系统性能的系统。
本发明的一个目的是使多重GPU并行从而增强GPU的性能。
本发明的另一个目的是提供一个系统,其中单帧的构成时间不会减慢整个系统的响应。
本发明的又一个目的是提供一种系统和方法,其中顶点处理和碎片处理的图形管线瓶颈可以得到明显并且巧妙地解决。
本发明的再一个目的是提供一种具有高可测量性以及无限的场景复杂性的系统和方法。
本发明进一步的目的是提供一种克服因数据分解而引起的技术难点的处理过程,该数据分解是GPU间的数据和图形命令的一部分。
本发明还有一个目的是提供一种用于数据和图形命令智能分解的方法和系统,其保留图形库的基本特征作为状态机,并遵从图形标准。
本发明其它的目的和优势将随着说明的过程而渐渐清晰明了。
发明内容
本发明为一种用于改善图像处理的并行性的系统,其使用一个或多个并行模式,其中图像通过一个或多个图形处理单元显示在至少一个计算机屏幕上,该系统包括:
一个或多个应用软件,其用于发出图形命令;
一个或多个图形库,其用于存储用来执行图形命令的数据;
一个或多个软件集线器驱动,其用于控制硬件集线器,使得计算机操作系统和图形库相互作用,以及用于对数据流进行实时分析,从这些数据流中将生成数帧图像,用于确定每个GPU的并行模式,以及用于将数据流或其部分发送到各个GPU;
一个或多个GPU驱动,其用于使得GPU与图形库相互作用;
至少一个I/O模块,其用于软件模块和硬件集线器之间的相互连接,其中硬件集线器将对于各帧的根据图形命令以及数据流或其部分在图像中的相对复杂性在GPU之间分配图形命令以及数据流或其部分,所述复杂性由所述软件集线器驱动定义;软件集线器驱动使用获取自至少一个GPU的输出合成用于显示的图形输出,同时在任何需要的时候,可对于所述各帧的并行模式进行交替。
并行是基于对象分割模式,图像分割模式,时间分割模式或者它们的任意组合。硬件集线器包含合成单元,用于从数据流的已处理的部分中合成出完整的帧。所述硬件集线器包含集线器路由器,其用于在对象分割,图像分割,时间分割或者三者的任意组合的模式下,发送多边形数据、图形命令流、像素数据以及合成结果对象分割。所述硬件集线器包含控制单元,其用于在I/O模块中接收来自软件集线器驱动的命令。所述硬件集线器还包含内存单元,其用于存储一个或多个GPU的中间处理结果和用于合成的所需数据,并传送该用于显示的已处理数据。
优选地,所述软件集线器驱动能够执行以下操作:
通过OS界面及其应用截取来自标准图形库的图形命令;
通过OS界面及其应用发送和创建图形命令给GPU驱动;
通过OS界面及其应用控制硬件集线器,注册以及安装操作;
基于输入图形命令流,保持经过GPU的图形机状态的一致性,并使用状态监视;
估计在已执行的应用程序图形上下文中图形载入及超载的类型,并使用软件和图形资源分析;
加载基于图形命令流和时间尺度的GPU载入平衡的估计,并使用软件和图形资源分析;
根据从每个有关载入平衡的GPU接收到的反馈,调整GPU间的载入分配,并使用软件和图形资源分析;
根据当前的并行模式执行图形功能中的操作;以及
控制分配的图形功能,并根据当前的并行模式更改图形命令和数据流功能。
本发明为一种用于改善图像处理的并行性的方法,其使用一个或多个并行模式,其中图像通过一个或多个图形处理单元显示在至少一个计算机屏幕上。提供应用软件用于发出图形命令,提供图形库用于存储用来执行图形命令的数据。提供软件集线器驱动,其用于控制硬件集线器,使得计算机操作系统和图形库相互作用,以及对数据流进行实时分析,从这些数据流中将生成数帧图像,用于确定每个GPU的并行模式,以及用于将数据流或其部分发送到每个GPU。提供GPU驱动,其用于使得GPU与图形库相互作用,以及提供I/O模块,其用于软件模块和硬件集线器的相互连接。图形命令和数据流或其部分根据它们在图像中的相对复杂性由硬件集线器对于每一帧在GPU之间进行分配,该复杂性由软件集线器驱动进行定义。所述软件集线器也使用获取自至少一个GPU的输出合成用于显示的图形输出,同时在任何需要的时候,可对于所述每一帧改变并行模式。
当并行模式为对象分割并行模式时,将执行下述步骤:
对于每一帧,生成图形操作和多边形数据流;
由软件集线器驱动标记所述多边形数据和图形命令,用于在多重GPU之间进行分配;
将已标记的数据发送到硬件集线器;
通过集线器路由器将已标记的数据分配到多重GPU;
由GPU再现数据;
从帧缓冲区中取出数据并将取出的数据经过集线器路由器发送到合成单元;
将帧缓冲区中的内容合成到单帧缓冲区;以及
将单帧缓冲区中的内容发送到至少一个指定的GPU进行显示。
当并行模式为图像分割并行模式时,将执行下述步骤:
由软件集线器驱动将屏幕细分为多个部分并将不同的视口(viewport)分配给GPU;
将全部多边形数据和图形命令移到集线器路由器;
将全部多边形数据和图形命令转移到GPU,其中每个GPU接收到的是相同的数据;
由GPU再现数据;
将存储在帧缓冲区中的内容的部分发送到硬件集线器的合成单元中,用于创建完整的图像;以及
将图像发送到至少一个GPU以进行显示。
当并行模式为时间分割并行模式时,将执行下述步骤:
将用于再现的全部数量的多边形发送到多重GPU中的每一个;
由软件集线器驱动将全部的多边形数据和图形命令再次送到所有的GPU,并在它们之间进行交替;
由GPU再现数据;
将来自至少一个GPU的已再现数据由集线器路由器进行转移;以及
将帧缓冲区中作为结果的内容由集线器路由器再次送到至少一个指定的GPU以便进行显示。
在多重GPU之间分配多边形的操作是通过在多重GPU之间分配数据块以及测试每个对于块模式的图形操作来执行的,此后,都以一种或多种并行模式来执行。数据通过规则的非块化路径转送到至少一个指定的GPU,这个过程一直重复直到检测到块操作为止。为了在每个GPU中终止再现并清除内部管线,随后GPU通过执行清洗(flush)操作来进行同步;通过执行合成操作将帧缓冲区中的内容合并到单帧缓冲区中,并将单帧缓冲区传送至所有的GPU。然后当检测到交换(swap)操作时,所合成的完整的帧就会终止于所有的GPU,除了一个或多个指定的GPU,并通过一个或多个指定的GPU显示所述图像时。只要块模式还在运行,并还未检测到交换操作,则所有GPU处理相同的数据。当块模式停止运行时,指定的数据将进一步由多重GPU进行处理。
附图说明
图1为本发明实施例的多重GPU结构系统的结构图;
图2为本发明实施例的硬件集线器各组成部分的结构图;
图3为本发明实施例的对象分割并行模式的结构图;
图4为本发明实施例的图像分割并行模式的结构图;
图5为本发明实施例的时间分割并行模式的结构图;
图6为本发明实施例的软件集线器与操作系统环境的一种可能的集成的示意结构图;
图7为本发明实施例的表示软件集线器驱动的主要任务的功能结构图;
图8为本发明实施例的表示在GPU之间分配多边形的过程的流程图;
图9为本发明实施例的使用8个GPU示例系统结构图。
可以理解的是,为了图示的简单和清晰起见,图中所示的各元素并未按尺寸描绘。例如,某些元素的尺度为清晰起见可能相对别的元素要扩大一些。此外,为适当考虑,各图之间的参考数字标记可能重复,以表示相应的或类似的元素。
具体实施方式
多重三维图形管线
本发明需要对包括三维管线集线器这种创新操作组成成分的可扩展的PC图形结构进行介绍。
图1所示为本发明实施例的多重GPU结构系统100。集线器110位于PC总线上独特的位置,介于CPU(Central Processing Unit)和GPU群130之间。如图1所示的多重图形管线结构包括,应用软件121,图形库122,软件集线器123,GPU驱动124,硬件集线器110,GPU群130,以及显示器140。通常,GPU中有一个会被指定为显示器单元。需要注意的是,可能有多于一个的显示单元,或者将显示单元直接包括在硬件集线器中。显示器单元最好可以驱动多个屏幕。
集线器机制包括硬件集线器部分110,其位于PC总线上,介于作为I/O模块的I/O(输入/输出)芯片组160和GPU群130之间,以及包含软件集线器驱动123的,由PC执行操作的软件模块。
硬件集线器110承担至少下列动作:
在GPU之间分配已分解的多边形流和图形命令;
根据不同的并行模式合成用于显示的图形输出;
进行数据缓存;以及
切换并行模式。
软件集线器驱动123,除了控制硬件集线器110外,还承担至少以下动作:
使得OS(操作系统)和诸如OpenGL和DirectX的图形库相互作用;
对数据流进行实时分析;
确定并行模式;以及
分解数据和命令流。
本方法的一个优势在于,硬件集线器110的独特位置使其能够控制图形管线,同时对于应用软件121是透明的。连同例如OpenGL的图形库122,应用软件121如单独的GPU般运行。
本方法的另一个优势在于,硬件集线器110的独特位置使其能够控制用户接口150和显示器140之间的图形管线,同时对于GPU是透明的。群中的每个GPU如同连接在I/O芯片集160上的仅有的图形处理器一般运行。
本方法的又一个优势在于,硬件集线器110的独特位置使其能够控制在图像分割模式,时间分割模式和对象分割模式这些不同并行模式下的图形管线。
本方法进一步的优势在于,硬件集线器110的独特位置使其能够实时地检测到应用软件载入参数的变化,例如多边形计数,纹理量,与人的交互作用,以及智能地确定和执行当前最佳的并行方法。
需要注意的是,根据本发明的所有实施例,显示器140可以直接或间接地连接到硬件集线器110。
参考图2所示的本发明实施例的硬件集线器110的各个组成部分。控制单元210,经总线从软件集线器驱动接收专有的命令,并相应地控制其他单元。集线器路由器230,其从左到右发送多边形数据和图形命令流,从右发送像素数据到合成单元,以及将合成的结果发送到右边。合成单元240根据并行模式执行各种合成计划。辅助内存块220用于存储一个或多个GPU的中间处理结果和合成所需的数据,并传送已处理的用于显示的数据。
硬件集线器110根据并行模式利用其各个单元,所述并行模式为:对象分割模式,图像分割模式和时间分割模式。这些模式根据应用的需要由硬件集线器110适意地进行操作。
图3所示为本发明实施例的对象分割并行模式。CPU执行三维图形应用软件310,该软件随同标准图形库一起产生图形操作和多边形数据流。它们被特定地组织在数据块中,这些数据块或者如同显示列表,顶点数组,或者如自由多边形,所述自由多边形是既没有组织在显示列表也没有在顶点数组中的多边形。步骤320中的软件集线器驱动对多边形数据和图形命令进行标记,使得总的载入能够以平衡的方式在GPU之间进行分配。已标记的数据发送到硬件集线器。在步骤330中,已标记的数据经集线器路由器分配到多重GPU中。步骤340中,在GPU中的再现处理完成之后,在步骤350中将帧缓冲区取回并经集线器路由器发送到合成单元。这里所述的帧缓冲区已被合成为一个单帧缓冲区,并被发送到指定GPU用于显示。该单帧缓冲区在步骤360中显示。
图4公开了本发明实施例的图像分割并行模式下的操作。在这个模式中,软件集线器驱动分配不同的视口给各个GPU,以便在GPU之间把屏幕划分开来。视口的方位根据载入平衡的考虑而设置,以便保持总的GPU载入平衡均匀。在步骤420中,全部多边形数据和图形命令移入硬件集线器的集线器路由器中,并在步骤430中被传送到多重GPU中。所有的GPU接收到相同的数据。在步骤440中的再现步骤之后,步骤450中,局部帧缓冲区被带入硬件集线器的合成单元用于创建完整的图像,随后该图像被移入指定GPU中用于显示。完整的图像在步骤460中显示。
图5公开了本发明实施例的图像分割并行模式下的操作。在时间分割模式中,对每帧的处理占用N个帧时单元,同时有N个GPU(或者N群GPU)参与过程。所有的多边形发送到每个GPU用以再现步骤。步骤530中,在每个帧时单元,软件集线器驱动在某一时刻将多边形数据和图形命令发送到GPU群,并在这个群间进行交替。步骤540中在GPU中再现的数据经集线器路由器转移到上述GPU群中,随后步骤550中作为结果的帧缓冲区经集线器路由器发送到指定GPU中用于显示。所有的GPU由软件集线器驱动协调以创建连续的帧序列。步骤560中,显示作为结果的帧缓冲区。
硬件集线器组成部分为其规划(scaling)技术:规划基于PC的系统的现有GPU性能专用的结构和专有处理群,该规划是通过在芯片、卡或者芯片IP(知识产权)核心的层次上使用并行的多重GPU,并处理CPU和GPU之间的多重总线路径而进行的。该技术实现了性能上的线性增长。其对图形厂家没有变化,对于应用软件也是透明的。在本发明中,顶点处理,碎片处理和总线传送的图形管线瓶颈已得到完全并且巧妙的解决。由于瓶颈可能在各帧之间变换,故硬件集线器被设计具有智能实时反馈系统,其位于如图2所示的控制单元210和如图1所示的软件集线器驱动123之间,通过总线,其使用不同的并行模式以克服不同的瓶颈,并且在帧的级别上保持最大性能。
软件集线器驱动
软件集线器驱动是一个软件包,其位于PC中,与计算机操作系统、标准图形库、应用软件和厂家的GPU驱动共存。图6为本发明实施例的软件集线器驱动630与操作系统环境的一种可能的集成示意结构图。图形应用软件块610旁边为标准图形库块620。软件集线器驱动630位于标准图形库620下方,其截取通往厂家的GPU驱动640的图形命令和数据流。软件集线器驱动630也控制硬件集线器660。
图7为本发明实施例的表示软件集线器驱动主要任务的功能结构图。OS界面和应用块710负责从标准图形库截取图形命令,发送并创建图形命令到厂家的GPU驱动,控制硬件集线器,注册和安装,OS服务和应用等。状态监视块720负责基于输入的图形命令流保持经过GPU的图形机状态的一致性。应用软件和图形资源分析块730负责对应用软件进行观测:估计图形载入和当前应用软件图形内容上下文中的瓶颈的类型,基于图形命令流和时间度量估计载入的图形资源(GPU)的载入平衡,以及根据载入平衡处理来自GPU的反馈。并行策略管理块740是基于载入分析的。所有的并行模式,即对象分割模式,图像分割模式和时间分割模式,都被结合在一起以便获取最佳性能和最优载入处理。并行策略基于对载入的分析,其必须在电路或芯片中保持所有相关联的GPU的图形系统的状态。例如,在某些时间点加入一个新的光源从而造成的状态改变肯定会影响到不同GPU中的所有的后继多边形。并行策略管理块740负责解释图形功能中特定的处理策略。分布式图形功能控制块750负责基于并行策略修改图形命令和数据流。
对象分割分解过程
对象分割是公知的概念,而虽然数据分解(在GPU之间划分数据和图形命令)也是个公知的概念,但是至今还未得到有效的应用,这是因为其遇上了各种很大的困难。而这些困难通过本发明提议的处理及其执行都可以顺利得到解决。
分解以及更重要的合成必须精确而且高效。固定的操作必须按照应用软件提交的顺序执行。例如,在半透明处理的例子中,要创建正确的图形结果就必须保持命令和多边形流的固定顺序。
要保持图形库作为状态机的基本特征以及服从图形标准,必须巧妙地分解数据和图形命令。本发明所提议的分解处理由软件集线器驱动执行。CPU运行三维图形应用软件,产生图形命令和数据流。它们都特定地被组织在例如显示列表或者顶点数组的块中,并存储在系统内存中。
本发明的软件集线器驱动在CPU中运行,其对场景多边形(或顶点)的集合进行分解。它们的物理分配由硬件集线器执行。
多边形在GPU中再现,同时保持本地内存中作为结果的帧缓冲区。所有的FB都经集线器路由器转移到硬件集线器中的合成单元,然后被合并为单FB。最后,该合成的FB被送去显示。
软件集线器驱动继续随后的将多边形在GPU之间进行分配的处理过程。假设所述图形应用软件工作的常规方式保持不变。对于每一帧,典型的应用软件产生包括图形数据块的图形调用流;每个块包括几何操作列表,如单个顶点操作或者基于缓冲区的操作(顶点数组)。特定地,分解过程保持各块为基本的数据单元而将数据在GPU之间分割开来。几何操作附加于数据块,指示数据处理的方式。块被指向指定的GPU。但是,还有属于块操作组的操作,例如清洗,交换,阿尔法融合等,这些操作将影响整个图形系统,并将系统设置为块模式。块操作比较特殊,它们需要合成的有效FB数据,因此在本发明的并行设置中,它们对所有的GPU产生影响。所以,当执行块操作的其中之一时,所有的GPU必须同步。每个帧有至少两个块操作,即清洗和交换,所述操作将令帧终止。
图8为本发明实施例的表示在GPU之间分配多边形的过程的流程图。帧的活动性从将数据块在GPU之间分配开始。步骤820中,对每个图形操作的块模式进行测试。步骤830中,在规则(非块)路径下,数据再次指向指定的GPU。这个循环一直重复直到检测到块操作为止。
步骤840中,当检测到块操作时,所有的GPU至少必须按下列次序同步:
为了中止再现并清除GPU中的内部管线(清洗),执行清洗操作;
为了合并FB的内容到单FB,执行合成操作;以及
为了创建用以继续处理的普通背景,将所述单FB中的内容转移回到所有的GPU。
交换操作交换前后颜色缓冲区,激活双倍缓冲机制。如果步骤850中检测到了交换,意味着除了GPU0,所有GPU中合成的完整的帧都要终止。所有的GPU都有FB的最终合成内容,该FB被指定存储所述内容,但是只有连接到屏幕的一个(GPU0)才显示图像,此为步骤860。
另一个例子是全局地应用到场景中的操作,并需要向所有的GPU广播。如果识别出其他块操作中的一个,例如用于透明化的阿尔法融合,则所有的GPU将如同步骤840的情形被清洗,并合并到普通的FB。这次没有检测到交换操作(步骤850),因此所有的GPU有同样的数据,并且只要块模式在运行(步骤870),所有的GPU就保持处理同样的数据(步骤880)。如果在步骤870中检测到块模式结束,则GPU恢复处理指定的数据(步骤830)。
通过结合三种分配方式对图形载入的适应性处理
另外,本发明介绍了一种动态的载入平衡技术,其根据先前处理阶段中的载入表现,将对象分割方法和图像分割方法以及时间分割方法在图像和时域上合并。将所述三种并行方式合并为统一的框架,这极大地提高了本发明的效果。
并行处理是由管线执行的,如任何普通GPU都可以在时域、图像域和对象域并行处理数据,。在图形处理系统中执行的操作,不论是在多重GPU上的并行处理还是顺续处理,结果都是顺次的完整的光栅图像存储在帧缓冲区中,然后送到显示单元。这些图像被简称为帧。一帧包括许多碎片。碎片是存储在内存中的可扩展的像素,其包括如颜色,阿尔法,深度,模板等的属性。当在时域下执行并行处理时,特殊的,每个GPU都负责产生完整的帧。在其他两个域,即图像和对象域,所有GPU并行操作以产生单帧。屏幕空间并行处理意味着每个GPU再现每帧的碎片子集,而对象并行处理意味着要输入每帧的数据,特别是,几何数据(例如代表场景的多边形集)在多重GPU之间进行分配。
三个域(时间,图像和对象域)中的每一个都有优点和缺点。每种规则的效力都是基于输入数据的动态功能。此外,在许多例子中,单独的规则总不会是较优的。在这些例子中,两者的结合甚至所有三种规则的结合可能得到最优的结果。
本发明叙述了对三维数据并行处理系统的说明。本发明提供了一种新的对象并行处理,其包括在不同的GPU之间有效地分解数据,以及将在不同的GPU上产生的许多帧组合成最终的准备再现的帧。
本发明提供了一种将所有三种并行模式动态地结合为统一框架以获取最大载入平衡的方法。在每帧中,对可用GPU的设置可以重新配置,该配置基于其再现先前帧所需的时间,而瓶颈就是表现在对这些帧的处理过程中。
图9为本发明实施例的使用8个GPU的系统示例结构图。上述示例结构中假设采用稳定的图形应用软件。在时间分割并行中GPU被分为两组。标号为1、2、3和4的GPU设定为处理偶数帧,标号为5、6、7和8的GPU设定为处理奇数帧。在每组中,各有两个子组被设置为图像分割处理:标号较低的GPU(分别为1、2和5、6)配置为处理一半的屏幕,而高标号的GPU(分别为3、4和7、8)则设定为处理另外一半屏幕。最后,对于对象分割处理,对标号为1、3、5和7的GPU供应一半的对象,而对标号为2、4、6和8的GPU供应另一半的对象。
如果在某些时刻,系统检测到在先前的各帧的瓶颈在管道的光栅阶段发生,这意味着在再现帧的时间上,对碎片的处理占据了支配地位,并且配置失去了平衡。这时GPU被重新配置,以便每个GPU在各自的帧中再现四分之一的屏幕。原有的在GPU1、2、3、4和GPU5、6、7、8之间的用于时间分割处理的部分依然保留,但是GPU2和GPU5分别设定为在偶数帧和奇数帧中再现首个四分之一的屏幕。GPU1和GPU6-第二个四分之一,GPU4和GPU7-第三个四分之一,以及GPU3和GPU8-第四个四分之一。不包括对象分割处理。
此外,如果在某些时候系统检测到在先前的各帧的瓶颈在管道的几何阶段发生,则GPU被重新配置,以便每个GPU在各自的帧中处理四分之一的几何数据。即,GPU3和GPU5分别设定为在偶数帧和奇数帧中处理多边形的首个四分之一。GPU1和GPU7-第二个四分之一,GPU4和GPU6-第三个四分之一,GPU2和GPU8-第四个四分之一。不包括图像分割处理。
需要注意的是,使用8个GPU足以组合所有的三种并行模式,即各帧的时间分割,图像分割和对象分割模式。采用大于8个的GPU也可以组合所有的3种模式,但是结构就不对称了。时间分割循环中的帧的数量也有很大的灵活性。在上述例子中,8个GPU的群被分解为两个组,每个组处理一个帧。但是,在时间分割模式中的序列中增大帧的数目也是可行的,即大于2帧,例如3或4帧。
采用更少数目的GPU仍然可以实现对并行模式的结合,但是就只能结合两种模式。例如,仅采用4个GPU可以结合图像分割和对象分割模式,没有了时间分割模式。从图9可以清楚地理解到,当采用左边的群GPU1、GPU2、GPU3和GPU4时,或类似地,采用上边的群GPU1、GPU2、GPU5和GPU6时,可使用对象分割和时间分割模式。最后,采用中间的群GPU2、GPU4、GPU5和6这一组的结构可使用图像分割和时间分割模式。
需要注意的是,类似于上述实施例,各并行模式间任何的组合可预定为对图形载入均匀地平衡。
需要注意的另一点是,为了每帧的处理性能最优化,本发明的所有GPU之间的并行处理可以基于对象分割模式或者图像分割模式或者时间分割模式或者它们的任何组合。
虽然本发明的一些实施例已通过图示的方式得到描述,但显然,在不背离本发明的精神或者在不超出权利要求书所限定的范围的前提下,对于本领域的技术人员来说,本发明在实际应用中可以进行许多修改,变化和改装,以及可使用许多等同的或者他择性的技术方案。
Claims (13)
1、一种用于改善图像处理的并行性的系统,其使用一个或多个并行模式,其中所述图像通过一个或多个图形处理单元(GPU)显示在至少一个计算机屏幕上,该系统包括:
a.一个或多个应用软件,其用于发出图形命令;
b.一个或多个图形库,其用于存储用来执行图形命令的数据;
c.一个或多个软件集线器驱动,其用于控制硬件集线器,使得计算机操作系统和图形库相互作用,以及用于对将生成图像帧的数据流进行实时分析,用于确定各个GPU的并行模式,以及用于将数据流或其部分转送到各个GPU;
d.一个或多个GPU驱动,其用于使得GPU与图形库相互作用;及
e.至少一个I/O模块,其用于软件模块和硬件集线器之间的相互连接,
其中,所述硬件集线器将对于各帧的根据图形命令以及数据流或其部分在图像中的相对复杂性在GPU之间分配图形命令以及数据流或其部分,所述复杂性由所述软件集线器驱动定义;以及使用获取自至少一个GPU的输出合成用于显示的图形输出,同时在任何需要的时候,可对于所述各帧的并行模式进行交替。
2、如权利要求1所述的系统,其中所述并行性基于对象分割模式、图像分割模式、时间分割模式或者它们的任意组合。
3、如权利要求1所述的系统,其中所述硬件集线器包含至少一个合成单元,其至少用于从数据流的已处理的部分合成出完整的帧。
4、如权利要求2所述的系统,其中所述硬件集线器包含至少一个集线器路由器,其用于在对象分割、图像分割、时间分割或者它们的任意组合的模式中运行的同时,发送多边形数据、图形命令流、像素数据以及合成结果。
5、如权利要求1所述的系统,其中所述硬件集线器包含至少一个控制单元,其用于在I/O模块中接收来自软件集线器驱动的命令。
6、如权利要求1所述的系统,其中所述硬件集线器包含内存单元,其用于存储一个或多个GPU的中间处理结果和用于合成所需的数据,并传送该已处理数据以便进行显示。
7、如权利要求1所述的系统,其中所述软件集线器驱动能够执行以下操作:
a.通过OS界面及其应用截取来自标准图形库的图形命令;
b.通过OS界面及其应用转送和创建图形命令给GPU驱动;
c.通过OS界面及其应用控制硬件集线器、注册以及安装操作;
d.基于输入图形命令流,保持经过GPU的图形机状态的一致性,同时使用状态监视;
e.使用应用和图形资源分析,估计在执行的应用程序图形背景中图形载入及超载的类型;
f.基于图形命令流和时间尺度的GPU载入平衡的载入估计,同时使用应用和图形资源分析;
g.根据从各个GPU接收到的有关载入平衡的反馈,调整GPU间的载入分配,同时使用应用和图形资源分析;
h.根据当前的并行模式执行图形功能中的操作;以及
i.控制分配的图形功能,并根据当前的并行模式更改图形命令和数据流。
8、一种用于改善图像处理的并行性的方法,其使用一个或多个并行模式,其中图像通过一个或多个图形处理单元显示在至少一个计算机屏幕上,该方法至少包括:
a.提供一个或多个应用软件,用于发出图形命令;
b.提供一个或多个图形库,用于存储用来执行所述图形命令的数据;
c.提供一个或多个软件集线器驱动,用于控制硬件集线器,用于使得所述计算机操作系统和所述图形库相互作用,以及用于对将生成所述图像帧的数据流进行实时分析,用于确定各个GPU的并行模式,以及用于将所述数据流或其部分转送到各个GPU;
d.提供一个或多个GPU驱动,用于使得所述GPU与所述图形库相互作用;
e.提供至少一个I/O模块,用于所述软件模块和所述硬件集线器之间的相互连接;
f.对于各帧,根据图形命令和所述数据流或其部分在所述图像中相对的复杂性通过所述硬件集线器在所述GPU之间分配图形命令和所述数据流或其部分,该复杂性由所述软件集线器驱动进行定义;并使用获取自至少一个GPU的输出合成用于显示的图形输出,同时在任何需要的时候,可对于所述各帧交替所述并行模式。
9、如权利要求8所述的方法,其中并行模式为对象分割并行模式,并执行下述步骤:
a.对于各帧,生成图形操作和多边形数据流;
b.由软件集线器驱动标记所述多边形数据和图形命令,用于在多个GPU之间进行分配;
c.将已标记的数据发送到硬件集线器;
d.通过集线器路由器将所述已标记的数据分配到所述多个GPU;
e.由GPU再现数据;
f.从所述帧缓冲区中取出数据并将取出的数据经过集线器路由器转送到合成单元;
g.将所述帧缓冲区中的内容合成到单帧缓冲区;以及
h.将所述单帧缓冲区中的内容转送到至少一个指定的GPU用于显示。
10、如权利要求8所述的方法,其中并行模式为图像分割并行模式,并执行下述步骤:
a.由所述软件集线器驱动将屏幕细分为多个部分并将不同的视口分配给GPU;
b.将全部多边形数据和图形命令移到所述集线器路由器;
c.将所述全部多边形数据和图形命令发送到GPU,其中各个GPU接收相同的数据;
d.由GPU再现数据;
e.将存储在所述帧缓冲区中的内容的部分转送到硬件集线器的合成单元中,用于创建完整的图像;以及
f.将图像转送到至少一个指定的GPU用于显示。
11、如权利要求8所述的方法,其中并行模式为时间分割并行模式时,并执行下述步骤:
a.将用于再现的全部多边形发送到多个GPU中的每一个;
b.由软件集线器驱动将全部多边形数据和图形命令再次送到所有的GPU,并在它们之间进行交替;
c.通过GPU再现数据;
d.经集线器路由器将来自至少一个GPU的再现数据进行转移;以及
e.将帧缓冲区中作为结果的内容经集线器路由器再次送到至少一个指定的GPU用于显示。
12、如权利要求8所述的方法,其中在多个GPU之间进行多边形的分配是通过:
a.在多个GPU之间分配数据块;
b.对于块模式测试各个图形操作,其中一种或多种并行模式被完成;
c.将所述规则的非块化路径中的数据转送到至少一个指定的GPU;
d.重复步骤(b)和(c)直到检测到块操作;
e.通过下列次序对GPU进行同步:
e.1.为了在各个GPU中终止再现并清除内部管线,执行清洗操作;
e.2.执行合成操作以将帧缓冲区中的内容合并到单帧缓冲区中;
e.3.将单帧缓冲区传送至所有的GPU;
f.在检测到交换操作的任何时候,在所有的GPU终止所合成的完整的帧,除了一个或多个指定的GPU,并通过所述一个或多个指定的GPU显示所述图像;
g.只要块模式还在运行且未检测到交换操作,则通过所有GPU处理相同的数据;
h.在块模式停止运行的任何时候,通过多个GPU继续进行指定的数据的处理。
13、如权利要求8所述的方法,其中所述并行性基于对象分割、图像分割、时间分割模式或者它们的任意组合。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US52308403P | 2003-11-19 | 2003-11-19 | |
US52310203P | 2003-11-19 | 2003-11-19 | |
US60/523,102 | 2003-11-19 | ||
US60/523,084 | 2003-11-19 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1890660A true CN1890660A (zh) | 2007-01-03 |
Family
ID=34623170
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2004800343078A Pending CN1890660A (zh) | 2003-11-19 | 2004-11-19 | Pc总线上的多重三维图形管线的方法及系统 |
Country Status (6)
Country | Link |
---|---|
US (9) | US7808499B2 (zh) |
EP (1) | EP1687732A4 (zh) |
JP (1) | JP2007512613A (zh) |
CN (1) | CN1890660A (zh) |
CA (1) | CA2546427A1 (zh) |
WO (1) | WO2005050557A2 (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102209191A (zh) * | 2010-03-30 | 2011-10-05 | 联发科技股份有限公司 | 执行图像信号处理的方法及用于执行图像信号处理的装置 |
CN102289782A (zh) * | 2010-06-18 | 2011-12-21 | 索尼公司 | 信息处理装置、用于控制信息处理装置的方法、和程序 |
CN101639930B (zh) * | 2008-08-01 | 2012-07-04 | 辉达公司 | 一连串绘图处理器处理绘图数据的方法及系统 |
CN102868601A (zh) * | 2012-09-24 | 2013-01-09 | 上海天玑科技股份有限公司 | 一种有关基于图形配置数据库业务网络拓扑的路由系统 |
CN101719262B (zh) * | 2008-11-06 | 2013-07-24 | 威盛电子股份有限公司 | 绘图处理单元以及元命令处理系统 |
CN102227709B (zh) * | 2008-10-03 | 2015-05-20 | 先进微装置公司 | 多处理器架构与方法 |
CN106326186A (zh) * | 2015-06-29 | 2017-01-11 | 深圳市中兴微电子技术有限公司 | 一种片上系统、图形绘制方法、中间层及嵌入式设备 |
CN106415479A (zh) * | 2014-06-19 | 2017-02-15 | 苹果公司 | 多个显示管线驱动被划分的显示器 |
US9977756B2 (en) | 2008-10-03 | 2018-05-22 | Advanced Micro Devices, Inc. | Internal bus architecture and method in multi-processor systems |
CN109408456A (zh) * | 2018-12-07 | 2019-03-01 | 中国地质大学(武汉) | 一种基于s905d芯片与stm32芯片协同工作硬件电路 |
CN111045623A (zh) * | 2019-11-21 | 2020-04-21 | 中国航空工业集团公司西安航空计算技术研究所 | 一种多gpu拼接环境下图形命令的处理方法 |
CN112037117A (zh) * | 2020-09-07 | 2020-12-04 | 西安芯瞳半导体技术有限公司 | 用于运行高性能gpu应用的方法、装置及计算机存储介质 |
CN112057851A (zh) * | 2020-09-02 | 2020-12-11 | 北京蔚领时代科技有限公司 | 一种基于多显卡的单帧画面实时渲染方法 |
Families Citing this family (76)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8745173B1 (en) * | 2011-12-30 | 2014-06-03 | hopTo Inc. | Client computing system for and method of receiving cross-platform remote access to 3D graphics applications |
US7222305B2 (en) * | 2003-03-13 | 2007-05-22 | Oracle International Corp. | Method of sharing a desktop with attendees of a real-time collaboration |
CA2546427A1 (en) | 2003-11-19 | 2005-06-02 | Reuven Bakalash | Method and system for multiple 3-d graphic pipeline over a pc bus |
US7457921B2 (en) * | 2005-02-23 | 2008-11-25 | Microsoft Corporation | Write barrier for data storage integrity |
US8217950B2 (en) * | 2005-05-27 | 2012-07-10 | Advanced Micro Devices, Inc. | Video processing across multiple graphics processing units |
US10026140B2 (en) * | 2005-06-10 | 2018-07-17 | Nvidia Corporation | Using a scalable graphics system to enable a general-purpose multi-user computer system |
US7629978B1 (en) * | 2005-10-31 | 2009-12-08 | Nvidia Corporation | Multichip rendering with state control |
US7830387B2 (en) | 2006-11-07 | 2010-11-09 | Microsoft Corporation | Parallel engine support in display driver model |
KR100803220B1 (ko) * | 2006-11-20 | 2008-02-14 | 삼성전자주식회사 | 다중 파이프라인의 3차원 그래픽스 렌더링 방법 및 장치 |
US8726289B2 (en) * | 2008-02-22 | 2014-05-13 | International Business Machines Corporation | Streaming attachment of hardware accelerators to computer systems |
US8250578B2 (en) * | 2008-02-22 | 2012-08-21 | International Business Machines Corporation | Pipelining hardware accelerators to computer systems |
US7953912B2 (en) * | 2008-02-22 | 2011-05-31 | International Business Machines Corporation | Guided attachment of accelerators to computer systems |
WO2009113811A2 (en) * | 2008-03-11 | 2009-09-17 | Core Logic Inc. | Processing 3d graphics supporting fixed pipeline |
US9117007B2 (en) * | 2008-05-14 | 2015-08-25 | Microsoft Technology Licensing, Llc | Visualization of streaming real-time data |
US8319782B2 (en) * | 2008-07-08 | 2012-11-27 | Dell Products, Lp | Systems and methods for providing scalable parallel graphics rendering capability for information handling systems |
US8228337B1 (en) * | 2008-10-03 | 2012-07-24 | Nvidia Corporation | System and method for temporal load balancing across GPUs |
US8427474B1 (en) | 2008-10-03 | 2013-04-23 | Nvidia Corporation | System and method for temporal load balancing across GPUs |
GB2465812A (en) * | 2008-12-01 | 2010-06-02 | Imagination Tech Ltd | Distributed processing for rendering 3D images |
KR101519825B1 (ko) * | 2008-12-05 | 2015-05-13 | 삼성전자주식회사 | 데이터 처리 장치 및 그 제어 방법 |
US9479358B2 (en) * | 2009-05-13 | 2016-10-25 | International Business Machines Corporation | Managing graphics load balancing strategies |
US20110063309A1 (en) * | 2009-09-16 | 2011-03-17 | Nvidia Corporation | User interface for co-processing techniques on heterogeneous graphics processing units |
JP5590849B2 (ja) * | 2009-10-08 | 2014-09-17 | キヤノン株式会社 | 複数の処理モジュールを有する並列処理回路を備えるデータ処理装置、その制御装置、およびその制御方法、プログラム |
FR2952731B1 (fr) * | 2009-11-13 | 2011-11-04 | Bull Sas | Procede et dispositif d'optimisation d'execution d'applications logicielles dans une architecture multiprocesseur comprenant plusieurs controleurs d'entree/sortie et unites de calcul secondaires |
US9830889B2 (en) | 2009-12-31 | 2017-11-28 | Nvidia Corporation | Methods and system for artifically and dynamically limiting the display resolution of an application |
US20110298816A1 (en) * | 2010-06-03 | 2011-12-08 | Microsoft Corporation | Updating graphical display content |
US8675002B1 (en) | 2010-06-09 | 2014-03-18 | Ati Technologies, Ulc | Efficient approach for a unified command buffer |
JP5835942B2 (ja) * | 2010-06-25 | 2015-12-24 | キヤノン株式会社 | 画像処理装置、その制御方法及びプログラム |
US20120001905A1 (en) * | 2010-06-30 | 2012-01-05 | Ati Technologies, Ulc | Seamless Integration of Multi-GPU Rendering |
US20120001925A1 (en) | 2010-06-30 | 2012-01-05 | Ati Technologies, Ulc | Dynamic Feedback Load Balancing |
WO2012054089A2 (en) * | 2010-10-21 | 2012-04-26 | Net Power And Light Inc. | Distributed processing pipeline and distributed layered application processing |
US20120147015A1 (en) * | 2010-12-13 | 2012-06-14 | Advanced Micro Devices, Inc. | Graphics Processing in a Multi-Processor Computing System |
US8866825B2 (en) * | 2010-12-15 | 2014-10-21 | Ati Technologies Ulc | Multiple display frame rendering method and apparatus |
US8786619B2 (en) | 2011-02-25 | 2014-07-22 | Adobe Systems Incorporated | Parallelized definition and display of content in a scripting environment |
JP5699755B2 (ja) | 2011-03-31 | 2015-04-15 | 富士通株式会社 | 割当方法、割当装置、および割当プログラム |
CN102270095A (zh) * | 2011-06-30 | 2011-12-07 | 威盛电子股份有限公司 | 多重显示器控制方法及其系统 |
US9727385B2 (en) * | 2011-07-18 | 2017-08-08 | Apple Inc. | Graphical processing unit (GPU) implementing a plurality of virtual GPUs |
US9019292B2 (en) | 2011-09-12 | 2015-04-28 | Microsoft Technology Licensing Llc | Reordering graph execution for processing optimization |
US20130148947A1 (en) * | 2011-12-13 | 2013-06-13 | Ati Technologies Ulc | Video player with multiple grpahics processors |
US8842122B2 (en) * | 2011-12-15 | 2014-09-23 | Qualcomm Incorporated | Graphics processing unit with command processor |
US8769052B1 (en) | 2011-12-30 | 2014-07-01 | hopTo Inc. | Cloud-based server computing system for and method of providing cross-platform remote access to 3D graphics applications |
US8838749B1 (en) | 2011-12-30 | 2014-09-16 | hopTo Inc. | Cloud based client computing system for and method of receiving cross-platform remote access to 3D graphics applications |
US8766990B1 (en) | 2011-12-30 | 2014-07-01 | hopTo Inc. | Server computing system for and method of providing cross-platform remote access to 3D graphics applications |
WO2013102798A1 (en) * | 2012-01-06 | 2013-07-11 | Aselsan Elektronik Sanayi Ve Ticaret Anonim Sirketi | Distributed image generation system |
US8692832B2 (en) | 2012-01-23 | 2014-04-08 | Microsoft Corporation | Para-virtualized asymmetric GPU processors |
US20130328884A1 (en) * | 2012-06-08 | 2013-12-12 | Advanced Micro Devices, Inc. | Direct opencl graphics rendering |
TWI482118B (zh) * | 2012-10-18 | 2015-04-21 | Wistron Corp | 處理圖形運算負載平衡之方法及系統 |
TW201421420A (zh) * | 2012-11-21 | 2014-06-01 | Inst Information Industry | 圖形處理單元虛擬裝置、圖形處理單元主機裝置及其圖形處理單元程式處理方法 |
KR102124395B1 (ko) * | 2013-08-12 | 2020-06-18 | 삼성전자주식회사 | 그래픽스 처리 장치 및 방법 |
US9348602B1 (en) | 2013-09-03 | 2016-05-24 | Amazon Technologies, Inc. | Resource allocation for staged execution pipelining |
US20150286456A1 (en) | 2014-01-11 | 2015-10-08 | Userful Corporation | Method and System of Video Wall Setup and Adjustment Using GUI and Display Images |
KR102277353B1 (ko) | 2014-02-21 | 2021-07-15 | 삼성전자주식회사 | 영상 처리 방법 및 전자 장치 |
CN104915320A (zh) * | 2015-05-28 | 2015-09-16 | 浪潮电子信息产业股份有限公司 | 一种gpu服务器 |
US10499072B2 (en) * | 2016-02-17 | 2019-12-03 | Mimax, Inc. | Macro cell display compression multi-head raster GPU |
EP3301572B1 (en) * | 2016-09-30 | 2023-05-24 | Dassault Systèmes | Method, program and system for simulating a 3d scene with a set of computing resources running in parallel |
KR20180038793A (ko) * | 2016-10-07 | 2018-04-17 | 삼성전자주식회사 | 영상 데이터 처리 방법 및 장치 |
US10504259B2 (en) | 2017-04-24 | 2019-12-10 | Intel Corporation | Separately processing regions or objects or interest from a render engine to a display engine or a display panel |
US11055807B2 (en) * | 2017-06-12 | 2021-07-06 | Apple Inc. | Method and system for a transactional based display pipeline to interface with graphics processing units |
CN108153593A (zh) * | 2017-12-22 | 2018-06-12 | 合肥寰景信息技术有限公司 | 一种高并发的gpu集群架构及其负载均衡方法 |
CN108416836A (zh) * | 2018-02-06 | 2018-08-17 | 上海滚滚文化传播有限公司 | 一种通过三维建模渲染转二维平面的漫画制作方法 |
US10573034B2 (en) | 2018-04-13 | 2020-02-25 | Honeywell International Inc. | System and method for translation of graphics to newer format using pattern matching |
CA3091602C (en) * | 2018-05-31 | 2024-05-28 | Huawei Technologies Co., Ltd. | Apparatus and method for command stream optimization and enhancement |
US10747207B2 (en) | 2018-06-15 | 2020-08-18 | Honeywell International Inc. | System and method for accurate automatic determination of “alarm-operator action” linkage for operator assessment and alarm guidance using custom graphics and control charts |
US10699159B2 (en) | 2018-08-17 | 2020-06-30 | Honeywell International Inc. | Objects aggregation and standardization for legacy graphics conversion |
US11397624B2 (en) * | 2019-01-22 | 2022-07-26 | Arm Limited | Execution of cross-lane operations in data processing systems |
CN109962691A (zh) * | 2019-04-04 | 2019-07-02 | 同济大学 | 一种用于传感器网络的分布式自适应滤波器设计方法 |
US11042957B1 (en) | 2019-12-12 | 2021-06-22 | Honeywell International Inc. | Identification of process and control linkages from custom graphics for the purpose of backbuilding standard operating procedures |
US11080814B1 (en) * | 2020-02-03 | 2021-08-03 | Sony Interactive Entertainment Inc. | System and method for efficient multi-GPU rendering of geometry by pretesting against screen regions using prior frame information |
CN111491059B (zh) * | 2020-04-09 | 2021-08-10 | 上海众链科技有限公司 | 图像渲染增强系统及方法 |
CN111679877B (zh) * | 2020-05-27 | 2023-08-29 | 浙江大华技术股份有限公司 | 一种变更终端设备背景的方法、装置和电子设备 |
DE112020007672T5 (de) * | 2020-11-12 | 2023-08-24 | Nvidia Corporation | Intra-schicht-adapter für die new radio-kommunikation der fünften generation (5g-nr) |
CN114625329A (zh) * | 2020-12-11 | 2022-06-14 | 慧荣科技股份有限公司 | 多屏幕显示控制装置 |
CN114625330A (zh) | 2020-12-11 | 2022-06-14 | 慧荣科技股份有限公司 | 多屏幕显示控制装置 |
US20220308920A1 (en) * | 2021-03-29 | 2022-09-29 | Samsung Electronics Co., Ltd. | Task scheduling method, and computing device and application processor using the same |
US11574579B2 (en) * | 2021-06-23 | 2023-02-07 | Dell Products L.P. | Enabling display filters in collaborative environments |
US20220414967A1 (en) * | 2021-06-24 | 2022-12-29 | Intel Corporation | Out-of-order pixel shading and rasterization |
CN113436232B (zh) * | 2021-06-29 | 2023-03-24 | 上海律信信息科技有限公司 | 一种基于跟踪算法的硬件加速方法 |
Family Cites Families (219)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07104923B2 (ja) * | 1988-12-28 | 1995-11-13 | 工業技術院長 | 並列画像表示処理方法 |
JP2770598B2 (ja) * | 1990-06-13 | 1998-07-02 | 株式会社日立製作所 | 図形表示方法およびその装置 |
CA2073516A1 (en) | 1991-11-27 | 1993-05-28 | Peter Michael Kogge | Dynamic multi-mode parallel processor array architecture computer system |
JP3199205B2 (ja) * | 1993-11-19 | 2001-08-13 | 株式会社日立製作所 | 並列演算装置 |
EP0693737A3 (en) | 1994-07-21 | 1997-01-08 | Ibm | Method and apparatus for managing tasks in a multiprocessor system |
US5745762A (en) * | 1994-12-15 | 1998-04-28 | International Business Machines Corporation | Advanced graphics driver architecture supporting multiple system emulations |
US5687357A (en) | 1995-04-14 | 1997-11-11 | Nvidia Corporation | Register array for utilizing burst mode transfer on local bus |
US5754866A (en) | 1995-05-08 | 1998-05-19 | Nvidia Corporation | Delayed interrupts with a FIFO in an improved input/output architecture |
US5758182A (en) | 1995-05-15 | 1998-05-26 | Nvidia Corporation | DMA controller translates virtual I/O device address received directly from application program command to physical i/o device address of I/O device on device bus |
US5623692A (en) | 1995-05-15 | 1997-04-22 | Nvidia Corporation | Architecture for providing input/output operations in a computer system |
US5909595A (en) | 1995-05-15 | 1999-06-01 | Nvidia Corporation | Method of controlling I/O routing by setting connecting context for utilizing I/O processing elements within a computer system to produce multimedia effects |
US5794016A (en) | 1995-12-11 | 1998-08-11 | Dynamic Pictures, Inc. | Parallel-processor graphics architecture |
KR100269106B1 (ko) | 1996-03-21 | 2000-11-01 | 윤종용 | 멀티프로세서 그래픽스 시스템 |
CA2263264C (en) | 1996-08-14 | 2006-11-28 | Northern Telecom Limited | Internet-based telephone call manager |
US6118462A (en) | 1997-07-01 | 2000-09-12 | Memtrax Llc | Computer system controller having internal memory and external memory control |
US6169553B1 (en) | 1997-07-02 | 2001-01-02 | Ati Technologies, Inc. | Method and apparatus for rendering a three-dimensional scene having shadowing |
US6201545B1 (en) | 1997-09-23 | 2001-03-13 | Ati Technologies, Inc. | Method and apparatus for generating sub pixel masks in a three dimensional graphic processing system |
US6856320B1 (en) | 1997-11-25 | 2005-02-15 | Nvidia U.S. Investment Company | Demand-based memory system for graphics applications |
US6337686B2 (en) | 1998-01-07 | 2002-01-08 | Ati Technologies Inc. | Method and apparatus for line anti-aliasing |
US6496187B1 (en) | 1998-02-17 | 2002-12-17 | Sun Microsystems, Inc. | Graphics system configured to perform parallel sample to pixel calculation |
US6182196B1 (en) * | 1998-02-20 | 2001-01-30 | Ati International Srl | Method and apparatus for arbitrating access requests to a memory |
US6473089B1 (en) | 1998-03-02 | 2002-10-29 | Ati Technologies, Inc. | Method and apparatus for a video graphics circuit having parallel pixel processing |
US6259460B1 (en) | 1998-03-26 | 2001-07-10 | Silicon Graphics, Inc. | Method for efficient handling of texture cache misses by recirculation |
US7038692B1 (en) | 1998-04-07 | 2006-05-02 | Nvidia Corporation | Method and apparatus for providing a vertex cache |
US6092124A (en) | 1998-04-17 | 2000-07-18 | Nvidia Corporation | Method and apparatus for accelerating the rendering of images |
US6184908B1 (en) | 1998-04-27 | 2001-02-06 | Ati Technologies, Inc. | Method and apparatus for co-processing video graphics data |
US6212617B1 (en) | 1998-05-13 | 2001-04-03 | Microsoft Corporation | Parallel processing method and system using a lazy parallel data type to reduce inter-processor communication |
US6477687B1 (en) | 1998-06-01 | 2002-11-05 | Nvidia U.S. Investment Company | Method of embedding RAMS and other macrocells in the core of an integrated circuit chip |
US7023437B1 (en) | 1998-07-22 | 2006-04-04 | Nvidia Corporation | System and method for accelerating graphics processing using a post-geometry data stream during multiple-pass rendering |
US6636215B1 (en) | 1998-07-22 | 2003-10-21 | Nvidia Corporation | Hardware-assisted z-pyramid creation for host-based occlusion culling |
US6646639B1 (en) | 1998-07-22 | 2003-11-11 | Nvidia Corporation | Modified method and apparatus for improved occlusion culling in graphics systems |
US7068272B1 (en) | 2000-05-31 | 2006-06-27 | Nvidia Corporation | System, method and article of manufacture for Z-value and stencil culling prior to rendering in a computer graphics processing pipeline |
US6415345B1 (en) | 1998-08-03 | 2002-07-02 | Ati Technologies | Bus mastering interface control system for transferring multistream data over a host bus |
US6191800B1 (en) * | 1998-08-11 | 2001-02-20 | International Business Machines Corporation | Dynamic balancing of graphics workloads using a tiling strategy |
US6492987B1 (en) | 1998-08-27 | 2002-12-10 | Ati Technologies, Inc. | Method and apparatus for processing object elements that are being rendered |
US6188412B1 (en) | 1998-08-28 | 2001-02-13 | Ati Technologies, Inc. | Method and apparatus for performing setup operations in a video graphics system |
US6292200B1 (en) | 1998-10-23 | 2001-09-18 | Silicon Graphics, Inc. | Apparatus and method for utilizing multiple rendering pipes for a single 3-D display |
US6362825B1 (en) * | 1999-01-19 | 2002-03-26 | Hewlett-Packard Company | Real-time combination of adjacent identical primitive data sets in a graphics call sequence |
US6753878B1 (en) | 1999-03-08 | 2004-06-22 | Hewlett-Packard Development Company, L.P. | Parallel pipelined merge engines |
JP3169933B2 (ja) | 1999-03-16 | 2001-05-28 | 四国日本電気ソフトウェア株式会社 | 並列描画装置 |
US6535209B1 (en) | 1999-03-17 | 2003-03-18 | Nvidia Us Investments Co. | Data stream splitting and storage in graphics data processing |
US6288418B1 (en) | 1999-03-19 | 2001-09-11 | Nvidia Corporation | Multiuse input/output connector arrangement for graphics accelerator integrated circuit |
US6333744B1 (en) | 1999-03-22 | 2001-12-25 | Nvidia Corporation | Graphics pipeline including combiner stages |
US6577320B1 (en) | 1999-03-22 | 2003-06-10 | Nvidia Corporation | Method and apparatus for processing multiple types of pixel component representations including processes of premultiplication, postmultiplication, and colorkeying/chromakeying |
US6181352B1 (en) | 1999-03-22 | 2001-01-30 | Nvidia Corporation | Graphics pipeline selectively providing multiple pixels or multiple textures |
DE19917092A1 (de) | 1999-04-15 | 2000-10-26 | Sp3D Chip Design Gmbh | Verfahren zur Rasterisierung eines Graphikgrundelements |
US6990076B1 (en) * | 1999-05-18 | 2006-01-24 | Mcnamara Timothy G | Synchronous bi-directional data transfer having increased bandwidth and scan test features |
US6424320B1 (en) * | 1999-06-15 | 2002-07-23 | Ati International Srl | Method and apparatus for rendering video |
US6469703B1 (en) | 1999-07-02 | 2002-10-22 | Ati International Srl | System of accessing data in a graphics system and method thereof |
US6442656B1 (en) | 1999-08-18 | 2002-08-27 | Ati Technologies Srl | Method and apparatus for interfacing memory with a bus |
US6352479B1 (en) | 1999-08-31 | 2002-03-05 | Nvidia U.S. Investment Company | Interactive gaming server and online community forum |
US6578068B1 (en) | 1999-08-31 | 2003-06-10 | Accenture Llp | Load balancer in environment services patterns |
US6657635B1 (en) | 1999-09-03 | 2003-12-02 | Nvidia Corporation | Binning flush in graphics data processing |
US6844880B1 (en) | 1999-12-06 | 2005-01-18 | Nvidia Corporation | System, method and computer program product for an improved programmable vertex processing model with instruction set |
US6573900B1 (en) | 1999-12-06 | 2003-06-03 | Nvidia Corporation | Method, apparatus and article of manufacture for a sequencer in a transform/lighting module capable of processing multiple independent execution threads |
US6417851B1 (en) | 1999-12-06 | 2002-07-09 | Nvidia Corporation | Method and apparatus for lighting module in a graphics processor |
US6870540B1 (en) | 1999-12-06 | 2005-03-22 | Nvidia Corporation | System, method and computer program product for a programmable pixel processing model with instruction set |
US6353439B1 (en) | 1999-12-06 | 2002-03-05 | Nvidia Corporation | System, method and computer program product for a blending operation in a transform module of a computer graphics pipeline |
US6452595B1 (en) | 1999-12-06 | 2002-09-17 | Nvidia Corporation | Integrated graphics processing unit with antialiasing |
US7002577B2 (en) | 1999-12-06 | 2006-02-21 | Nvidia Corporation | Clipping system and method for a single graphics semiconductor platform |
US6198488B1 (en) | 1999-12-06 | 2001-03-06 | Nvidia | Transform, lighting and rasterization system embodied on a single semiconductor platform |
US6473086B1 (en) | 1999-12-09 | 2002-10-29 | Ati International Srl | Method and apparatus for graphics processing using parallel graphics processors |
US6557065B1 (en) | 1999-12-20 | 2003-04-29 | Intel Corporation | CPU expandability bus |
US6760031B1 (en) | 1999-12-31 | 2004-07-06 | Intel Corporation | Upgrading an integrated graphics subsystem |
EP1186881A4 (en) | 2000-03-16 | 2006-04-19 | Fuji Photo Film Co Ltd | MEASURING METHOD AND INSTRUMENT USING ATTENUATION OF TOTAL REFLECTION |
US6831652B1 (en) | 2000-03-24 | 2004-12-14 | Ati International, Srl | Method and system for storing graphics data |
US6975319B1 (en) | 2000-03-24 | 2005-12-13 | Nvidia Corporation | System, method and article of manufacture for calculating a level of detail (LOD) during computer graphics processing |
US6747654B1 (en) * | 2000-04-20 | 2004-06-08 | Ati International Srl | Multiple device frame synchronization method and apparatus |
US6741243B2 (en) | 2000-05-01 | 2004-05-25 | Broadcom Corporation | Method and system for reducing overflows in a computer graphics system |
US6725457B1 (en) | 2000-05-17 | 2004-04-20 | Nvidia Corporation | Semaphore enhancement to improve system performance |
US6633296B1 (en) | 2000-05-26 | 2003-10-14 | Ati International Srl | Apparatus for providing data to a plurality of graphics processors and method thereof |
US6670958B1 (en) | 2000-05-26 | 2003-12-30 | Ati International, Srl | Method and apparatus for routing data to multiple graphics devices |
US6728820B1 (en) | 2000-05-26 | 2004-04-27 | Ati International Srl | Method of configuring, controlling, and accessing a bridge and apparatus therefor |
US6789154B1 (en) | 2000-05-26 | 2004-09-07 | Ati International, Srl | Apparatus and method for transmitting data |
US6662257B1 (en) | 2000-05-26 | 2003-12-09 | Ati International Srl | Multiple device bridge apparatus and method thereof |
US6532013B1 (en) | 2000-05-31 | 2003-03-11 | Nvidia Corporation | System, method and article of manufacture for pixel shaders for programmable shading |
US6593923B1 (en) | 2000-05-31 | 2003-07-15 | Nvidia Corporation | System, method and article of manufacture for shadow mapping |
US6664963B1 (en) | 2000-05-31 | 2003-12-16 | Nvidia Corporation | System, method and computer program product for programmable shading using pixel shaders |
US6690372B2 (en) | 2000-05-31 | 2004-02-10 | Nvidia Corporation | System, method and article of manufacture for shadow mapping |
US6724394B1 (en) | 2000-05-31 | 2004-04-20 | Nvidia Corporation | Programmable pixel shading architecture |
US6801202B2 (en) | 2000-06-29 | 2004-10-05 | Sun Microsystems, Inc. | Graphics system configured to parallel-process graphics data using multiple pipelines |
US7405734B2 (en) | 2000-07-18 | 2008-07-29 | Silicon Graphics, Inc. | Method and system for presenting three-dimensional computer graphics images using multiple graphics processing units |
US6959110B1 (en) | 2000-08-17 | 2005-10-25 | Nvidia Corporation | Multi-mode texture compression algorithm |
US7116331B1 (en) | 2000-08-23 | 2006-10-03 | Intel Corporation | Memory controller hub interface |
US6842180B1 (en) | 2000-09-20 | 2005-01-11 | Intel Corporation | Opportunistic sharing of graphics resources to enhance CPU performance in an integrated microprocessor |
US6532525B1 (en) | 2000-09-29 | 2003-03-11 | Ati Technologies, Inc. | Method and apparatus for accessing memory |
US6502173B1 (en) | 2000-09-29 | 2002-12-31 | Ati Technologies, Inc. | System for accessing memory and method therefore |
US6828980B1 (en) | 2000-10-02 | 2004-12-07 | Nvidia Corporation | System, method and computer program product for z-texture mapping |
US6731298B1 (en) | 2000-10-02 | 2004-05-04 | Nvidia Corporation | System, method and article of manufacture for z-texture mapping |
JP3580789B2 (ja) | 2000-10-10 | 2004-10-27 | 株式会社ソニー・コンピュータエンタテインメント | データ通信システム及び方法、コンピュータプログラム、記録媒体 |
US6961057B1 (en) | 2000-10-12 | 2005-11-01 | Nvidia Corporation | Method and apparatus for managing and accessing depth data in a computer graphics system |
US6362997B1 (en) | 2000-10-16 | 2002-03-26 | Nvidia | Memory system for use on a circuit board in which the number of loads are minimized |
US6636212B1 (en) | 2000-11-14 | 2003-10-21 | Nvidia Corporation | Method and apparatus for determining visibility of groups of pixels |
US6778181B1 (en) | 2000-12-07 | 2004-08-17 | Nvidia Corporation | Graphics processing system having a virtual texturing array |
US7027972B1 (en) | 2001-01-24 | 2006-04-11 | Ati Technologies, Inc. | System for collecting and analyzing graphics data and method thereof |
US7358974B2 (en) | 2001-01-29 | 2008-04-15 | Silicon Graphics, Inc. | Method and system for minimizing an amount of data needed to test data against subarea boundaries in spatially composited digital video |
US6888580B2 (en) | 2001-02-27 | 2005-05-03 | Ati Technologies Inc. | Integrated single and dual television tuner having improved fine tuning |
US7130316B2 (en) | 2001-04-11 | 2006-10-31 | Ati Technologies, Inc. | System for frame based audio synchronization and method thereof |
US6542971B1 (en) | 2001-04-23 | 2003-04-01 | Nvidia Corporation | Memory access system and method employing an auxiliary buffer |
US6664960B2 (en) | 2001-05-10 | 2003-12-16 | Ati Technologies Inc. | Apparatus for processing non-planar video graphics primitives and associated method of operation |
US6700583B2 (en) | 2001-05-14 | 2004-03-02 | Ati Technologies, Inc. | Configurable buffer for multipass applications |
WO2002101497A2 (en) | 2001-06-08 | 2002-12-19 | Nvidia Corporation | System, method and computer program product for programmable fragment processing in a graphics pipeline |
US6894687B1 (en) | 2001-06-08 | 2005-05-17 | Nvidia Corporation | System, method and computer program product for vertex attribute aliasing in a graphics pipeline |
US6697064B1 (en) | 2001-06-08 | 2004-02-24 | Nvidia Corporation | System, method and computer program product for matrix tracking during vertex processing in a graphics pipeline |
US6731282B2 (en) * | 2001-06-19 | 2004-05-04 | Intel Corporation | System and method for parallel rendering of images |
JP2003030641A (ja) | 2001-07-19 | 2003-01-31 | Nec System Technologies Ltd | 描画装置とその並列描画方法、及び並列描画プログラム |
US7253818B2 (en) | 2001-08-07 | 2007-08-07 | Ati Technologies, Inc. | System for testing multiple devices on a single system and method thereof |
US6828987B2 (en) | 2001-08-07 | 2004-12-07 | Ati Technologies, Inc. | Method and apparatus for processing video and graphics data |
US6778189B1 (en) | 2001-08-24 | 2004-08-17 | Nvidia Corporation | Two-sided stencil testing system and method |
US6744433B1 (en) | 2001-08-31 | 2004-06-01 | Nvidia Corporation | System and method for using and collecting information from a plurality of depth layers |
US6989840B1 (en) | 2001-08-31 | 2006-01-24 | Nvidia Corporation | Order-independent transparency rendering system and method |
US6704025B1 (en) | 2001-08-31 | 2004-03-09 | Nvidia Corporation | System and method for dual-depth shadow-mapping |
US6947047B1 (en) | 2001-09-20 | 2005-09-20 | Nvidia Corporation | Method and system for programmable pipelined graphics processing with branching instructions |
US6938176B1 (en) | 2001-10-05 | 2005-08-30 | Nvidia Corporation | Method and apparatus for power management of graphics processors and subsystems that allow the subsystems to respond to accesses when subsystems are idle |
US7091971B2 (en) | 2001-10-29 | 2006-08-15 | Ati Technologies, Inc. | System, method, and apparatus for multi-level hierarchical Z buffering |
US6999076B2 (en) | 2001-10-29 | 2006-02-14 | Ati Technologies, Inc. | System, method, and apparatus for early culling |
US6677953B1 (en) | 2001-11-08 | 2004-01-13 | Nvidia Corporation | Hardware viewport system and method for use in a graphics pipeline |
US20030117971A1 (en) | 2001-12-21 | 2003-06-26 | Celoxica Ltd. | System, method, and article of manufacture for profiling an executable hardware model using calls to profiling functions |
US6683614B2 (en) | 2001-12-21 | 2004-01-27 | Hewlett-Packard Development Company, L.P. | System and method for automatically configuring graphics pipelines by tracking a region of interest in a computer graphical display system |
US7269125B2 (en) | 2001-12-26 | 2007-09-11 | Xm Satellite Radio, Inc. | Method and apparatus for timing recovery in an OFDM system |
US7012610B2 (en) | 2002-01-04 | 2006-03-14 | Ati Technologies, Inc. | Portable device for providing dual display and method thereof |
US6774895B1 (en) | 2002-02-01 | 2004-08-10 | Nvidia Corporation | System and method for depth clamping in a hardware graphics pipeline |
US6829689B1 (en) | 2002-02-12 | 2004-12-07 | Nvidia Corporation | Method and system for memory access arbitration for minimizing read/write turnaround penalties |
US6947865B1 (en) | 2002-02-15 | 2005-09-20 | Nvidia Corporation | Method and system for dynamic power supply voltage adjustment for a semiconductor integrated circuit device |
US6933943B2 (en) | 2002-02-27 | 2005-08-23 | Hewlett-Packard Development Company, L.P. | Distributed resource architecture and system |
US6700580B2 (en) * | 2002-03-01 | 2004-03-02 | Hewlett-Packard Development Company, L.P. | System and method utilizing multiple pipelines to render graphical data |
US6853380B2 (en) * | 2002-03-04 | 2005-02-08 | Hewlett-Packard Development Company, L.P. | Graphical display system and method |
US20030171907A1 (en) | 2002-03-06 | 2003-09-11 | Shay Gal-On | Methods and Apparatus for Optimizing Applications on Configurable Processors |
US6919896B2 (en) * | 2002-03-11 | 2005-07-19 | Sony Computer Entertainment Inc. | System and method of optimizing graphics processing |
US7009605B2 (en) | 2002-03-20 | 2006-03-07 | Nvidia Corporation | System, method and computer program product for generating a shader program |
CA2480081C (en) * | 2002-03-22 | 2007-06-19 | Michael F. Deering | Scalable high performance 3d graphics |
US20030212735A1 (en) | 2002-05-13 | 2003-11-13 | Nvidia Corporation | Method and apparatus for providing an integrated network of processors |
US20040153778A1 (en) | 2002-06-12 | 2004-08-05 | Ati Technologies, Inc. | Method, system and software for configuring a graphics processing communication mode |
US6980209B1 (en) | 2002-06-14 | 2005-12-27 | Nvidia Corporation | Method and system for scalable, dataflow-based, programmable processing of graphics data |
US6812927B1 (en) | 2002-06-18 | 2004-11-02 | Nvidia Corporation | System and method for avoiding depth clears using a stencil buffer |
US6876362B1 (en) | 2002-07-10 | 2005-04-05 | Nvidia Corporation | Omnidirectional shadow texture mapping |
US6797998B2 (en) | 2002-07-16 | 2004-09-28 | Nvidia Corporation | Multi-configuration GPU interface device |
US6954204B2 (en) | 2002-07-18 | 2005-10-11 | Nvidia Corporation | Programmable graphics system and method using flexible, high-precision data formats |
US6825843B2 (en) | 2002-07-18 | 2004-11-30 | Nvidia Corporation | Method and apparatus for loop and branch instructions in a programmable graphics pipeline |
US6864893B2 (en) | 2002-07-19 | 2005-03-08 | Nvidia Corporation | Method and apparatus for modifying depth values using pixel programs |
US6952206B1 (en) | 2002-08-12 | 2005-10-04 | Nvidia Corporation | Graphics application program interface system and method for accelerating graphics processing |
US7112884B2 (en) | 2002-08-23 | 2006-09-26 | Ati Technologies, Inc. | Integrated circuit having memory disposed thereon and method of making thereof |
US6779069B1 (en) | 2002-09-04 | 2004-08-17 | Nvidia Corporation | Computer system with source-synchronous digital link |
US7324547B1 (en) | 2002-12-13 | 2008-01-29 | Nvidia Corporation | Internet protocol (IP) router residing in a processor chipset |
US6885376B2 (en) | 2002-12-30 | 2005-04-26 | Silicon Graphics, Inc. | System, method, and computer program product for near-real time load balancing across multiple rendering pipelines |
JP2007528033A (ja) | 2003-01-28 | 2007-10-04 | ルシッド インフォメーション テクノロジー リミテッド | 結合判定メカニズムを用いて三次元グラフィックス画像をコンポジットするための方法およびシステム |
US7062272B2 (en) * | 2003-02-18 | 2006-06-13 | Qualcomm Incorporated | Method and apparatus to track count of broadcast content recipients in a wireless telephone network |
US7145565B2 (en) | 2003-02-27 | 2006-12-05 | Nvidia Corporation | Depth bounds testing |
US6911983B2 (en) | 2003-03-12 | 2005-06-28 | Nvidia Corporation | Double-buffering of pixel data using copy-on-write semantics |
US7129909B1 (en) | 2003-04-09 | 2006-10-31 | Nvidia Corporation | Method and system using compressed display mode list |
US6940515B1 (en) | 2003-04-10 | 2005-09-06 | Nvidia Corporation | User programmable primitive engine |
US6900810B1 (en) | 2003-04-10 | 2005-05-31 | Nvidia Corporation | User programmable geometry engine |
US7120816B2 (en) | 2003-04-17 | 2006-10-10 | Nvidia Corporation | Method for testing synchronization and connection status of a graphics processing unit module |
US7483031B2 (en) | 2003-04-17 | 2009-01-27 | Nvidia Corporation | Method for synchronizing graphics processing units |
US7068278B1 (en) | 2003-04-17 | 2006-06-27 | Nvidia Corporation | Synchronized graphics processing units |
US7038678B2 (en) | 2003-05-21 | 2006-05-02 | Nvidia Corporation | Dependent texture shadow antialiasing |
US7038685B1 (en) | 2003-06-30 | 2006-05-02 | Nvidia Corporation | Programmable graphics processor for multithreaded execution of programs |
US7119808B2 (en) | 2003-07-15 | 2006-10-10 | Alienware Labs Corp. | Multiple parallel processor computer graphics system |
US6995767B1 (en) | 2003-07-31 | 2006-02-07 | Nvidia Corporation | Trilinear optimization for texture filtering |
US7015915B1 (en) | 2003-08-12 | 2006-03-21 | Nvidia Corporation | Programming multiple chips from a command buffer |
US7525547B1 (en) | 2003-08-12 | 2009-04-28 | Nvidia Corporation | Programming multiple chips from a command buffer to process multiple images |
US6956579B1 (en) | 2003-08-18 | 2005-10-18 | Nvidia Corporation | Private addressing in a multi-processor graphics processing system |
US7075541B2 (en) | 2003-08-18 | 2006-07-11 | Nvidia Corporation | Adaptive load balancing in a multi-processor graphics processing system |
US7388581B1 (en) | 2003-08-28 | 2008-06-17 | Nvidia Corporation | Asynchronous conditional graphics rendering |
US8250412B2 (en) | 2003-09-26 | 2012-08-21 | Ati Technologies Ulc | Method and apparatus for monitoring and resetting a co-processor |
US7782325B2 (en) * | 2003-10-22 | 2010-08-24 | Alienware Labs Corporation | Motherboard for supporting multiple graphics cards |
US8274517B2 (en) | 2003-11-14 | 2012-09-25 | Microsoft Corporation | Systems and methods for downloading algorithmic elements to a coprocessor and corresponding techniques |
US7961194B2 (en) * | 2003-11-19 | 2011-06-14 | Lucid Information Technology, Ltd. | Method of controlling in real time the switching of modes of parallel operation of a multi-mode parallel graphics processing subsystem embodied within a host computing system |
US8085273B2 (en) | 2003-11-19 | 2011-12-27 | Lucid Information Technology, Ltd | Multi-mode parallel graphics rendering system employing real-time automatic scene profiling and mode control |
CA2546427A1 (en) | 2003-11-19 | 2005-06-02 | Reuven Bakalash | Method and system for multiple 3-d graphic pipeline over a pc bus |
US20080074431A1 (en) | 2003-11-19 | 2008-03-27 | Reuven Bakalash | Computing system capable of parallelizing the operation of multiple graphics processing units (GPUS) supported on external graphics cards |
US7015914B1 (en) | 2003-12-10 | 2006-03-21 | Nvidia Corporation | Multiple data buffers for processing graphics data |
US7053901B2 (en) | 2003-12-11 | 2006-05-30 | Nvidia Corporation | System and method for accelerating a special purpose processor |
US7248261B1 (en) | 2003-12-15 | 2007-07-24 | Nvidia Corporation | Method and apparatus to accelerate rendering of shadow effects for computer-generated images |
JP3879002B2 (ja) | 2003-12-26 | 2007-02-07 | 国立大学法人宇都宮大学 | 自己最適化演算装置 |
US6975325B2 (en) | 2004-01-23 | 2005-12-13 | Ati Technologies Inc. | Method and apparatus for graphics processing using state and shader management |
US7259606B2 (en) | 2004-01-27 | 2007-08-21 | Nvidia Corporation | Data sampling clock edge placement training for high speed GPU-memory interface |
US7483034B2 (en) | 2004-02-25 | 2009-01-27 | Siemens Medical Solutions Usa, Inc. | System and method for GPU-based 3D nonrigid registration |
US7289125B2 (en) | 2004-02-27 | 2007-10-30 | Nvidia Corporation | Graphics device clustering with PCI-express |
US7027062B2 (en) | 2004-02-27 | 2006-04-11 | Nvidia Corporation | Register based queuing for texture requests |
US20050195186A1 (en) | 2004-03-02 | 2005-09-08 | Ati Technologies Inc. | Method and apparatus for object based visibility culling |
US20050275760A1 (en) | 2004-03-02 | 2005-12-15 | Nvidia Corporation | Modifying a rasterized surface, such as by trimming |
US7978194B2 (en) | 2004-03-02 | 2011-07-12 | Ati Technologies Ulc | Method and apparatus for hierarchical Z buffering and stenciling |
US7315912B2 (en) | 2004-04-01 | 2008-01-01 | Nvidia Corporation | Deadlock avoidance in a bus fabric |
US7336284B2 (en) | 2004-04-08 | 2008-02-26 | Ati Technologies Inc. | Two level cache memory architecture |
US7265759B2 (en) | 2004-04-09 | 2007-09-04 | Nvidia Corporation | Field changeable rendering system for a computing device |
US6985152B2 (en) | 2004-04-23 | 2006-01-10 | Nvidia Corporation | Point-to-point bus bridging without a bridge controller |
US20050237329A1 (en) | 2004-04-27 | 2005-10-27 | Nvidia Corporation | GPU rendering to system memory |
US7738045B2 (en) | 2004-05-03 | 2010-06-15 | Broadcom Corporation | Film-mode (3:2/2:2 Pulldown) detector, method and video device |
US7079156B1 (en) | 2004-05-14 | 2006-07-18 | Nvidia Corporation | Method and system for implementing multiple high precision and low precision interpolators for a graphics pipeline |
US7426724B2 (en) | 2004-07-02 | 2008-09-16 | Nvidia Corporation | Optimized chaining of vertex and fragment programs |
US7218291B2 (en) | 2004-09-13 | 2007-05-15 | Nvidia Corporation | Increased scalability in the fragment shading pipeline |
JP4450853B2 (ja) | 2004-09-16 | 2010-04-14 | エヌヴィディア コーポレイション | 負荷分散 |
US7721118B1 (en) * | 2004-09-27 | 2010-05-18 | Nvidia Corporation | Optimizing power and performance for multi-processor graphics processing |
US7571296B2 (en) | 2004-11-11 | 2009-08-04 | Nvidia Corporation | Memory controller-adaptive 1T/2T timing control |
US7598958B1 (en) | 2004-11-17 | 2009-10-06 | Nvidia Corporation | Multi-chip graphics processing unit apparatus, system, and method |
US7477256B1 (en) | 2004-11-17 | 2009-01-13 | Nvidia Corporation | Connecting graphics adapters for scalable performance |
US8066515B2 (en) | 2004-11-17 | 2011-11-29 | Nvidia Corporation | Multiple graphics adapter connection systems |
US7275123B2 (en) | 2004-12-06 | 2007-09-25 | Nvidia Corporation | Method and apparatus for providing peer-to-peer data transfer within a computing environment |
US7451259B2 (en) | 2004-12-06 | 2008-11-11 | Nvidia Corporation | Method and apparatus for providing peer-to-peer data transfer within a computing environment |
US7545380B1 (en) * | 2004-12-16 | 2009-06-09 | Nvidia Corporation | Sequencing of displayed images for alternate frame rendering in a multi-processor graphics system |
US7372465B1 (en) | 2004-12-17 | 2008-05-13 | Nvidia Corporation | Scalable graphics processing for remote display |
US20060156399A1 (en) | 2004-12-30 | 2006-07-13 | Parmar Pankaj N | System and method for implementing network security using a sequestered partition |
JP2008538620A (ja) | 2005-01-25 | 2008-10-30 | ルーシッド インフォメイション テクノロジー リミテッド | モノリシック構成のシリコン・チップ上に多数のグラフィックス・コアを用いるグラフィック処理及び表示システム |
US7924281B2 (en) | 2005-03-09 | 2011-04-12 | Ati Technologies Ulc | System and method for determining illumination of a pixel by shadow planes |
US7796095B2 (en) | 2005-03-18 | 2010-09-14 | Ati Technologies Ulc | Display specific image processing in an integrated circuit |
US7568056B2 (en) | 2005-03-28 | 2009-07-28 | Nvidia Corporation | Host bus adapter that interfaces with host computer bus to multiple types of storage devices |
US7681187B2 (en) | 2005-03-31 | 2010-03-16 | Nvidia Corporation | Method and apparatus for register allocation in presence of hardware constraints |
US7616207B1 (en) | 2005-04-25 | 2009-11-10 | Nvidia Corporation | Graphics processing system including at least three bus devices |
US7545101B2 (en) * | 2005-05-05 | 2009-06-09 | Leviton Manufacturing Co., Inc. | Multi-zone closed loop daylight harvesting having at least one light sensor |
US20080143731A1 (en) | 2005-05-24 | 2008-06-19 | Jeffrey Cheng | Video rendering across a high speed peripheral interconnect bus |
US7817155B2 (en) | 2005-05-24 | 2010-10-19 | Ati Technologies Inc. | Master/slave graphics adapter arrangement |
US7539801B2 (en) | 2005-05-27 | 2009-05-26 | Ati Technologies Ulc | Computing device with flexibly configurable expansion slots, and method of operation |
US20060282604A1 (en) | 2005-05-27 | 2006-12-14 | Ati Technologies, Inc. | Methods and apparatus for processing graphics data using multiple processing circuits |
US7613346B2 (en) | 2005-05-27 | 2009-11-03 | Ati Technologies, Inc. | Compositing in multiple video processing unit (VPU) systems |
US7325086B2 (en) | 2005-12-15 | 2008-01-29 | Via Technologies, Inc. | Method and system for multiple GPU support |
US7728841B1 (en) | 2005-12-19 | 2010-06-01 | Nvidia Corporation | Coherent shader output for multiple targets |
US7768517B2 (en) | 2006-02-21 | 2010-08-03 | Nvidia Corporation | Asymmetric multi-GPU processing |
US8284204B2 (en) | 2006-06-30 | 2012-10-09 | Nokia Corporation | Apparatus, method and a computer program product for providing a unified graphics pipeline for stereoscopic rendering |
-
2004
- 2004-11-19 CA CA002546427A patent/CA2546427A1/en not_active Abandoned
- 2004-11-19 JP JP2006540774A patent/JP2007512613A/ja active Pending
- 2004-11-19 WO PCT/IL2004/001069 patent/WO2005050557A2/en active Application Filing
- 2004-11-19 EP EP04799376A patent/EP1687732A4/en not_active Withdrawn
- 2004-11-19 US US10/579,682 patent/US7808499B2/en active Active
- 2004-11-19 CN CNA2004800343078A patent/CN1890660A/zh active Pending
-
2007
- 2007-10-23 US US11/977,164 patent/US7800619B2/en active Active
- 2007-10-23 US US11/977,155 patent/US8629877B2/en active Active
- 2007-10-23 US US11/977,172 patent/US7800610B2/en active Active
- 2007-10-23 US US11/977,178 patent/US7800611B2/en active Active
- 2007-10-23 US US11/977,161 patent/US7796129B2/en active Active
- 2007-10-23 US US11/977,177 patent/US7796130B2/en active Active
-
2011
- 2011-05-05 US US13/101,438 patent/US20110279462A1/en not_active Abandoned
-
2014
- 2014-01-13 US US14/153,105 patent/US9405586B2/en active Active
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101639930B (zh) * | 2008-08-01 | 2012-07-04 | 辉达公司 | 一连串绘图处理器处理绘图数据的方法及系统 |
US9977756B2 (en) | 2008-10-03 | 2018-05-22 | Advanced Micro Devices, Inc. | Internal bus architecture and method in multi-processor systems |
CN102227709B (zh) * | 2008-10-03 | 2015-05-20 | 先进微装置公司 | 多处理器架构与方法 |
CN101719262B (zh) * | 2008-11-06 | 2013-07-24 | 威盛电子股份有限公司 | 绘图处理单元以及元命令处理系统 |
CN102209191A (zh) * | 2010-03-30 | 2011-10-05 | 联发科技股份有限公司 | 执行图像信号处理的方法及用于执行图像信号处理的装置 |
CN102289782A (zh) * | 2010-06-18 | 2011-12-21 | 索尼公司 | 信息处理装置、用于控制信息处理装置的方法、和程序 |
CN102868601A (zh) * | 2012-09-24 | 2013-01-09 | 上海天玑科技股份有限公司 | 一种有关基于图形配置数据库业务网络拓扑的路由系统 |
CN102868601B (zh) * | 2012-09-24 | 2015-05-13 | 上海天玑科技股份有限公司 | 一种有关基于图形配置数据库业务网络拓扑的路由系统 |
CN106415479B (zh) * | 2014-06-19 | 2018-08-21 | 苹果公司 | 多个显示管线驱动被划分的显示器 |
CN106415479A (zh) * | 2014-06-19 | 2017-02-15 | 苹果公司 | 多个显示管线驱动被划分的显示器 |
CN106326186A (zh) * | 2015-06-29 | 2017-01-11 | 深圳市中兴微电子技术有限公司 | 一种片上系统、图形绘制方法、中间层及嵌入式设备 |
CN106326186B (zh) * | 2015-06-29 | 2019-04-30 | 深圳市中兴微电子技术有限公司 | 一种片上系统、图形绘制方法、中间层及嵌入式设备 |
CN109408456A (zh) * | 2018-12-07 | 2019-03-01 | 中国地质大学(武汉) | 一种基于s905d芯片与stm32芯片协同工作硬件电路 |
CN109408456B (zh) * | 2018-12-07 | 2023-08-29 | 中国地质大学(武汉) | 一种基于s905d芯片与stm32芯片协同工作硬件电路 |
CN111045623A (zh) * | 2019-11-21 | 2020-04-21 | 中国航空工业集团公司西安航空计算技术研究所 | 一种多gpu拼接环境下图形命令的处理方法 |
CN111045623B (zh) * | 2019-11-21 | 2023-06-13 | 中国航空工业集团公司西安航空计算技术研究所 | 一种多gpu拼接环境下图形命令的处理方法 |
CN112057851A (zh) * | 2020-09-02 | 2020-12-11 | 北京蔚领时代科技有限公司 | 一种基于多显卡的单帧画面实时渲染方法 |
CN113521735A (zh) * | 2020-09-02 | 2021-10-22 | 北京蔚领时代科技有限公司 | 一种基于多gpu的单帧画面实时渲染方法 |
WO2022048097A1 (zh) * | 2020-09-02 | 2022-03-10 | 北京蔚领时代科技有限公司 | 一种基于多显卡的单帧画面实时渲染方法 |
CN112037117A (zh) * | 2020-09-07 | 2020-12-04 | 西安芯瞳半导体技术有限公司 | 用于运行高性能gpu应用的方法、装置及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20080238917A1 (en) | 2008-10-02 |
EP1687732A4 (en) | 2008-11-19 |
EP1687732A2 (en) | 2006-08-09 |
US20080165184A1 (en) | 2008-07-10 |
WO2005050557A2 (en) | 2005-06-02 |
US7800611B2 (en) | 2010-09-21 |
WO2005050557A3 (en) | 2005-09-01 |
US7796129B2 (en) | 2010-09-14 |
US8629877B2 (en) | 2014-01-14 |
US20080136825A1 (en) | 2008-06-12 |
JP2007512613A (ja) | 2007-05-17 |
CA2546427A1 (en) | 2005-06-02 |
US7800619B2 (en) | 2010-09-21 |
US20110279462A1 (en) | 2011-11-17 |
US9405586B2 (en) | 2016-08-02 |
US7800610B2 (en) | 2010-09-21 |
US20140125682A1 (en) | 2014-05-08 |
US20080165197A1 (en) | 2008-07-10 |
US20070279411A1 (en) | 2007-12-06 |
US7796130B2 (en) | 2010-09-14 |
US20080165198A1 (en) | 2008-07-10 |
US7808499B2 (en) | 2010-10-05 |
US20080165196A1 (en) | 2008-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1890660A (zh) | Pc总线上的多重三维图形管线的方法及系统 | |
CN1039957C (zh) | 视频插入处理系统 | |
CN1317682C (zh) | 优化图形处理的系统和方法 | |
WO2021247199A1 (en) | Rendering images on displays | |
US7812845B2 (en) | PC-based computing system employing a silicon chip implementing parallelized GPU-driven pipelines cores supporting multiple modes of parallelization dynamically controlled while running a graphics application | |
CN1267884C (zh) | 图像数据的非对称超级采样光栅化的方法和系统 | |
CN1691068A (zh) | 用于重构三维图形数据的装置和方法 | |
CN1255765C (zh) | 数据通信系统和方法 | |
CN1893564A (zh) | 图像特效设备、图形处理器和记录介质 | |
CN1305155A (zh) | 图像显示系统、主机设备、图像显示设备以及图像显示方法 | |
CN1455332A (zh) | 混合光栅内容文件 | |
CN1932885A (zh) | 三维图像处理 | |
CN1122945C (zh) | 图象处理器及图象处理方法 | |
CN1181666C (zh) | 彩色图形处理器 | |
CN1750040A (zh) | 三维图像的生成方法及其显示系统 | |
CN1147117A (zh) | 图像处理器和应用该处理器的数据处理系统 | |
CN1670766A (zh) | 图像的缩放方法 | |
CN1784695A (zh) | 动态活动体的视觉仿真 | |
Schiewe | Applied Mobile Visualization and Interaction | |
EP4162483A1 (en) | Rendering images on displays |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned | ||
C20 | Patent right or utility model deemed to be abandoned or is abandoned |