CN115509764A - 一种实时渲染的多gpu并行调度方法、装置及存储器 - Google Patents

一种实时渲染的多gpu并行调度方法、装置及存储器 Download PDF

Info

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
Application number
CN202211397246.8A
Other languages
English (en)
Other versions
CN115509764B (zh
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.)
Hunan Malanshan Video Advanced Technology Research Institute Co ltd
Original Assignee
Hunan Malanshan Video Advanced Technology Research Institute Co 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 Hunan Malanshan Video Advanced Technology Research Institute Co ltd filed Critical Hunan Malanshan Video Advanced Technology Research Institute Co ltd
Priority to CN202211397246.8A priority Critical patent/CN115509764B/zh
Publication of CN115509764A publication Critical patent/CN115509764A/zh
Application granted granted Critical
Publication of CN115509764B publication Critical patent/CN115509764B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/5061Partitioning or combining of resources
    • 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

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并行调度方法、装置及存储器
技术领域
本发明涉及图形图像处理技术领域,具体来说,涉及一种实时渲染的多GPU并行调度方法、装置及存储器。
背景技术
实时渲染意在利用计算机生成视觉效果,它是计算机图形学中交互性最高的领域。例如图像出现在屏幕上,观众采取行动或做出反应,这种反馈会影响接下来生成的内容。这种反应和渲染的循环以足够快的速度发生,以至于观看者看不到单个图像,而是沉浸在动态过程中。但复杂场景实时渲染对算力的要求较高,因此通过多卡并行渲染来提升渲染效率是很有必要的,但是复杂场景是由若干复杂资产或区域组成,即场景中的每个区域对算力与显存的要求不同,因此单纯并行分配任务无法充分利用多卡资源,如何实现多卡调度来进行并行渲染并保证所有显卡能够同步输出是亟待解决的难题。
传统多卡渲染调度系统(deadline,shotgun)在调度多卡算力的时候仅仅只是单纯的将任务分配到多个同构图形处理器GPU(graphics processing unit)上进行渲染未考虑渲染任务之间的差异性,在离线渲染中会造成分配渲染任务较小的GPU先一步完成渲染任务,处于空载状态从而降低了并行的效率。在实时渲染场景中则会导致多卡之间输出不同步,造成画面不同步的情况。
发明内容
针对相关技术中的上述技术问题,本发明提出一种实时渲染的多GPU并行调度方法,包括如下步骤:
S1、获取渲染任务,并对渲染任务中的待渲染场景模型文件中的待渲染场景资产 进行模型变换以及视口变换以确定各个物体资产的输出像素区域,并根据所述输出像素区 域确定待渲染任务的渲染任务量
Figure 799653DEST_PATH_IMAGE001
;其中
Figure 162501DEST_PATH_IMAGE002
分别代表构建几何体、构建粒子数、构建光照数 据、纹理编码数;
S2、获取GPU的渲染能力向量,所述GPU的渲染能力向量通过单位时间内所构建的几何体数目、单位时间内所编码的纹理、单位时间内所构建的光照数据、单位时间内所构建的粒子数目进行量化;
S3、根据所述GPU渲染能力向量以及待渲染任务的渲染任务量对渲染任务进行切分,随后任务发送到对应GPU进行渲染。
具体的:待渲染任务的渲染任务量
Figure 136273DEST_PATH_IMAGE003
,其中
Figure 434530DEST_PATH_IMAGE004
分别 代表渲染方块区域右上角坐标以及左下角坐标,
Figure 87229DEST_PATH_IMAGE005
分别代表构建 几何体、构建粒子数、构建光照数据、纹理编码数;其中f为渲染任务度量算子。
具体的:所述步骤1具体为:步骤S10、扫描场景文件确定场景内的资产数目,并初始化资产链表数组L,其长度为N_a表示资产数目;
S11、初始化
Figure 129134DEST_PATH_IMAGE006
其中
Figure 691833DEST_PATH_IMAGE007
表示链表数组索引;
S12、对L[i]内的资产确定其模型坐标系空间与输出屏幕空间之间的映射关系,然后对该资产执行模型变换,以确定其在二维输出屏幕空间的像素区域并将其写入资产链表数组L[i];
S13、令i=i+1;
S14、判断i是否小于N_a,若是,则返回S13,若否,则执行S15;
S15、对每个输出像素计算其深度信息,以确定物体遮挡关系,在物体有重叠的像素位置,保留深度信息最小的资产剔除其余物体模型,以此为基准对资产输出像素区域进行更新;
S16、根据链表生成渲染任务度量算子
Figure 20047DEST_PATH_IMAGE008
,其中
Figure 300986DEST_PATH_IMAGE009
分别代表渲染 方块区域右上角坐标以及左下角坐标,
Figure 740058DEST_PATH_IMAGE010
分别代表构建几何体、构建粒子数、 构建光照数据、纹理编码数;
具体计算方法如下:
S161、遍历链表数组L确定所输入方块区域所覆盖的资产数目;
S162、将所覆盖的资产的渲染任务向量叠加。
具体的:所述步骤S3中“根据所述GPU渲染能力向量以及待渲染任务的渲染任务量 对渲染任务进行切分”具体为:根据待渲染任务的渲染任务量
Figure 422843DEST_PATH_IMAGE011
以及GPU数目num对所述待渲染任务进行划分建立N叉树,其中所述N叉树的叶子节点的渲染 任务量均小于一渲染任务量阈值向量;并遍历N叉树的叶结点,将叶结点所对应的区域分配 到相应的GPU进行渲染。
具体的:所述“根据待渲染任务的渲染任务量
Figure 62903DEST_PATH_IMAGE012
以及 GPU数目num对所述待渲染任务进行划分建立N叉树,其中所述N叉树的叶子节点的渲染任务 量均小于一渲染任务量阈值向量”具体为:
S31、初始化渲染任务阈值向量
Figure 831139DEST_PATH_IMAGE013
;阈值向量确定方法如下:
S311、获取待渲染任务的渲染任务量
Figure 339481DEST_PATH_IMAGE014
S312、读取GPU数量
Figure 865054DEST_PATH_IMAGE015
S313、令渲染任务阈值向量等于
Figure 410436DEST_PATH_IMAGE016
; 其中k为正整数;
S32、对给定渲染区域进行N等分并计算所划分区域的渲染任务向量;
S33、对划分的渲染区域重复执行步骤32中的操作,直到划分区域渲染任务向量各个单元皆小于设定的任务阈值向量。
具体的:遍历N叉树的叶结点,将叶结点所对应的区域分配到相应的GPU进行渲染具体为:
S34、根据渲染区域的渲染任务度量算子
Figure 790601DEST_PATH_IMAGE017
,以及GPU渲染能力值初始化代价矩阵
Figure 978000DEST_PATH_IMAGE018
,其中
Figure 369798DEST_PATH_IMAGE018
代表
Figure 351661DEST_PATH_IMAGE019
矩阵,
Figure 360068DEST_PATH_IMAGE020
代表第i号GPU渲染第j个N叉树的叶结点区域所需要的 时间,
Figure 210212DEST_PATH_IMAGE021
代表N叉树的叶结点数目,其计算步骤如下:
S341、读取第i号GPU的渲染能力
Figure 456517DEST_PATH_IMAGE022
S342、读取第j个N叉树的叶结点所代表的渲染区域的渲染任务量
Figure 609281DEST_PATH_IMAGE023
S343、令
Figure 964039DEST_PATH_IMAGE024
S35、随机初始化匹配矩阵
Figure 227661DEST_PATH_IMAGE025
,其中
Figure 859631DEST_PATH_IMAGE025
Figure 183296DEST_PATH_IMAGE026
的零一矩阵,
Figure 759771DEST_PATH_IMAGE027
代表GPU 数目,
Figure 827084DEST_PATH_IMAGE028
代表N叉树的叶结点数,
Figure 579139DEST_PATH_IMAGE029
表示第j个N叉树的叶结点区域被分配到第i号 GPU进行渲染;
S36、根据以下优化目标求解矩阵
Figure 73706DEST_PATH_IMAGE030
;
Figure 8481DEST_PATH_IMAGE032
其中
Figure 83884DEST_PATH_IMAGE033
Figure 749352DEST_PATH_IMAGE034
分别代表矩阵
Figure 441364DEST_PATH_IMAGE035
Figure 975114DEST_PATH_IMAGE036
的第i行向量,
Figure 170603DEST_PATH_IMAGE037
代表向量内积,
Figure 6972DEST_PATH_IMAGE038
代表矩阵
Figure 186280DEST_PATH_IMAGE039
所有单元之和,
Figure 258142DEST_PATH_IMAGE040
代表N叉树的叶结点总数,约束(1)保证每个划 分区域只会被分配到一块GPU,即各个划分区域不会被重复分配;约束(2)保证所有区域都 会被分配到某块GPU上;
S37、根据求解矩阵
Figure 308137DEST_PATH_IMAGE041
对渲染划分区域进行分配。
具体的:还包括步骤S4:渲染主机接收所述GPU输出的渲染区域画面,并合并成为最终所需要的渲染结果。
第二方面,本发明的另一个实施例公开了一种实时渲染的多GPU并行调度装置,其包括如下单元:
渲染任务量获取单元,用于获取渲染任务,并对渲染任务中的待渲染场景模型文 件中的待渲染场景资产进行模型变换以及视口变换以确定各个物体资产的输出像素区域, 并根据所述输出像素区域确定待渲染任务的渲染任务量
Figure 315407DEST_PATH_IMAGE042
GPU渲染能力向量获取单元,用于获取GPU的渲染能力向量,所述GPU的渲染能力向量通过单位时间内所构建的几何体数目、单位时间内所编码的纹理、单位时间内所构建的光照数据、单位时间内所构建的粒子数目进行量化;
调度单元,用于根据所述GPU渲染能力向量以及待渲染任务的渲染任务量对渲染任务进行切分,随后任务发送到对应GPU进行渲染。
具体的:所述调度单元具体为:根据待渲染任务的渲染任务量
Figure 841067DEST_PATH_IMAGE042
以及GPU数目num对所述待渲染任务进行划分建立N叉树,其 中所述N叉树的叶子节点的渲染任务量均小于一渲染任务量阈值向量;并遍历N叉树的叶结 点,将叶结点所对应的区域分配到相应的GPU进行渲染。
第三方面,本发明的另一个实施例公开了一种非易失性存储器,所述存储器上存储有指令,所述指令被处理器执行时,用于实现上述的一种实时渲染的多GPU并行调度方法。
本发明通过渲染任务度量算子对待渲染场景进行任务量估计以获取待渲染场景 的任务量;进而对GPU的渲染能力建立渲染能力度量,在根据待渲染任务量
Figure 591985DEST_PATH_IMAGE042
以及GPU数目num对所述待渲染任务进行划分建立N叉树,其中 所述N叉树的叶子节点的渲染任务量均小于一渲染任务量阈值向量;并遍历N叉树的叶结 点,将叶结点所对应的区域分配到相应的GPU进行渲染,能够根据渲染区域之间的渲染任务 量差异,进行合适的任务切分从而提升并行效率减少各个GPU之间的输出时间差。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种实时渲染的多GPU并行调度方法流程图;
图2是本发明实施例提供的一种实时渲染的多GPU并行调度总体示意图;
图3是本发明实施例提供的链表数据结构示意图;
图4是本发明实施例提供的构建N叉树示意图;
图5是本发明实施例提供的一种实时渲染的多GPU并行调度装置示意图;
图6是本发明实施例提供的一种实时渲染的多GPU并行调度设备示意。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
参考图1以及图2,本实施例提供一种实时渲染的多GPU并行调度方法,其包括如下步骤:
S1,获取渲染任务,并对渲染任务中的待渲染场景模型文件中的待渲染场景资产 进行模型变换以及视口变换,确定各个物体资产的输出像素区域,并根据所述输出像素区 域确定待渲染任务的渲染任务量
Figure 762066DEST_PATH_IMAGE042
;其中
Figure 205817DEST_PATH_IMAGE043
分别代表构建几何体、构建粒子数、构建光照数据、 纹理编码数;
具体的,本实施例的一种实时渲染的多GPU并行度方法可以应用在一个GPU集群中,可以有一渲染控制主机来接收相应的待渲染场景模型文件,具体的渲染主机可以不进行渲染任务而仅进行渲染任务的调度工作,在另一个实施方式中渲染主机除进行渲染任务的调度工作外,也可以负责渲染任务。如渲染主机可以不具备GPU,从而仅进行渲染任务的调度工作,在另一个实施方式中渲染主机也可以具备GPU,但其不进行渲染工作,仅进行渲染任务的调度。
具体的,本实施例的渲染控制主机接收渲染任务,其中渲染任务中包含有一个待渲染场景模型文件,并且待渲染场景模型文件中包含有待渲染场景资产,本实施例的待渲染场景资产包括:待渲染场景资产包括纹理,粒子数目,几何模型,光源。
具体的,本实施例的渲染主机对待渲染场景资产进行模型变换以及视口变换,确定各个物体资产的输出像素区域;
具体的,本实施例的渲染主机可以从待渲染场景模型文件中获取待场景资产,并根据模型坐标系空间与输出屏幕空间之间的映射关系(如模型变换参数),然后对所述资产执行模型变换,以确定其在二维输出屏幕空间的像素区域。
具体的在屏幕空间的像素区域可以使用一矩形进行表示,矩形使用右上角坐标
Figure 953193DEST_PATH_IMAGE044
以及左下角坐标
Figure 242223DEST_PATH_IMAGE045
进行表示。
具体的,本实施例根据屏幕空间的像素区域的包含的资产的数目来确定所述待渲 染任务的渲染任务量;其中待渲染任务的渲染任务量
Figure 532390DEST_PATH_IMAGE046
,其中
Figure 147042DEST_PATH_IMAGE047
分别代表渲 染方块区域右上角坐标以及左下角坐标,
Figure 381715DEST_PATH_IMAGE048
分别代表构建几何体、构建粒子数、构 建光照数据、纹理编码数。
本实施例使用渲染任务度量算子f来度量待渲染任务的渲染任务量,其度量方法 为
Figure 474436DEST_PATH_IMAGE049
,其中
Figure 619109DEST_PATH_IMAGE050
分别代表渲染方 块区域右上角坐标以及左下角坐标,
Figure 404662DEST_PATH_IMAGE051
分别代表构建几何体、构建粒子数、构建 光照数据、纹理编码数。其渲染任务量为渲染区域内包含的几何体、构建粒子数、构建光照 数据、纹理编码数。
具体的,本实施例的渲染任务度量算子可以用来对整个待渲染场景模型文件确定相应的渲染任务量,也可以对待渲染区域来确定待渲染区域的渲染任务量,所述待渲染区域是指所述待渲染场景模型文件中一个待渲染的区域。一般的在本实施例的下文提及的在在建立N叉树时,树的叶子为一个渲染区域,对渲染区域的渲染任务量的计算也使用本实施例中的渲染任务度量算子f。
本实施例首选根据待渲染场景模型文件确定待渲染场景的渲染任务量即先确定 渲染任务量算子。可先确定待渲染场景内资产的输出像素区域,以及资产之间遮挡关系并 记录在链表数组之中,最后生成渲染任务度量算子
Figure 126631DEST_PATH_IMAGE052
参考图3,具体的可分为以下步骤:
步骤S10、扫描场景文件确定场景内的资产数目,并初始化资产链表数组L,其长度为N_a表示资产数目;
本实施例的资产包括:纹理,粒子数目,几何模型,光源。
步骤11、初始化
Figure 34761DEST_PATH_IMAGE006
其中
Figure 33941DEST_PATH_IMAGE007
表示链表数组索引;
步骤12、对L[i]内的资产确定其模型坐标系空间与输出屏幕空间之间的映射关系,然后对该资产执行模型变换,以确定其在二维输出屏幕空间的像素区域并将其写入资产链表数组L[i];
步骤13、令i=i+1;
步骤14、判断i是否小于N_a,若是,则返回步骤13,若否,则执行步骤15;
步骤15、对每个输出像素计算其深度信息(Z-buffer),以确定物体遮挡关系,在物体有重叠的像素位置,保留深度信息最小的资产剔除其余物体模型,以此为基准对资产输出像素区域进行更新;
步骤16、根据链表生成渲染任务度量算子
Figure 990396DEST_PATH_IMAGE053
,其中
Figure 340606DEST_PATH_IMAGE054
分别代 表渲染方块区域右上角坐标以及左下角坐标,
Figure 40709DEST_PATH_IMAGE055
分别代表构建几何体、构建 粒子数、构建光照数据、纹理编码数;
具体计算方法如下:
步骤161、遍历链表数组L确定所输入方块区域所覆盖的资产数目;
步骤162、将所覆盖的资产的渲染任务向量叠加;
S2,获取GPU的渲染能力向量,所述GPU的渲染能力向量通过单位时间内所构建的几何体数目、单位时间内所编码的纹理、单位时间内所构建的光照数据、单位时间内所构建的粒子数目进行量化;
本实施例对GPU渲染能力主要从以下四个维度进行量化:
单位时间内所构建的几何体数目;
单位时间内所编码的纹理;
单位时间内所构建的光照数据;
单位时间内所构建的粒子数目。
具体的,本实施例确定GPU的渲染能力向量具体为:
步骤20、构建合适的渲染场景测试文件,统计其所需要构建的粒子数目、光照数据、纹理编码数、几何体数据;
步骤21、对给定GPU记录渲染测试场景时在渲染管线中每个阶段所完成的时间
Figure 19029DEST_PATH_IMAGE056
(几何处理->纹理编码->构建光照->渲染粒子),其中
Figure 880806DEST_PATH_IMAGE057
代表几何处理时 间,
Figure 187153DEST_PATH_IMAGE058
代表纹理编码时间,
Figure 550002DEST_PATH_IMAGE059
代表构建光照时间,
Figure 523774DEST_PATH_IMAGE060
代表粒子渲染时间;
步骤22、生成对应的GPU渲染能力向量
Figure 556452DEST_PATH_IMAGE061
,其中G,P,Li,T分 别代表构建几何体数、构建粒子数、构建光照数据、纹理编码数。
S3,根据所述GPU渲染能力向量以及待渲染任务的渲染任务量对渲染任务进行切分,随后任务发送到对应GPU进行渲染;
具体的,本实施例首先根据待渲染任务量
Figure 615675DEST_PATH_IMAGE062
以及集群中 的GPU数目num对所述待渲染任务进行划分建立N叉树,其中所述N叉树的叶子节点的渲染任 务量均小于一渲染任务量阈值向量。
具体的,根据所述GPU渲染能力向量以及待渲染场景任务量算子对渲染任务进行切分还包括:根据渲染任务初始化任务划分方式建立N叉树;遍历N叉树的叶结点,将结点所对应的区域分配到相应的GPU进行渲染。
具体的,本实施例的N为4。
参考图4,根据渲染任务初始化任务划分方式建立N叉树具体为:
步骤31、初始化渲染任务阈值向量
Figure 516635DEST_PATH_IMAGE063
;阈值向量确定方法如下:
步骤311、获取待渲染任务的渲染任务量
Figure 79334DEST_PATH_IMAGE064
;
步骤312、读取GPU数量
Figure 548493DEST_PATH_IMAGE065
;
步骤313、令渲染任务阈值向量等于
Figure 954066DEST_PATH_IMAGE066
; 其中k为正整数;
在一个实施方式中k为2。
步骤32、对给定渲染区域进行N等分并计算所划分区域的渲染任务向量;
步骤33、对划分的渲染区域重复执行步骤32中的操作,直到划分区域渲染任务向量各个单元皆小于设定的任务阈值向量。
具体的,遍历N叉树的叶结点,将叶结点所对应的区域分配到相应的GPU进行渲染具体为:
步骤34、根据渲染区域的渲染任务度量算子
Figure 799663DEST_PATH_IMAGE067
,以及GPU渲染能力值初始化代价矩 阵
Figure 216869DEST_PATH_IMAGE068
,其中
Figure 981562DEST_PATH_IMAGE069
代表
Figure 749798DEST_PATH_IMAGE070
矩阵,
Figure 399085DEST_PATH_IMAGE071
代表第i号GPU渲染第j个N叉树的叶结点区域所需 要的时间,
Figure 936377DEST_PATH_IMAGE072
代表N叉树的叶结点数目,其计算步骤如下:
步骤341、读取第i号GPU的渲染能力
Figure 606393DEST_PATH_IMAGE073
步骤342、读取第j个N叉树的叶结点所代表的渲染区域的渲染任务量
Figure 596345DEST_PATH_IMAGE074
步骤343、令
Figure 518165DEST_PATH_IMAGE075
步骤35、随机初始化匹配矩阵
Figure 300176DEST_PATH_IMAGE076
,其中
Figure 282039DEST_PATH_IMAGE076
Figure 24867DEST_PATH_IMAGE077
的零一矩阵,
Figure 750377DEST_PATH_IMAGE078
代表 GPU数目,
Figure 527841DEST_PATH_IMAGE079
代表N叉树的叶结点数,
Figure 805238DEST_PATH_IMAGE080
表示第j个N叉树的叶结点区域被分配到第i号 GPU进行渲染;
步骤36、根据以下优化目标求解矩阵
Figure 504204DEST_PATH_IMAGE081
;
Figure 665375DEST_PATH_IMAGE082
其中
Figure 848095DEST_PATH_IMAGE083
Figure 565515DEST_PATH_IMAGE084
分别代表矩阵
Figure 898407DEST_PATH_IMAGE085
Figure 119304DEST_PATH_IMAGE086
的第i行向量,
Figure 4084DEST_PATH_IMAGE087
代表向量内积,
Figure 943221DEST_PATH_IMAGE088
代表矩阵
Figure 814225DEST_PATH_IMAGE089
所有单元之和,
Figure 889628DEST_PATH_IMAGE090
代表N叉树的叶结点总数,约束(1)保证每个划 分区域只会被分配到一块GPU,即各个划分区域不会被重复分配;约束(2)保证所有区域都 会被分配到某块GPU上。
步骤37、根据求解矩阵
Figure 945309DEST_PATH_IMAGE091
对渲染划分区域进行分配;
具体的,本实施例在GPU渲染结束后,还包括步骤S4:渲染主机接收各个GPU所输出的渲染区域画面最后合并成为最终所需要的渲染结果;
具体的包括以下步骤;
步骤1、主机接收各个GPU的输出结果;
步骤2、按照第二部分的区域划分方式进行拼接;
步骤3、输出对应的渲染画面。
本实施例通过渲染任务度量算子对待渲染场景进行任务量估计以获取待渲染场 景的任务量;进而对GPU的渲染能力建立渲染能力度量,在根据待渲染任务量
Figure 360023DEST_PATH_IMAGE092
以及GPU数目num对所述待渲染任务进行划分建立N叉树,其中 所述N叉树的叶子节点的渲染任务量均小于一渲染任务量阈值向量;并遍历N叉树的叶结 点,将叶结点所对应的区域分配到相应的GPU进行渲染,能够根据渲染区域之间的渲染任务 量差异,进行合适的任务切分从而提升并行效率减少各个GPU之间的输出时间差。
实施例二
参考图5,本实施例公开了一种实时渲染的多GPU并行调度装置,其包括如下步骤:
渲染任务量获取单元,用于获取渲染任务,并对渲染任务中的待渲染场景模型文 件中的待渲染场景资产进行模型变换以及视口变换,确定各个物体资产的输出像素区域, 并根据所述输出像素区域确定待渲染任务的渲染任务量
Figure 769139DEST_PATH_IMAGE092
具体的,本实施例的一种实时渲染的多GPU并行度方法可以应用在一个GPU集群中,可以有一渲染控制主机来接收相应的待渲染场景模型文件,具体的渲染主机可以不进行渲染任务而仅进行渲染任务的调度工作,在另一个实施方式中渲染主机除进行渲染任务的调度工作外,也可以负责渲染任务。如渲染主机可以不具备GPU,从而仅进行渲染任务的调度工作,在另一个实施方式中渲染主机也可以具备GPU,但其不进行渲染工作,仅进行渲染任务的调度。
具体的,本实施例的渲染控制主机接收渲染任务,其中渲染任务中包含有一个待渲染场景模型文件,并且待渲染场景模型文件中包含有待渲染场景资产,本实施例的待渲染场景资产包括:待渲染场景资产包括纹理,粒子数目,几何模型,光源。
具体的,本实施例的渲染主机对待渲染场景资产进行模型变换以及视口变换,确定各个物体资产的输出像素区域;
具体的,本实施例的渲染主机可以从待渲染场景模型文件中获取待场景资产,并根据模型坐标系空间与输出屏幕空间之间的映射关系(如模型变换参数),然后对所述资产执行模型变换,以确定其在二维输出屏幕空间的像素区域。
具体的在屏幕空间的像素区域可以使用一矩形进行表示,矩形使用右上角坐标
Figure 823683DEST_PATH_IMAGE093
以及左下角坐标
Figure 925631DEST_PATH_IMAGE094
进行表示。
具体的,本实施例根据屏幕空间的像素区域的包含的资产的数目来确定所述待渲 染任务的渲染任务量;其中待渲染任务的渲染任务量
Figure 308202DEST_PATH_IMAGE095
,其中
Figure 645642DEST_PATH_IMAGE096
分别代表 渲染方块区域右上角坐标以及左下角坐标,
Figure 695638DEST_PATH_IMAGE097
分别代表构建几何体、构建粒子 数、构建光照数据、纹理编码数。
本实施例使用渲染任务度量算子f来度量待渲染任务的渲染任务量,其度量方法 为
Figure 702908DEST_PATH_IMAGE098
,其中
Figure 228567DEST_PATH_IMAGE099
分别代表 渲染方块区域右上角坐标以及左下角坐标,
Figure 979486DEST_PATH_IMAGE100
分别代表构建几何体、构建粒子 数、构建光照数据、纹理编码数。其渲染任务量为渲染区域内包含的几何体、构建粒子数、构 建光照数据、纹理编码数。
具体的,本实施例的渲染任务度量算子可以用来对整个待渲染场景模型文件确定相应的渲染任务量,也可以对待渲染区域来确定待渲染区域的渲染任务量,所述待渲染区域是指所述待渲染场景模型文件中一个待渲染的区域。
本实施例首选根据待渲染场景模型文件确定待渲染场景的渲染任务量即先确定 渲染任务量算子。可先确定待渲染场景内资产的输出像素区域,以及资产之间遮挡关系并 记录在链表数组之中,最后生成渲染任务度量算子
Figure 883988DEST_PATH_IMAGE101
。具体的可分为以下子单元:
资产数目获取单元、用于扫描场景文件确定场景内的资产数目,并初始化资产链表数组L,其长度为N_a表示资产数目;
本实施例的资产包括:纹理,粒子数目,几何模型,光源。
链表初始化单元、用于初始化
Figure 186793DEST_PATH_IMAGE006
其中
Figure 75115DEST_PATH_IMAGE007
表示链表数组索引;
像素区域获取单元、用于对L[i]内的资产确定其模型坐标系空间与输出屏幕空间之间的映射关系,然后对该资产执行模型变换,以确定其在二维输出屏幕空间的像素区域并将其写入资产链表数组L[i];
迭代单元、用于令i=i+1;
终止判断单元、判断i是否小于N_a,若是,则返回步骤迭代单元,若否,则执行像素区域更新单元;
像素区域更新单元、用于对每个输出像素计算其深度信息(Z-buffer),以确定物体遮挡关系,在物体有重叠的像素位置,保留深度信息最小的资产剔除其余物体模型,以此为基准对资产输出像素区域进行更新;
任务度量算子度量单元、用于根据链表生成渲染任务度量算子
Figure 629724DEST_PATH_IMAGE102
,其中
Figure 654312DEST_PATH_IMAGE103
分别代表渲染方 块区域右上角坐标以及左下角坐标,
Figure 128018DEST_PATH_IMAGE104
分别代表构建几何体、构建粒子数、构 建光照数据、纹理编码数;遍历链表数组L确定所输入方块区域所覆盖的资产数目,将所覆 盖的资产的渲染任务向量叠加;
GPU渲染能力向量获取单元,用于获取GPU的渲染能力向量,所述GPU的渲染能力向量通过单位时间内所构建的几何体数目、单位时间内所编码的纹理、单位时间内所构建的光照数据、单位时间内所构建的粒子数目进行量化;
本实施例对GPU渲染能力主要从以下四个维度进行量化:
单位时间内所构建的几何体数目;
单位时间内所编码的纹理;
单位时间内所构建的光照数据;
单位时间内所构建的粒子数目。
具体的,本实施例确定GPU的渲染能力向量具体包括如下子单元:
渲染场景测试文件构建单元、用于构建合适的渲染场景测试文件,统计其所需要构建的粒子数目、光照数据、纹理编码数、几何体数据;
GPU渲染时间获取单元、用于对给定GPU记录渲染测试场景时在渲染管线中每个阶 段所完成的时间
Figure 238057DEST_PATH_IMAGE105
(几何处理->纹理编码->构建光照->渲染粒子),其中
Figure 189832DEST_PATH_IMAGE106
代表 几何处理时间,
Figure 334506DEST_PATH_IMAGE107
代表纹理编码时间,
Figure 588901DEST_PATH_IMAGE108
代表构建光照时间,
Figure 451815DEST_PATH_IMAGE109
代表粒子渲染时间;
渲染能力向量生成单元、用于生成对应的GPU渲染能力向量
Figure 472860DEST_PATH_IMAGE110
, 其中G,P,Li,T分别代表构建几何体数、构建粒子数、构建光照数据、纹理编码数。
调度单元,用于根据所述GPU渲染能力向量以及待渲染任务的渲染任务量对渲染任务进行切分,随后任务发送到对应GPU进行渲染;
具体的,本实施例首先根据待渲染任务量
Figure 472040DEST_PATH_IMAGE111
以及集群中 的GPU数目num对所述待渲染任务进行划分建立N叉树,其中所述N叉树的叶子节点的渲染任 务量均小于一渲染任务量阈值向量。
具体的,根据所述GPU渲染能力向量以及待渲染场景任务量算子对渲染任务进行切分还包括:根据渲染任务初始化任务划分方式建立N叉树;遍历N叉树的叶结点,将结点所对应的区域分配到相应的GPU进行渲染。
具体的,本实施例的N为4。
根据渲染任务初始化任务划分方式建立N叉树具体为:
步骤31、初始化渲染任务阈值向量
Figure 428495DEST_PATH_IMAGE112
;阈值向量确定方法如下:
步骤311、获取待渲染任务的渲染任务量
Figure 513126DEST_PATH_IMAGE113
;
步骤312、读取GPU数量
Figure 806704DEST_PATH_IMAGE114
;
步骤313、令渲染任务阈值向量等于
Figure 660390DEST_PATH_IMAGE115
; 其中k为正整数;
在一个实施方式中k为2。
步骤32、对给定渲染区域进行N等分并计算所划分区域的渲染任务向量;
步骤33、对划分的渲染区域重复执行步骤32中的操作,直到划分区域渲染任务向量各个单元皆小于设定的任务阈值向量。
具体的,遍历N叉树的叶结点,将叶结点所对应的区域分配到相应的GPU进行渲染具体为:
步骤34、根据渲染区域的渲染任务度量算子
Figure 646801DEST_PATH_IMAGE116
,以及GPU渲染能力值初始化代价矩 阵
Figure 484307DEST_PATH_IMAGE117
,其中
Figure 456942DEST_PATH_IMAGE117
代表
Figure 165135DEST_PATH_IMAGE118
矩阵,
Figure 588026DEST_PATH_IMAGE119
代表第i号GPU渲染第j个N叉树的叶结点区域所需要的 时间,
Figure 381670DEST_PATH_IMAGE120
代表N叉树的叶结点数目,其计算步骤如下:
步骤341、读取第i号GPU的渲染能力
Figure 157996DEST_PATH_IMAGE121
步骤342、读取第j个N叉树的叶结点所代表的渲染区域的渲染任务量
Figure 110908DEST_PATH_IMAGE122
步骤343、令
Figure 580067DEST_PATH_IMAGE123
步骤35、随机初始化匹配矩阵
Figure 861007DEST_PATH_IMAGE124
,其中
Figure 565658DEST_PATH_IMAGE124
Figure 248443DEST_PATH_IMAGE125
的零一矩阵,
Figure 888503DEST_PATH_IMAGE126
代表GPU 数目,
Figure 515793DEST_PATH_IMAGE127
代表N叉树的叶结点数,
Figure 633922DEST_PATH_IMAGE128
表示第j个N叉树的叶结点区域被分配到第i号GPU进 行渲染;
步骤36、根据以下优化目标求解矩
Figure 436793DEST_PATH_IMAGE129
;
Figure 362341DEST_PATH_IMAGE130
其中
Figure 284160DEST_PATH_IMAGE131
Figure 800592DEST_PATH_IMAGE132
分别代表矩阵
Figure 794173DEST_PATH_IMAGE133
Figure 537001DEST_PATH_IMAGE134
的第i行向量,
Figure 262512DEST_PATH_IMAGE135
代表向量内积,
Figure 899030DEST_PATH_IMAGE136
代表矩阵
Figure 51793DEST_PATH_IMAGE137
所有单元之和,
Figure 16338DEST_PATH_IMAGE138
代表N叉树的叶结点总数,约束(1)保证每个划分 区域只会被分配到一块GPU,即各个划分区域不会被重复分配;约束(2)保证所有区域都会 被分配到某块GPU上。
步骤37、根据求解矩阵
Figure 545540DEST_PATH_IMAGE139
对渲染划分区域进行分配;
具体的,本实施例在GPU渲染结束后,还包括步骤S4:渲染主机接收各个GPU所输出的渲染区域画面最后合并成为最终所需要的渲染结果;
具体的包括以下步骤;
步骤1、主机接收各个GPU的输出结果;
步骤2、按照第二部分的区域划分方式进行拼接;
步骤3、输出对应的渲染画面。
本实施例通过渲染任务度量算子对待渲染场景进行任务量估计以获取待渲染场 景的任务量;进而对GPU的渲染能力建立渲染能力度量,在根据待渲染任务量
Figure 177509DEST_PATH_IMAGE140
以及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、获取渲染任务,并对渲染任务中的待渲染场景模型文件中的待渲染场景资产进行 模型变换以及视口变换以确定各个物体资产的输出像素区域,并根据所述输出像素区域确 定待渲染任务的渲染任务量
Figure 992496DEST_PATH_IMAGE001
,其中
Figure 594378DEST_PATH_IMAGE002
分别代表构建几何体、构建粒子数、构建光照数据、 纹理编码数;
S2、获取GPU的渲染能力向量,所述GPU的渲染能力向量通过单位时间内所构建的几何体数目、单位时间内所编码的纹理、单位时间内所构建的光照数据、单位时间内所构建的粒子数目进行量化;
S3、根据所述GPU渲染能力向量以及待渲染任务的渲染任务量对渲染任务进行切分,随后任务发送到对应GPU进行渲染。
2.根据权利要求1所述的方法,其特征在于:待渲染任务的渲染任务量
Figure 319889DEST_PATH_IMAGE003
,其中
Figure 831773DEST_PATH_IMAGE004
分别代表渲染方块区域右上角坐标以及左下角坐标;其中f为渲染任务度量算子。
3.根据权利要求2所述的方法,其特征在于:所述S1具体为:
S10、扫描场景文件确定场景内的资产数目,并初始化资产链表数组L,其长度为N_a表示资产数目;
S11、初始化
Figure 250116DEST_PATH_IMAGE005
其中
Figure 480240DEST_PATH_IMAGE006
表示链表数组索引;
S12、对L[i]内的资产确定其模型坐标系空间与输出屏幕空间之间的映射关系,然后对该资产执行模型变换,以确定其在二维输出屏幕空间的像素区域并将其写入资产链表数组L[i];
S13、令i=i+1;
S14、判断i是否小于N_a,若是,则返回S13,若否,则执行S15;
S15、对每个输出像素计算其深度信息,以确定物体遮挡关系,在物体有重叠的像素位置,保留深度信息最小的资产剔除其余物体模型,以此为基准对资产输出像素区域进行更新;
S16、根据链表生成渲染任务度量算子
Figure 9441DEST_PATH_IMAGE007
,其 中
Figure 766045DEST_PATH_IMAGE008
分别代表渲染方块区域右上角坐标以及左下角坐标,
Figure 355289DEST_PATH_IMAGE009
分别代表构建几何体、构建粒子数、构建光照数据、纹理编码数;
具体计算方法如下:
S161、遍历链表数组L确定所输入方块区域所覆盖的资产数目;
S162、将所覆盖的资产的渲染任务向量叠加。
4.根据权利要求2所述的方法,其特征在于:所述步骤S3中“根据所述GPU渲染能力向量 以及待渲染任务的任务量对渲染任务进行切分”具体为:根据待渲染任务的任务量
Figure 807130DEST_PATH_IMAGE010
以及GPU数目num对所述待渲染任务进行划分建立N叉树,其中 所述N叉树的叶子节点的渲染任务量均小于一渲染任务量阈值向量;并遍历N叉树的叶结 点,将叶结点所对应的区域分配到相应的GPU进行渲染。
5.根据权利要求4所述的方法,其特征在于:所述“根据待渲染任务量
Figure 874443DEST_PATH_IMAGE010
以及GPU数目num对所述待渲染任务进行划分建立N叉树,其中 所述N叉树的叶子节点的渲染任务量均小于一渲染任务量阈值向量”具体为:
S31、初始化渲染任务阈值向量
Figure 360919DEST_PATH_IMAGE011
;阈值向量确定方法如下:
S311、获取待渲染任务的渲染任务量
Figure 980120DEST_PATH_IMAGE012
S312、读取GPU数量
Figure 919257DEST_PATH_IMAGE013
S313、令渲染任务阈值向量等于
Figure 55840DEST_PATH_IMAGE014
;其中k为正 整数;
S32、对给定渲染区域进行N等分并计算所划分区域的渲染任务向量;
S33、对划分的渲染区域重复执行步骤32中的操作,直到划分区域渲染任务向量各个单元皆小于设定的任务阈值向量。
6.根据权利要求5所述的方法,其特征在于:遍历N叉树的叶结点,将叶结点所对应的区域分配到相应的GPU进行渲染具体为:
S34、根据渲染区域的渲染任务度量算子
Figure 396823DEST_PATH_IMAGE015
,以及GPU渲染能力值初始化代价矩阵
Figure 62290DEST_PATH_IMAGE016
,其 中
Figure 613357DEST_PATH_IMAGE016
代表
Figure 694577DEST_PATH_IMAGE017
矩阵,
Figure 409506DEST_PATH_IMAGE018
代表第i号GPU渲染第j个N叉树的叶结点区域所需要的时间,
Figure 245875DEST_PATH_IMAGE019
代表N叉树的叶结点数目,其计算步骤如下:
S341、读取第i号GPU的渲染能力
Figure 284238DEST_PATH_IMAGE020
S342、读取第j个N叉树的叶结点所代表的渲染区域的渲染任务量
Figure 497045DEST_PATH_IMAGE021
S343、令
Figure 547040DEST_PATH_IMAGE022
S35、随机初始化匹配矩阵
Figure 819890DEST_PATH_IMAGE023
,其中
Figure 79970DEST_PATH_IMAGE023
Figure 362046DEST_PATH_IMAGE024
的零一矩阵,
Figure 969DEST_PATH_IMAGE025
代表GPU数目,
Figure 444720DEST_PATH_IMAGE026
代表N叉树的叶结点数,
Figure 192096DEST_PATH_IMAGE027
表示第j个N叉树的叶结点区域被分配到第i号GPU进行 渲染;
S36、根据以下优化目标求解矩阵
Figure 746706DEST_PATH_IMAGE028
;
Figure 385945DEST_PATH_IMAGE030
其中
Figure 355038DEST_PATH_IMAGE031
Figure 713339DEST_PATH_IMAGE032
分别代表矩阵
Figure 858012DEST_PATH_IMAGE033
Figure 643566DEST_PATH_IMAGE034
的第i行向量,
Figure 772059DEST_PATH_IMAGE035
代表向量内积,
Figure 199629DEST_PATH_IMAGE036
代表 矩阵
Figure 729967DEST_PATH_IMAGE037
所有单元之和,
Figure 686422DEST_PATH_IMAGE038
代表N叉树的叶结点总数,约束(1)保证每个划分区域只会被分 配到一块GPU,即各个划分区域不会被重复分配;约束(2)保证所有区域都会被分配到某块 GPU上;
S37、根据求解矩阵
Figure 771053DEST_PATH_IMAGE039
对渲染划分区域进行分配。
7.根据权利要求1-6中任一项所述的方法,其特征在于:还包括步骤S4:渲染主机接收所述GPU输出的渲染区域画面,并合并成为最终所需要的渲染结果。
8.一种实时渲染的多GPU并行调度装置,其特征在于:其包括如下单元:
渲染任务量获取单元,用于获取渲染任务,并对渲染任务中的待渲染场景模型文件中 的待渲染场景资产进行模型变换以及视口变换以确定各个物体资产的输出像素区域,并根 据所述输出像素区域确定待渲染任务的渲染任务量
Figure 736735DEST_PATH_IMAGE040
,其中
Figure 590421DEST_PATH_IMAGE002
分别代表构建几何体、构建粒子数、构建光照数据、 纹理编码数;
GPU渲染能力向量获取单元,用于获取GPU的渲染能力向量,所述GPU的渲染能力向量通过单位时间内所构建的几何体数目、单位时间内所编码的纹理、单位时间内所构建的光照数据、单位时间内所构建的粒子数目进行量化;
调度单元,用于根据所述GPU渲染能力向量以及待渲染任务的渲染任务量对渲染任务进行切分,随后任务发送到对应GPU进行渲染。
9.根据权利要求8所述的装置,其特征在于:所述调度单元具体为:根据待渲染任务的 渲染任务量
Figure 983356DEST_PATH_IMAGE040
以及GPU数目num对所述待渲染任务进行划分建 立N叉树,其中所述N叉树的叶子节点的渲染任务量均小于一渲染任务量阈值向量;并遍历N 叉树的叶结点,将叶结点所对应的区域分配到相应的GPU进行渲染。
10.一种非易失性存储器,其特征在于:所述存储器上存储有指令,所述指令被处理器执行时,用于实现如权利要求1-7中任一项所述的一种实时渲染的多GPU并行调度方法。
CN202211397246.8A 2022-11-09 2022-11-09 一种实时渲染的多gpu并行调度方法、装置及存储器 Active CN115509764B (zh)

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)

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

* Cited by examiner, † Cited by third party
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 中国航空工业集团公司西安航空计算技术研究所 一种图形处理器并行着色任务调度单元系统

Patent Citations (5)

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

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