CN1890660A - Pc总线上的多重三维图形管线的方法及系统 - Google Patents

Pc总线上的多重三维图形管线的方法及系统 Download PDF

Info

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
Application number
CNA2004800343078A
Other languages
English (en)
Inventor
鲁文·巴卡拉西
奥菲尔·列梅兹
吉格·巴奥
埃菲·福格尔
阿米尔·沙哈姆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lucid Information Technology Ltd
Original Assignee
Lucid Information Technology Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Lucid Information Technology Ltd filed Critical Lucid Information Technology Ltd
Publication of CN1890660A publication Critical patent/CN1890660A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/505Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control 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/363Graphics controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1423Digital 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/1438Digital 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing 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

PC总线上的多重三维图形管线的方法及系统
技术领域
本发明涉及一种三维的(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所述的方法,其中所述并行性基于对象分割、图像分割、时间分割模式或者它们的任意组合。
CNA2004800343078A 2003-11-19 2004-11-19 Pc总线上的多重三维图形管线的方法及系统 Pending CN1890660A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (20)

* Cited by examiner, † Cited by third party
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