CN115509764A - 一种实时渲染的多gpu并行调度方法、装置及存储器 - Google Patents
一种实时渲染的多gpu并行调度方法、装置及存储器 Download PDFInfo
- Publication number
- CN115509764A CN115509764A CN202211397246.8A CN202211397246A CN115509764A CN 115509764 A CN115509764 A CN 115509764A CN 202211397246 A CN202211397246 A CN 202211397246A CN 115509764 A CN115509764 A CN 115509764A
- Authority
- CN
- China
- Prior art keywords
- rendering
- task
- gpu
- rendered
- constructed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
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
-
- 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/5061—Partitioning or combining of resources
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Image Generation (AREA)
Abstract
本发明公开了一种实时渲染的多GPU并行调度方法、装置及存储器,其包括如下步骤:S1、获取渲染任务,并对渲染任务中的待渲染场景模型文件中的待渲染场景资产进行模型变换以及视口变换以确定各个物体资产的输出像素区域,并根据所述输出像素区域确定待渲染任务的渲染任务量;S2、获取GPU的渲染能力向量;S3、根据所述GPU渲染能力向量以及待渲染任务的渲染任务量对渲染任务进行切分,随后任务发送到对应GPU进行渲染。本发明能够根据渲染区域之间的渲染任务量差异,进行合适的任务切分从而提升并行效率减少各个GPU之间的输出时间差。
Description
技术领域
本发明涉及图形图像处理技术领域,具体来说,涉及一种实时渲染的多GPU并行调度方法、装置及存储器。
背景技术
实时渲染意在利用计算机生成视觉效果,它是计算机图形学中交互性最高的领域。例如图像出现在屏幕上,观众采取行动或做出反应,这种反馈会影响接下来生成的内容。这种反应和渲染的循环以足够快的速度发生,以至于观看者看不到单个图像,而是沉浸在动态过程中。但复杂场景实时渲染对算力的要求较高,因此通过多卡并行渲染来提升渲染效率是很有必要的,但是复杂场景是由若干复杂资产或区域组成,即场景中的每个区域对算力与显存的要求不同,因此单纯并行分配任务无法充分利用多卡资源,如何实现多卡调度来进行并行渲染并保证所有显卡能够同步输出是亟待解决的难题。
传统多卡渲染调度系统(deadline,shotgun)在调度多卡算力的时候仅仅只是单纯的将任务分配到多个同构图形处理器GPU(graphics processing unit)上进行渲染未考虑渲染任务之间的差异性,在离线渲染中会造成分配渲染任务较小的GPU先一步完成渲染任务,处于空载状态从而降低了并行的效率。在实时渲染场景中则会导致多卡之间输出不同步,造成画面不同步的情况。
发明内容
针对相关技术中的上述技术问题,本发明提出一种实时渲染的多GPU并行调度方法,包括如下步骤:
S1、获取渲染任务,并对渲染任务中的待渲染场景模型文件中的待渲染场景资产
进行模型变换以及视口变换以确定各个物体资产的输出像素区域,并根据所述输出像素区
域确定待渲染任务的渲染任务量;其中分别代表构建几何体、构建粒子数、构建光照数
据、纹理编码数;
S2、获取GPU的渲染能力向量,所述GPU的渲染能力向量通过单位时间内所构建的几何体数目、单位时间内所编码的纹理、单位时间内所构建的光照数据、单位时间内所构建的粒子数目进行量化;
S3、根据所述GPU渲染能力向量以及待渲染任务的渲染任务量对渲染任务进行切分,随后任务发送到对应GPU进行渲染。
具体的:所述步骤1具体为:步骤S10、扫描场景文件确定场景内的资产数目,并初始化资产链表数组L,其长度为N_a表示资产数目;
S12、对L[i]内的资产确定其模型坐标系空间与输出屏幕空间之间的映射关系,然后对该资产执行模型变换,以确定其在二维输出屏幕空间的像素区域并将其写入资产链表数组L[i];
S13、令i=i+1;
S14、判断i是否小于N_a,若是,则返回S13,若否,则执行S15;
S15、对每个输出像素计算其深度信息,以确定物体遮挡关系,在物体有重叠的像素位置,保留深度信息最小的资产剔除其余物体模型,以此为基准对资产输出像素区域进行更新;
具体计算方法如下:
S161、遍历链表数组L确定所输入方块区域所覆盖的资产数目;
S162、将所覆盖的资产的渲染任务向量叠加。
具体的:所述步骤S3中“根据所述GPU渲染能力向量以及待渲染任务的渲染任务量
对渲染任务进行切分”具体为:根据待渲染任务的渲染任务量
以及GPU数目num对所述待渲染任务进行划分建立N叉树,其中所述N叉树的叶子节点的渲染
任务量均小于一渲染任务量阈值向量;并遍历N叉树的叶结点,将叶结点所对应的区域分配
到相应的GPU进行渲染。
S32、对给定渲染区域进行N等分并计算所划分区域的渲染任务向量;
S33、对划分的渲染区域重复执行步骤32中的操作,直到划分区域渲染任务向量各个单元皆小于设定的任务阈值向量。
具体的:遍历N叉树的叶结点,将叶结点所对应的区域分配到相应的GPU进行渲染具体为:
其中和分别代表矩阵和的第i行向量,代表向量内积,代表矩阵所有单元之和,代表N叉树的叶结点总数,约束(1)保证每个划
分区域只会被分配到一块GPU,即各个划分区域不会被重复分配;约束(2)保证所有区域都
会被分配到某块GPU上;
具体的:还包括步骤S4:渲染主机接收所述GPU输出的渲染区域画面,并合并成为最终所需要的渲染结果。
第二方面,本发明的另一个实施例公开了一种实时渲染的多GPU并行调度装置,其包括如下单元:
渲染任务量获取单元,用于获取渲染任务,并对渲染任务中的待渲染场景模型文
件中的待渲染场景资产进行模型变换以及视口变换以确定各个物体资产的输出像素区域,
并根据所述输出像素区域确定待渲染任务的渲染任务量;
GPU渲染能力向量获取单元,用于获取GPU的渲染能力向量,所述GPU的渲染能力向量通过单位时间内所构建的几何体数目、单位时间内所编码的纹理、单位时间内所构建的光照数据、单位时间内所构建的粒子数目进行量化;
调度单元,用于根据所述GPU渲染能力向量以及待渲染任务的渲染任务量对渲染任务进行切分,随后任务发送到对应GPU进行渲染。
具体的:所述调度单元具体为:根据待渲染任务的渲染任务量以及GPU数目num对所述待渲染任务进行划分建立N叉树,其
中所述N叉树的叶子节点的渲染任务量均小于一渲染任务量阈值向量;并遍历N叉树的叶结
点,将叶结点所对应的区域分配到相应的GPU进行渲染。
第三方面,本发明的另一个实施例公开了一种非易失性存储器,所述存储器上存储有指令,所述指令被处理器执行时,用于实现上述的一种实时渲染的多GPU并行调度方法。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种实时渲染的多GPU并行调度方法流程图;
图2是本发明实施例提供的一种实时渲染的多GPU并行调度总体示意图;
图3是本发明实施例提供的链表数据结构示意图;
图4是本发明实施例提供的构建N叉树示意图;
图5是本发明实施例提供的一种实时渲染的多GPU并行调度装置示意图;
图6是本发明实施例提供的一种实时渲染的多GPU并行调度设备示意。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
参考图1以及图2,本实施例提供一种实时渲染的多GPU并行调度方法,其包括如下步骤:
S1,获取渲染任务,并对渲染任务中的待渲染场景模型文件中的待渲染场景资产
进行模型变换以及视口变换,确定各个物体资产的输出像素区域,并根据所述输出像素区
域确定待渲染任务的渲染任务量;其中分别代表构建几何体、构建粒子数、构建光照数据、
纹理编码数;
具体的,本实施例的一种实时渲染的多GPU并行度方法可以应用在一个GPU集群中,可以有一渲染控制主机来接收相应的待渲染场景模型文件,具体的渲染主机可以不进行渲染任务而仅进行渲染任务的调度工作,在另一个实施方式中渲染主机除进行渲染任务的调度工作外,也可以负责渲染任务。如渲染主机可以不具备GPU,从而仅进行渲染任务的调度工作,在另一个实施方式中渲染主机也可以具备GPU,但其不进行渲染工作,仅进行渲染任务的调度。
具体的,本实施例的渲染控制主机接收渲染任务,其中渲染任务中包含有一个待渲染场景模型文件,并且待渲染场景模型文件中包含有待渲染场景资产,本实施例的待渲染场景资产包括:待渲染场景资产包括纹理,粒子数目,几何模型,光源。
具体的,本实施例的渲染主机对待渲染场景资产进行模型变换以及视口变换,确定各个物体资产的输出像素区域;
具体的,本实施例的渲染主机可以从待渲染场景模型文件中获取待场景资产,并根据模型坐标系空间与输出屏幕空间之间的映射关系(如模型变换参数),然后对所述资产执行模型变换,以确定其在二维输出屏幕空间的像素区域。
具体的,本实施例根据屏幕空间的像素区域的包含的资产的数目来确定所述待渲
染任务的渲染任务量;其中待渲染任务的渲染任务量,其中分别代表渲
染方块区域右上角坐标以及左下角坐标,分别代表构建几何体、构建粒子数、构
建光照数据、纹理编码数。
本实施例使用渲染任务度量算子f来度量待渲染任务的渲染任务量,其度量方法
为,其中分别代表渲染方
块区域右上角坐标以及左下角坐标, 分别代表构建几何体、构建粒子数、构建
光照数据、纹理编码数。其渲染任务量为渲染区域内包含的几何体、构建粒子数、构建光照
数据、纹理编码数。
具体的,本实施例的渲染任务度量算子可以用来对整个待渲染场景模型文件确定相应的渲染任务量,也可以对待渲染区域来确定待渲染区域的渲染任务量,所述待渲染区域是指所述待渲染场景模型文件中一个待渲染的区域。一般的在本实施例的下文提及的在在建立N叉树时,树的叶子为一个渲染区域,对渲染区域的渲染任务量的计算也使用本实施例中的渲染任务度量算子f。
参考图3,具体的可分为以下步骤:
步骤S10、扫描场景文件确定场景内的资产数目,并初始化资产链表数组L,其长度为N_a表示资产数目;
本实施例的资产包括:纹理,粒子数目,几何模型,光源。
步骤12、对L[i]内的资产确定其模型坐标系空间与输出屏幕空间之间的映射关系,然后对该资产执行模型变换,以确定其在二维输出屏幕空间的像素区域并将其写入资产链表数组L[i];
步骤13、令i=i+1;
步骤14、判断i是否小于N_a,若是,则返回步骤13,若否,则执行步骤15;
步骤15、对每个输出像素计算其深度信息(Z-buffer),以确定物体遮挡关系,在物体有重叠的像素位置,保留深度信息最小的资产剔除其余物体模型,以此为基准对资产输出像素区域进行更新;
具体计算方法如下:
步骤161、遍历链表数组L确定所输入方块区域所覆盖的资产数目;
步骤162、将所覆盖的资产的渲染任务向量叠加;
S2,获取GPU的渲染能力向量,所述GPU的渲染能力向量通过单位时间内所构建的几何体数目、单位时间内所编码的纹理、单位时间内所构建的光照数据、单位时间内所构建的粒子数目进行量化;
本实施例对GPU渲染能力主要从以下四个维度进行量化:
单位时间内所构建的几何体数目;
单位时间内所编码的纹理;
单位时间内所构建的光照数据;
单位时间内所构建的粒子数目。
具体的,本实施例确定GPU的渲染能力向量具体为:
步骤20、构建合适的渲染场景测试文件,统计其所需要构建的粒子数目、光照数据、纹理编码数、几何体数据;
步骤21、对给定GPU记录渲染测试场景时在渲染管线中每个阶段所完成的时间(几何处理->纹理编码->构建光照->渲染粒子),其中代表几何处理时
间,代表纹理编码时间,代表构建光照时间,代表粒子渲染时间;
S3,根据所述GPU渲染能力向量以及待渲染任务的渲染任务量对渲染任务进行切分,随后任务发送到对应GPU进行渲染;
具体的,根据所述GPU渲染能力向量以及待渲染场景任务量算子对渲染任务进行切分还包括:根据渲染任务初始化任务划分方式建立N叉树;遍历N叉树的叶结点,将结点所对应的区域分配到相应的GPU进行渲染。
具体的,本实施例的N为4。
参考图4,根据渲染任务初始化任务划分方式建立N叉树具体为:
在一个实施方式中k为2。
步骤32、对给定渲染区域进行N等分并计算所划分区域的渲染任务向量;
步骤33、对划分的渲染区域重复执行步骤32中的操作,直到划分区域渲染任务向量各个单元皆小于设定的任务阈值向量。
具体的,遍历N叉树的叶结点,将叶结点所对应的区域分配到相应的GPU进行渲染具体为:
其中和分别代表矩阵和的第i行向量,代表向量内积,代表矩阵所有单元之和,代表N叉树的叶结点总数,约束(1)保证每个划
分区域只会被分配到一块GPU,即各个划分区域不会被重复分配;约束(2)保证所有区域都
会被分配到某块GPU上。
具体的,本实施例在GPU渲染结束后,还包括步骤S4:渲染主机接收各个GPU所输出的渲染区域画面最后合并成为最终所需要的渲染结果;
具体的包括以下步骤;
步骤1、主机接收各个GPU的输出结果;
步骤2、按照第二部分的区域划分方式进行拼接;
步骤3、输出对应的渲染画面。
本实施例通过渲染任务度量算子对待渲染场景进行任务量估计以获取待渲染场
景的任务量;进而对GPU的渲染能力建立渲染能力度量,在根据待渲染任务量以及GPU数目num对所述待渲染任务进行划分建立N叉树,其中
所述N叉树的叶子节点的渲染任务量均小于一渲染任务量阈值向量;并遍历N叉树的叶结
点,将叶结点所对应的区域分配到相应的GPU进行渲染,能够根据渲染区域之间的渲染任务
量差异,进行合适的任务切分从而提升并行效率减少各个GPU之间的输出时间差。
实施例二
参考图5,本实施例公开了一种实时渲染的多GPU并行调度装置,其包括如下步骤:
渲染任务量获取单元,用于获取渲染任务,并对渲染任务中的待渲染场景模型文
件中的待渲染场景资产进行模型变换以及视口变换,确定各个物体资产的输出像素区域,
并根据所述输出像素区域确定待渲染任务的渲染任务量;
具体的,本实施例的一种实时渲染的多GPU并行度方法可以应用在一个GPU集群中,可以有一渲染控制主机来接收相应的待渲染场景模型文件,具体的渲染主机可以不进行渲染任务而仅进行渲染任务的调度工作,在另一个实施方式中渲染主机除进行渲染任务的调度工作外,也可以负责渲染任务。如渲染主机可以不具备GPU,从而仅进行渲染任务的调度工作,在另一个实施方式中渲染主机也可以具备GPU,但其不进行渲染工作,仅进行渲染任务的调度。
具体的,本实施例的渲染控制主机接收渲染任务,其中渲染任务中包含有一个待渲染场景模型文件,并且待渲染场景模型文件中包含有待渲染场景资产,本实施例的待渲染场景资产包括:待渲染场景资产包括纹理,粒子数目,几何模型,光源。
具体的,本实施例的渲染主机对待渲染场景资产进行模型变换以及视口变换,确定各个物体资产的输出像素区域;
具体的,本实施例的渲染主机可以从待渲染场景模型文件中获取待场景资产,并根据模型坐标系空间与输出屏幕空间之间的映射关系(如模型变换参数),然后对所述资产执行模型变换,以确定其在二维输出屏幕空间的像素区域。
具体的,本实施例根据屏幕空间的像素区域的包含的资产的数目来确定所述待渲
染任务的渲染任务量;其中待渲染任务的渲染任务量,其中分别代表
渲染方块区域右上角坐标以及左下角坐标, 分别代表构建几何体、构建粒子
数、构建光照数据、纹理编码数。
本实施例使用渲染任务度量算子f来度量待渲染任务的渲染任务量,其度量方法
为,其中分别代表
渲染方块区域右上角坐标以及左下角坐标,分别代表构建几何体、构建粒子
数、构建光照数据、纹理编码数。其渲染任务量为渲染区域内包含的几何体、构建粒子数、构
建光照数据、纹理编码数。
具体的,本实施例的渲染任务度量算子可以用来对整个待渲染场景模型文件确定相应的渲染任务量,也可以对待渲染区域来确定待渲染区域的渲染任务量,所述待渲染区域是指所述待渲染场景模型文件中一个待渲染的区域。
本实施例首选根据待渲染场景模型文件确定待渲染场景的渲染任务量即先确定
渲染任务量算子。可先确定待渲染场景内资产的输出像素区域,以及资产之间遮挡关系并
记录在链表数组之中,最后生成渲染任务度量算子。具体的可分为以下子单元:
资产数目获取单元、用于扫描场景文件确定场景内的资产数目,并初始化资产链表数组L,其长度为N_a表示资产数目;
本实施例的资产包括:纹理,粒子数目,几何模型,光源。
像素区域获取单元、用于对L[i]内的资产确定其模型坐标系空间与输出屏幕空间之间的映射关系,然后对该资产执行模型变换,以确定其在二维输出屏幕空间的像素区域并将其写入资产链表数组L[i];
迭代单元、用于令i=i+1;
终止判断单元、判断i是否小于N_a,若是,则返回步骤迭代单元,若否,则执行像素区域更新单元;
像素区域更新单元、用于对每个输出像素计算其深度信息(Z-buffer),以确定物体遮挡关系,在物体有重叠的像素位置,保留深度信息最小的资产剔除其余物体模型,以此为基准对资产输出像素区域进行更新;
任务度量算子度量单元、用于根据链表生成渲染任务度量算子,其中分别代表渲染方
块区域右上角坐标以及左下角坐标, 分别代表构建几何体、构建粒子数、构
建光照数据、纹理编码数;遍历链表数组L确定所输入方块区域所覆盖的资产数目,将所覆
盖的资产的渲染任务向量叠加;
GPU渲染能力向量获取单元,用于获取GPU的渲染能力向量,所述GPU的渲染能力向量通过单位时间内所构建的几何体数目、单位时间内所编码的纹理、单位时间内所构建的光照数据、单位时间内所构建的粒子数目进行量化;
本实施例对GPU渲染能力主要从以下四个维度进行量化:
单位时间内所构建的几何体数目;
单位时间内所编码的纹理;
单位时间内所构建的光照数据;
单位时间内所构建的粒子数目。
具体的,本实施例确定GPU的渲染能力向量具体包括如下子单元:
渲染场景测试文件构建单元、用于构建合适的渲染场景测试文件,统计其所需要构建的粒子数目、光照数据、纹理编码数、几何体数据;
GPU渲染时间获取单元、用于对给定GPU记录渲染测试场景时在渲染管线中每个阶
段所完成的时间(几何处理->纹理编码->构建光照->渲染粒子),其中代表
几何处理时间,代表纹理编码时间,代表构建光照时间,代表粒子渲染时间;
调度单元,用于根据所述GPU渲染能力向量以及待渲染任务的渲染任务量对渲染任务进行切分,随后任务发送到对应GPU进行渲染;
具体的,根据所述GPU渲染能力向量以及待渲染场景任务量算子对渲染任务进行切分还包括:根据渲染任务初始化任务划分方式建立N叉树;遍历N叉树的叶结点,将结点所对应的区域分配到相应的GPU进行渲染。
具体的,本实施例的N为4。
根据渲染任务初始化任务划分方式建立N叉树具体为:
在一个实施方式中k为2。
步骤32、对给定渲染区域进行N等分并计算所划分区域的渲染任务向量;
步骤33、对划分的渲染区域重复执行步骤32中的操作,直到划分区域渲染任务向量各个单元皆小于设定的任务阈值向量。
具体的,遍历N叉树的叶结点,将叶结点所对应的区域分配到相应的GPU进行渲染具体为:
其中和分别代表矩阵和的第i行向量,代表向量内积,代表矩阵所有单元之和,代表N叉树的叶结点总数,约束(1)保证每个划分
区域只会被分配到一块GPU,即各个划分区域不会被重复分配;约束(2)保证所有区域都会
被分配到某块GPU上。
具体的,本实施例在GPU渲染结束后,还包括步骤S4:渲染主机接收各个GPU所输出的渲染区域画面最后合并成为最终所需要的渲染结果;
具体的包括以下步骤;
步骤1、主机接收各个GPU的输出结果;
步骤2、按照第二部分的区域划分方式进行拼接;
步骤3、输出对应的渲染画面。
本实施例通过渲染任务度量算子对待渲染场景进行任务量估计以获取待渲染场
景的任务量;进而对GPU的渲染能力建立渲染能力度量,在根据待渲染任务量以及GPU数目num对所述待渲染任务进行划分建立N叉树,其中所
述N叉树的叶子节点的渲染任务量均小于一渲染任务量阈值向量;并遍历N叉树的叶结点,
将叶结点所对应的区域分配到相应的GPU进行渲染,能够根据渲染区域之间的渲染任务量
差异,进行合适的任务切分从而提升并行效率减少各个GPU之间的输出时间差。
实施例三
参考图6,图6是本实施例的一种实时渲染的多GPU并行调度设备的结构示意图。该实施例的一种实时渲染的多GPU并行调度设备20包括处理器21、存储器22以及存储在所述存储器22中并可在所述处理器21上运行的计算机程序。所述处理器21执行所述计算机程序时实现上述方法实施例中的步骤。或者,所述处理器21执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器22中,并由所述处理器21执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述一种实时渲染的多GPU并行调度设备20中的执行过程。例如,所述计算机程序可以被分割成实施例二中的各个模块,各模块具体功能请参考上述实施例所述的装置的工作过程,在此不再赘述。
所述一种实时渲染的多GPU并行调度设备20可包括,但不仅限于,处理器21、存储器22。本领域技术人员可以理解,所述示意图仅仅是一种实时渲染的多GPU并行调度设备20的示例,并不构成对一种实时渲染的多GPU并行调度设备20的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述一种实时渲染的多GPU并行调度设备20还可以包括输入输出设备、网络接入设备、总线等。
所述处理器21可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器 (Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器21是所述一种实时渲染的多GPU并行调度设备20的控制中心,利用各种接口和线路连接整个一种实时渲染的多GPU并行调度设备20的各个部分。
所述存储器22可用于存储所述计算机程序和/或模块,所述处理器21通过运行或执行存储在所述存储器22内的计算机程序和/或模块,以及调用存储在存储器22内的数据,实现所述一种实时渲染的多GPU并行调度设备20的各种功能。所述存储器22可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
其中,所述一种实时渲染的多GPU并行调度设备20集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器21执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种实时渲染的多GPU并行调度方法,其特征在于:包括如下步骤:
S1、获取渲染任务,并对渲染任务中的待渲染场景模型文件中的待渲染场景资产进行
模型变换以及视口变换以确定各个物体资产的输出像素区域,并根据所述输出像素区域确
定待渲染任务的渲染任务量,其中分别代表构建几何体、构建粒子数、构建光照数据、
纹理编码数;
S2、获取GPU的渲染能力向量,所述GPU的渲染能力向量通过单位时间内所构建的几何体数目、单位时间内所编码的纹理、单位时间内所构建的光照数据、单位时间内所构建的粒子数目进行量化;
S3、根据所述GPU渲染能力向量以及待渲染任务的渲染任务量对渲染任务进行切分,随后任务发送到对应GPU进行渲染。
3.根据权利要求2所述的方法,其特征在于:所述S1具体为:
S10、扫描场景文件确定场景内的资产数目,并初始化资产链表数组L,其长度为N_a表示资产数目;
S12、对L[i]内的资产确定其模型坐标系空间与输出屏幕空间之间的映射关系,然后对该资产执行模型变换,以确定其在二维输出屏幕空间的像素区域并将其写入资产链表数组L[i];
S13、令i=i+1;
S14、判断i是否小于N_a,若是,则返回S13,若否,则执行S15;
S15、对每个输出像素计算其深度信息,以确定物体遮挡关系,在物体有重叠的像素位置,保留深度信息最小的资产剔除其余物体模型,以此为基准对资产输出像素区域进行更新;
具体计算方法如下:
S161、遍历链表数组L确定所输入方块区域所覆盖的资产数目;
S162、将所覆盖的资产的渲染任务向量叠加。
6.根据权利要求5所述的方法,其特征在于:遍历N叉树的叶结点,将叶结点所对应的区域分配到相应的GPU进行渲染具体为:
其中和分别代表矩阵和的第i行向量,代表向量内积,代表
矩阵所有单元之和,代表N叉树的叶结点总数,约束(1)保证每个划分区域只会被分
配到一块GPU,即各个划分区域不会被重复分配;约束(2)保证所有区域都会被分配到某块
GPU上;
7.根据权利要求1-6中任一项所述的方法,其特征在于:还包括步骤S4:渲染主机接收所述GPU输出的渲染区域画面,并合并成为最终所需要的渲染结果。
8.一种实时渲染的多GPU并行调度装置,其特征在于:其包括如下单元:
渲染任务量获取单元,用于获取渲染任务,并对渲染任务中的待渲染场景模型文件中
的待渲染场景资产进行模型变换以及视口变换以确定各个物体资产的输出像素区域,并根
据所述输出像素区域确定待渲染任务的渲染任务量,其中分别代表构建几何体、构建粒子数、构建光照数据、
纹理编码数;
GPU渲染能力向量获取单元,用于获取GPU的渲染能力向量,所述GPU的渲染能力向量通过单位时间内所构建的几何体数目、单位时间内所编码的纹理、单位时间内所构建的光照数据、单位时间内所构建的粒子数目进行量化;
调度单元,用于根据所述GPU渲染能力向量以及待渲染任务的渲染任务量对渲染任务进行切分,随后任务发送到对应GPU进行渲染。
10.一种非易失性存储器,其特征在于:所述存储器上存储有指令,所述指令被处理器执行时,用于实现如权利要求1-7中任一项所述的一种实时渲染的多GPU并行调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211397246.8A CN115509764B (zh) | 2022-11-09 | 2022-11-09 | 一种实时渲染的多gpu并行调度方法、装置及存储器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211397246.8A CN115509764B (zh) | 2022-11-09 | 2022-11-09 | 一种实时渲染的多gpu并行调度方法、装置及存储器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115509764A true CN115509764A (zh) | 2022-12-23 |
CN115509764B CN115509764B (zh) | 2023-03-07 |
Family
ID=84514046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211397246.8A Active CN115509764B (zh) | 2022-11-09 | 2022-11-09 | 一种实时渲染的多gpu并行调度方法、装置及存储器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115509764B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116347003A (zh) * | 2023-05-30 | 2023-06-27 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种虚拟灯光实时渲染方法及装置 |
CN116684668A (zh) * | 2023-08-03 | 2023-09-01 | 湖南马栏山视频先进技术研究院有限公司 | 一种自适应的视频帧处理方法及播放终端 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1889128A (zh) * | 2006-07-17 | 2007-01-03 | 北京航空航天大学 | 基于gpu的预计算辐射度传递全频阴影的方法 |
CN103699364A (zh) * | 2013-12-24 | 2014-04-02 | 四川川大智胜软件股份有限公司 | 一种基于并行绘制技术的三维图形渲染方法 |
CN107481312A (zh) * | 2016-06-08 | 2017-12-15 | 腾讯科技(深圳)有限公司 | 一种基于体绘制的图像渲染及装置 |
US20180063555A1 (en) * | 2016-08-24 | 2018-03-01 | Liquidsky Software, Inc. | Network-enabled graphics processing module |
CN109669770A (zh) * | 2018-12-12 | 2019-04-23 | 中国航空工业集团公司西安航空计算技术研究所 | 一种图形处理器并行着色任务调度单元系统 |
-
2022
- 2022-11-09 CN CN202211397246.8A patent/CN115509764B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1889128A (zh) * | 2006-07-17 | 2007-01-03 | 北京航空航天大学 | 基于gpu的预计算辐射度传递全频阴影的方法 |
CN103699364A (zh) * | 2013-12-24 | 2014-04-02 | 四川川大智胜软件股份有限公司 | 一种基于并行绘制技术的三维图形渲染方法 |
CN107481312A (zh) * | 2016-06-08 | 2017-12-15 | 腾讯科技(深圳)有限公司 | 一种基于体绘制的图像渲染及装置 |
US20180063555A1 (en) * | 2016-08-24 | 2018-03-01 | Liquidsky Software, Inc. | Network-enabled graphics processing module |
CN109669770A (zh) * | 2018-12-12 | 2019-04-23 | 中国航空工业集团公司西安航空计算技术研究所 | 一种图形处理器并行着色任务调度单元系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116347003A (zh) * | 2023-05-30 | 2023-06-27 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种虚拟灯光实时渲染方法及装置 |
CN116347003B (zh) * | 2023-05-30 | 2023-08-11 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种虚拟灯光实时渲染方法及装置 |
CN116684668A (zh) * | 2023-08-03 | 2023-09-01 | 湖南马栏山视频先进技术研究院有限公司 | 一种自适应的视频帧处理方法及播放终端 |
CN116684668B (zh) * | 2023-08-03 | 2023-10-20 | 湖南马栏山视频先进技术研究院有限公司 | 一种自适应的视频帧处理方法及播放终端 |
Also Published As
Publication number | Publication date |
---|---|
CN115509764B (zh) | 2023-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115509764B (zh) | 一种实时渲染的多gpu并行调度方法、装置及存储器 | |
US7928990B2 (en) | Graphics processing unit with unified vertex cache and shader register file | |
KR101639852B1 (ko) | 그래픽 프로세싱을 위한 픽셀 값 압축 | |
Brabec et al. | Shadow volumes on programmable graphics hardware | |
WO2021228031A1 (zh) | 渲染方法、设备以及系统 | |
KR101609079B1 (ko) | 그래픽 프로세싱 유닛에서의 명령 선별 | |
CN108780582A (zh) | 可见性信息修改 | |
US20220309735A1 (en) | Image rendering method and apparatus | |
CN117237502A (zh) | 一种三维渲染方法、装置、设备及介质 | |
CN113610958A (zh) | 一种基于风格迁移的3d图像构建方法、装置及终端 | |
CN113822975A (zh) | 用于对图像进行有效采样的技术 | |
CN111091188B (zh) | 神经网络的前向计算方法、装置及计算机可读存储介质 | |
KR20160068204A (ko) | 메시 지오메트리를 위한 데이터 처리 방법 및 이를 기록한 컴퓨터 판독 가능 저장 매체 | |
CN108572593B (zh) | 跨平台卷积神经网络控制系统及方法、信息数据处理终端 | |
Lee et al. | A bimodal empty space skipping of ray casting for terrain data | |
CN113516738B (zh) | 一种动画处理方法、装置、存储介质及电子设备 | |
CN115511886B (zh) | 利用gpu实现远程目标统计的方法、装置及存储介质 | |
CN116883575B (zh) | 建筑群渲染方法、装置、计算机设备和存储介质 | |
Kim et al. | 3D binary morphological operations using run-length representation | |
JP2019046080A (ja) | 情報処理装置、方法及びプログラム | |
US20230334762A1 (en) | Accelerated processing via a physically based rendering engine | |
Demidova et al. | Application of Machine Learning and Parallel Computing to Search for Hypersurfaces Containing Data in Non-Linear Spaces | |
CN116129054A (zh) | 模型简化方法、装置、电子设备及存储介质 | |
Scardigli et al. | RL-based Stateful Neural Adaptive Sampling and Denoising for Real-Time Path Tracing | |
CN115512029A (zh) | 多层次细节模型构建方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |