Blender渲染在神威超算中的并行优化方法及系统技术方案

技术编号:37875203 阅读:7 留言:0更新日期:2023-06-15 21:03
本公开提供了一种Blender渲染在神威超算中的并行优化方法及系统,包括:获取Blender待渲染任务的渲染场景数据,并对所述渲染场景数据进行分割,其中,分割的数量基于神威超算中节点的核组数目确定;对于分割后的渲染场景数据,分别采用独立进程利用不同核组的计算资源进行场景渲染;其中,每个核组对应一个独立进程;当所有独立进程均计算完毕,将各个核组的渲染结果进行合并,获得最终的渲染结果;其中,针对Blender渲染计算过程中开启降噪功能的情况,采用数据重叠区的方式解决数据依赖问题。采用数据重叠区的方式解决数据依赖问题。采用数据重叠区的方式解决数据依赖问题。

【技术实现步骤摘要】
Blender渲染在神威超算中的并行优化方法及系统


[0001]本公开属于应用软件移植优化
,尤其涉及一种Blender渲染在神威超算中的并行优化方法及系统。

技术介绍

[0002]本部分的陈述仅仅是提供了与本公开相关的
技术介绍
信息,不必然构成在先技术。
[0003]对于一款常用的应用软件,往往不适用于新一代神威超算(即国产神威新一代超级计算机系统)的高效运行,需要做大量的移植优化工作,期间总是有算法的实现过程或方法需要更改。如Blender的软件用原有的方法,每次场景渲染过程中都是以线程技术实现为主并且将所有数据放入加速器中,由于神威的特性,在具有高性能计算的从核中因为内存限制是不能存储大规模数据的,因此不能全部接收渲染场景的数据;另外由于神威在设计上是一个核组有64从核和一个主核,一个节点(类似一个cpu)有六个核组,在原有的线程技术上不具有很好的扩展性。因此设计方案在需要保证从核能存储下的情况,充分利用多核组的资源,并具有高扩展性,专利技术人发现,实现软件在神威上的高效移植,存在如下问题:
[0004](1)在渲染的计算中,因为分配的数据不均衡,导致不能合理的利用从核资源,或因为数据无法同时存进从核中,从而通信开销增大,最终导致运行效率减慢现象,或因为blender运用线程技术,导致神威的pthread技术使用时更局部,从而导致进入从核的数据量变小,也会引起通信开销增大,从而也会降低运行效率,增大运行成本。
[0005](2)线程技术扩展性较差在CPU或GPU的架构中只能在单节点内使用,在神威架构中只能在单核组或者特有的大共享模式下使用,不能充分使用计算资源。
[0006](3)Blender渲染降噪的过程,图像中每个噪音像素点是依赖周围像素点的数据,因此在移植优化过程中,还要考虑降噪过程中数据依赖的情况,采用数据交换方式通信开销必然再次增大。

技术实现思路

[0007]本公开为了解决上述问题,提供了一种Blender渲染在神威超算中的并行优化方法及系统,所述方案在国产神威上通过针对Blender的渲染场景数据进行分割,解决了场景渲染和降噪过程中不利于国产神威并行化的问题,且保证程序的正确性,虽然有一定的数据的冗余,但对于神威并行,将神威芯片的从核与主核有效利用起来,并增加了可扩展性,使计算资源不局限于一个核组甚至不局限于一个节点内。
[0008]根据本公开实施例的第一个方面,提供了一种Blender渲染在神威超算中的并行优化方法,包括:
[0009]获取Blender待渲染任务的渲染场景数据,并对所述渲染场景数据进行分割,其中,分割的数量基于神威超算中节点的核组数目确定;
[0010]对于分割后的渲染场景数据,分别采用独立进程利用不同核组的计算资源进行场
景渲染;其中,每个核组对应一个独立进程;
[0011]当所有独立进程均计算完毕,将各个核组的渲染结果进行合并,获得最终的渲染结果;其中,针对Blender渲染计算过程中开启降噪功能的情况,采用数据重叠区的方式解决数据依赖问题。
[0012]进一步的,所述将各个核组的渲染结果进行合并,获得最终的渲染结果,具体为:每个独立进程基于其对应核组的计算资源进行每一部分渲染场景数据的渲染,各进程之间没有数据通信;当所有独立进程均完成渲染时,通过MPI通信将各个独立进程渲染场景的RGB数据进行合并,获得最终的渲染结果。
[0013]进一步的,所述对所述渲染场景数据进行分割,具体为:按同一维度将渲染场景数据分割成匹配核组数量的若干部分。
[0014]进一步的,所述针对Blender渲染计算过程中开启降噪功能的情况,采用添加数据重叠区的方式解决数据依赖问题,具体为:在渲染场景数据分割时,对于分割后的渲染场景数据,其首行和尾行多取一行相邻的数据。
[0015]进一步的,对于每个独立进程,其仅在数据获取时多获取了冗余数据,在进行渲染计算时不进行数据交换。
[0016]进一步的,所神威超算每个节点包括六个核组,每个核组包括一个主核和64个从核。
[0017]根据本公开实施例的第二个方面,提供了一种Blender渲染在神威超算中的并行优化系统,包括:
[0018]数据分割单元,其用于获取Blender待渲染任务的渲染场景数据,并对所述渲染场景数据进行分割,其中,分割的数量基于神威超算中节点的核组数目确定;
[0019]渲染单元,其用于对于分割后的渲染场景数据,分别采用独立进程利用不同核组的计算资源进行场景渲染;其中,每个核组对应一个独立进程;
[0020]合并单元,其用于当所有独立进程均计算完毕,将各个核组的渲染结果进行合并,获得最终的渲染结果;其中,针对Blender渲染计算过程中开启降噪功能的情况,采用数据重叠区的方式解决数据依赖问题。
[0021]根据本公开实施例的第三个方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上运行的计算机程序,所述处理器执行所述程序时实现所述的一种Blender渲染在神威超算中的并行优化方法。
[0022]根据本公开实施例的第四个方面,提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现所述的一种Blender渲染在神威超算中的并行优化方法。
[0023]与现有技术相比,本公开的有益效果是:
[0024](1)本公开提供了一种Blender渲染在神威超算中的并行优化方法及系统,所述方案在国产神威上通过针对Blender的渲染场景数据进行分割,解决了场景渲染和降噪过程中不利于国产神威并行化的问题,且保证程序的正确性,虽然有一定的数据的冗余,但对于神威并行,将神威芯片的从核与主核有效利用起来,并增加了可扩展性,使计算资源不局限于一个核组甚至不局限于一个节点内。经过测试,修改前后,相对于源代码存在加速效果。相同数据规模,并行情况下,主从核计算时间加速17至28.5倍。
[0025](2)由于本公开所述方案是基于MPI(Message Passing Interface)标准实现的,在CPU和GPU架构此方法也可以适用,目前Blender软件并未实现MPI技术的模块,随着渲染场景数据的增大,以及场景更加复杂的情况下,单节点或者单张GPU,可能已经不能满足计算要求了,此方法增加了软件的可扩展性,提供了可以跨节点计算的可能性。
[0026]本公开附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本公开的实践了解到。
附图说明
[0027]构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。
[0028]图1为本公开实施例中所述的Blender线程层次关系示意图;
[0029]图2为本公开实施例中所述的数据分割示意图;
[0030]图3为本公开实施例中所述的数据分割后的渲染效果;
[0031]图4为本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种Blender渲染在神威超算中的并行优化方法,其特征在于,包括:获取Blender待渲染任务的渲染场景数据,并对所述渲染场景数据进行分割,其中,分割的数量基于神威超算中节点的核组数目确定;对于分割后的渲染场景数据,分别采用独立进程利用不同核组的计算资源进行场景渲染;其中,每个核组对应一个独立进程;当所有独立进程均计算完毕,将各个核组的渲染结果进行合并,获得最终的渲染结果;其中,针对Blender渲染计算过程中开启降噪功能的情况,采用数据重叠区的方式解决数据依赖问题。2.如权利要求1所述的一种Blender渲染在神威超算中的并行优化方法,其特征在于,所述将各个核组的渲染结果进行合并,获得最终的渲染结果,具体为:每个独立进程基于其对应核组的计算资源进行每一部分渲染场景数据的渲染,各进程之间没有数据通信;当所有独立进程均完成渲染时,通过MPI通信将各个独立进程渲染场景的RGB数据进行合并,获得最终的渲染结果。3.如权利要求1所述的一种Blender渲染在神威超算中的并行优化方法,其特征在于,所述对所述渲染场景数据进行分割,具体为:按同一维度将渲染场景数据分割成匹配核组数量的若干部分。4.如权利要求1所述的一种Blender渲染在神威超算中的并行优化方法,其特征在于,所述针对Blender渲染计算过程中开启降噪功能的情况,采用添加数据重叠区的方式解决数据依赖问题,具体为:在渲染场景数据分割时,对于分割后的渲染场景数据,其首行和尾行多取一行相邻的数据。5.如权利要求1所述的一种Blender渲染在神威超算中的并行优化方法,其特征在于,对于每个独立进程,其仅在数据获取时多获取了冗余数据,在进行渲染...

【专利技术属性】
技术研发人员:陈彦言徐希豪张琳
申请(专利权)人:济南超级计算中心有限公司
类型:发明
国别省市:

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

1