PC总线上的多重三维图形管线的方法及系统技术方案

技术编号:2846573 阅读:204 留言:0更新日期:2012-04-11 18:40
一种用于改善图像处理并行性的方法和系统,其使用一个或多个并行模式,其中图像通过一个或多个图形处理单元(GPUs)(130)显示在至少一个计算机屏幕上。提供应用软件(120)用于发出图形命令,提供图形库(122)用于存储用来执行图形命令的数据。提供软件集线器驱动(123)用于控制硬件集线器(110),用于对将生成图像帧的数据流进行实时分析,用于确定各个GPU的并行模式,以及用于将数据流或其部分转送到各个GPU,提供GPU驱动(124)用于使得GPU与图形库相互作用,并提供I/O模块(160)用于软件模块和硬件集线器之间的相互连接。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及一种三维的(three-dimensional)多重图形处理方法及系统。特别涉及一种基于时间分割、图像分割和对象分割三种并行方法的统一框架,通过图形处理单元(GPU)改善图像处理并行性的方法及系统。定义、首字母缩拼词和缩写词本说明书通篇采用下列定义GPUGPU(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)显示在至少一个计算机屏幕上,该系统包括:a.一个或多个应用软件,其用于发出图形命令;b.一个或多个图形库,其用于存 储用来执行图形命令的数据;c.一个或多个软件集线器驱动,其用于控制硬件集线器,使得计算机操作系统和图形库相互作用,以及用于对将生成图像帧的数据流进行实时分析,用于确定各个GPU的并行模式,以及用于将数据流或其部分转送到各个GPU;   d.一个或多个GPU驱动,其用于使得GPU与图形库相互作用;及e.至少一个I/O模块,其用于软件模块和硬件集线器之间的相互连接,其中,所述硬件集线器将对于各帧的根据图形命令以及数据流或其部分在图像中的相对复杂性在GPU 之间分配图形命令以及数据流或其部分,所述复杂性由所述软件集线器驱动定义;以及使用获取自至少一个GPU的输出合成用于显示的图形输出,同时在任何需要的时候,可对于所述各帧的并行模式进行交替。

【技术特征摘要】
【国外来华专利技术】US 2003-11-19 60/523,084;US 2003-11-19 60/523,1021.一种用于改善图像处理的并行性的系统,其使用一个或多个并行模式,其中所述图像通过一个或多个图形处理单元(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.提供一个或多个软件集线器驱动,用于控制硬件集线器,用于使得所述计算机操作系...

【专利技术属性】
技术研发人员:鲁文巴卡拉西奥菲尔列梅兹吉格巴奥埃菲福格尔阿米尔沙哈姆
申请(专利权)人:路西德信息技术有限公司
类型:发明
国别省市:IL[以色列]

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1