光线路径追踪并行加速方法与流程

未命名 08-18 阅读:85 评论:0


1.本技术涉及图像渲染技术领域,具体涉及一种光线路径追踪并行加速方法。


背景技术:

2.光线路径追踪是一种基于物理的图像渲染算法,利用物理学的理论来模拟生活中各种光照效果、材质效果等等。其通过跟踪与真实世界传播方向相反的光线(即从眼睛出发到光源),将三维空间场景呈现为二维的平面图像。光线路径追踪能够很好地实现反射、折射、散射、阴影等一系列真实感渲染结果,并且可以模拟全局光照效果,被广泛应用于广告影视,动画游戏等领域。虽然光线路径追踪算法生成的图像逼真度高,但是该算法需要发射大量的光线进行计算,除了需要计算光源对场景中物体的影响,还需要计算被场景中物体反射、折射或者散射的光线对物体的影响。大量的计算时间消耗,使得光线路径追踪算法在电影制作中受到了很大限制,在保证渲染质量的前提下,提高渲染速度始终是该算法的研究热点之一。
3.(2)超级计算机并行计算
4.超级计算机是衡量一个国家科技发展水平和综合国力的重要标志,其具有功能强,运算速度快,存储容量大的特点,支持大型复杂应用课题的计算,多用于国家高科技领域和尖端技术研究。“神威
·
太湖之光”是世界上首次性能超过100pflops的超级计算机,也是我国首台具有完全自主知识产权的超级计算机。“神威
·
太湖之光”超级计算机使用国产sw26010异构众核处理器,该处理器采用片上阵列集群和分布式共享存储相结合的异构众核体系结构。如图1所示,一个处理器包含4个核组,每个核组包含1个主核、1个8*8从核阵列和1个内存控制器。sw26010处理器的核组间通过片上网络通信,并且可通过系统接口与外部设备相连。sw26010单处理器峰值计算能力为3tflops,访存带宽为130gb/s。“神威
·
太湖之光”超级计算机总共包含40960个sw26010异构众核处理器。
5.sw26010处理器的存储包含主存储器和ldm局部存储器。每个核组的主存为8gb,采用虚地址,分连续段空间和交叉段空间,连续段是每个核组的私有空间,在核组内连续编址。主核和从核均可直接访问本核组的连续段空间。交叉段是同一芯片内核组间的共享空间,主从核均能够访问全芯片的该分布共享区域。ldm局存是每个从核具有的一块高速本地局部数据存储空间,其大小只有128kb,但访存速度快。ldm可划分为私有段,连续共享段和数据cache段。ldm私有段是本从核快速访问的本地私有空间,ldm连续共享段是用于从核阵列内共享访问的空间,ldm数据cache段用于数据的cache访问。另外,从核可以发起dma操作实现ldm与主存之间的数据传输,提高从核访问主存效率。
6.现有技术缺陷
7.专利一(专利申请号:cn202110038868.0)提出了一种光线路径追踪加速方法,利用sw26010处理器的主核和从核并行构建场景k-d树,并基于构建的场景k-d树加速结构,采用光线路径追踪算法,加速了光线的遍历求交过程。该方法仅是对k-d树进行了并行加速构建,缩短了k-d树的构建时间,但是对于光线路径追踪算法中的其他渲染流程没有进行加速
优化,并行效率不足。
8.专利二(专利申请号:cn201410408789.4)提出了一种基于intel众核架构对等模式的光线路径追踪加速方法,设定cpu端和各个mic端的渲染流程任务,采用对等模式对分配到的屏幕分块区域开启多线程并行渲染,在一定程度上加速了光线路径追踪的计算渲染流程。该方法并没有充分考虑并行任务间的负载均衡,虽然任务启动时先评估了cpu和mic的计算性能,并对任务按性能进行了分配,但是按屏幕分块的方式并行粒度大,没有充分考虑在大粒度并行任务执行期间的负载均衡问题。
9.光线路径追踪算法能够很好地实现反射、折射、散射、阴影等一系列真实感渲染结果,并且可以模拟全局光照效果,被广泛应用于广告影视,动画游戏等领域。虽然光线路径追踪算法生成的图像逼真度高,但是该算法需要发射大量的光线进行计算,消耗了大量的时间,这使得光线路径追踪算法在电影制作中受到了很大限制,在保证渲染质量的前提下,提高渲染速度始终是该算法的研究热点之一。
10.现有的光线路径追踪渲染存在如下问题:
11.按屏幕分块的方式并行粒度大,没有充分考虑在大粒度并行任务执行期间的负载均衡问题;
12.仅对k-d树进行加速构建,在大规模渲染时,光线路径追踪算法流程本身的并行效率提升不明显;
13.因此,希望有一种技术方案来解决或至少减轻现有技术的上述不足。


技术实现要素:

14.本发明的目的在于提供一种光线路径追踪并行加速方法来至少解决上述的一个技术问题。
15.本发明的一个方面,提供一种光线路径追踪并行加速方法,所述光线路径追踪并行加速方法包括:
16.与同一主核连接的从核阵列启动后,从核阵列中的各个从核分别在与其连接的主核中获取待处理像素点数据;
17.每个从核根据自身所获取的待处理像素点数据进行首个光线路径追踪计算任务;
18.每个从核在首个光线路径追踪计算任务结束后,根据完成任务的时间开始竞争渲染与其连接的主核中所剩余的待处理像素点数据并对竞争后的待处理像素点数据进行光线路径追踪计算任务,直至完成所有像素点数据的渲染计算。
19.可选地,所述与同一主核连接的从核阵列启动后,从核阵列中的各个从核分别在与其连接的主核中获取待处理像素点数据包括:
20.从核阵列中的各个从核分别在与其连接的主核中获取待处理像素点坐标信息;
21.每个获取像素点坐标信息的从核通过其所获取的像素点坐标信息在所述主核中获取该像素点坐标信息对应的待处理像素点数据。
22.可选地,所述从核阵列中的各个从核分别在与其连接的主核中获取待处理像素点坐标信息包括:
23.每个从核进行如下操作:
24.通过dma方式从主核中快速获取para结构体数据,并在ldm连续共享段初始化像素
点渲染游标cur(i,x,y),用于标记像素块中第i个需要渲染的像素点坐标(x,y)。
25.可选地,所述每个从核根据自身所获取的待处理像素点数据进行首个光线路径追踪计算任务包括:
26.每个从核根据自身id初始化像素点坐标,根据内存偏移访问策略,通过dma快速获取主核中的对应像素点数据,并启动该从核的首个光线路径追踪计算任务,此时像素块中前cpe_nums个像素点被分配。
27.可选地,所述每个从核在首个光线路径追踪计算任务结束后,根据完成任务的时间开始竞争渲染与其连接的主核中所剩余的像素点数据并对竞争后的像素点数据进行光线路径追踪计算任务,直至完成所有像素点数据的渲染计算包括:
28.每个从核进行如下操作:
29.当首个光线路径追踪计算任务结束后,根据渲染游标找到第i个需要渲染的像素点坐标,并更新渲染游标值指向第i+1个待渲染的像素点坐标,然后开始当前像素点的渲染计算任务。
30.可选地,所述内存偏移访问策略包括:
31.通过渲染游标的i值和像素点数据在内存中偏移步长stride的乘积,得到第i个像素点在主核中的指针起始地址addrsrc,通过数据类型size和偏移步长stride的乘积可计算出数据在内存中的长度length,根据数据的起始地址和长度,可快速取出像待处理像素点数据,结合dma传输,将待处理像素点数据传至从核。
32.可选地,在所述与同一主核连接的从核阵列启动后,从核阵列中的各个从核分别在与其连接的主核中获取待处理像素点数据之前,所述光线路径追踪并行加速方法进一步包括:
33.主核进行场景数据构建和图像帧的分块工作,从而获取各个待处理像素块。
34.可选地,在所述主核进行场景数据构建和图像帧的分块工作,从而获取各个待处理像素块之后,在所述与同一主核连接的从核阵列启动后,从核阵列中的各个从核分别在与其连接的主核中获取待处理像素点数据之前,所述光线路径追踪并行加速方法进一步包括:
35.主核进行光线路径追踪渲染前的数据预处理工作,在光线路径追踪算法函数入口前,构建主从dma快速传输结构体para,获取大共享模式从核阵列的计算核心数cpe_nums,并将像素块参数、模型采样值和cpe_nums信息赋值给para结构体,启动从核阵列。
36.有益效果
37.本技术的光线路径追踪并行加速方法通过从核阵列的像素竞争策略,确保从核阵列中像素点并行渲染任务的负载均衡。
附图说明
38.图1是本技术一实施例的光线路径追踪并行加速方法的流程示意图。
39.图2是本技术一实施例的sw26010异构众核处理器架构示意图。
40.图3是本技术一实施例的光线路径追踪并行加速方法执行的流程示意图。
41.图4是本技术一实施例的基于像素点的光线路径追踪并行架构图。
具体实施方式
42.为使本技术实施的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行更加详细的描述。在附图中,自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。所描述的实施例是本技术一部分实施例,而不是全部的实施例。下面通过参考附图描述的实施例是示例性的,旨在用于解释本技术,而不能理解为对本技术的限制。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。下面结合附图对本技术的实施例进行详细说明。
43.图1是本技术一实施例的光线路径追踪并行加速方法的流程示意图。
44.如图1所示的光线路径追踪并行加速方法包括:
45.与同一主核连接的从核阵列启动后,从核阵列中的各个从核分别在与其连接的主核中获取待处理像素点数据,具体而言,在本实施例中,各个从核在像素点级别对像素块进行拆分,从而获取待处理像素点数据;在实际工作中,主核生成图像帧,每个图像帧可以分割成若干像素块,而每个像素块又可以被拆分成多个像素点。
46.每个从核根据自身所获取的待处理像素点数据进行首个光线路径追踪计算任务;
47.每个从核在首个光线路径追踪计算任务结束后,根据完成任务的时间开始竞争渲染与其连接的主核中所剩余的待处理像素点数据并对竞争后的待处理像素点数据进行光线路径追踪计算任务,直至完成所有像素点数据的渲染计算。
48.在本实施例中,所述与同一主核连接的从核阵列启动后,从核阵列中的各个从核分别在与其连接的主核中获取待处理像素点数据包括:
49.从核阵列中的各个从核分别在与其连接的主核中获取待处理像素点坐标信息;
50.每个获取像素点坐标信息的从核通过其所获取的像素点坐标信息在所述主核中获取该像素点坐标信息对应的待处理像素点数据。
51.在本实施例中,所述从核阵列中的各个从核分别在与其连接的主核中获取待处理像素点坐标信息包括:
52.每个从核进行如下操作:
53.通过dma方式从主核中快速获取para结构体数据,并在ldm连续共享段初始化像素点渲染游标cur(i,x,y),用于标记像素块中第i个需要渲染的像素点坐标(x,y)。
54.在本实施例中,所述每个从核根据自身所获取的待处理像素点数据进行首个光线路径追踪计算任务包括:
55.每个从核根据自身id初始化像素点坐标,根据内存偏移访问策略,通过dma快速获取主核中的对应像素点数据,并启动该从核的首个光线路径追踪计算任务,此时像素块中前cpe_nums个像素点被分配。
56.在本实施例中,所述每个从核在首个光线路径追踪计算任务结束后,根据完成任务的时间开始竞争渲染与其连接的主核中所剩余的像素点数据并对竞争后的像素点数据进行光线路径追踪计算任务,直至完成所有像素点数据的渲染计算包括:
57.每个从核进行如下操作:
58.当首个光线路径追踪计算任务结束后,根据渲染游标找到第i个需要渲染的像素点坐标,并更新渲染游标值指向第i+1个待渲染的像素点坐标,然后开始当前像素点的渲染
计算任务。
59.在本实施例中,所述内存偏移访问策略包括:
60.通过渲染游标的i值和像素点数据在内存中偏移步长stride的乘积,得到第i个像素点在主核中的指针起始地址addrsrc,通过数据类型size和偏移步长stride的乘积可计算出数据在内存中的长度length,根据数据的起始地址和长度,可快速取出像待处理像素点数据,结合dma传输,将待处理像素点数据传至从核。
61.在本实施例中,在所述与同一主核连接的从核阵列启动后,从核阵列中的各个从核分别在与其连接的主核中获取待处理像素点数据之前,所述光线路径追踪并行加速方法进一步包括:
62.主核进行场景数据构建和图像帧的分块工作,从而获取各个待处理像素块。
63.在本实施例中,在所述主核进行场景数据构建和图像帧的分块工作,从而获取各个待处理像素块之后,在所述与同一主核连接的从核阵列启动后,从核阵列中的各个从核分别在与其连接的主核中获取待处理像素点数据之前,所述光线路径追踪并行加速方法进一步包括:
64.主核进行光线路径追踪渲染前的数据预处理工作,在光线路径追踪算法函数入口前,构建主从dma快速传输结构体para,获取大共享模式从核阵列的计算核心数cpe_nums,并将像素块参数、模型采样值和cpe_nums信息赋值给para结构体,启动从核阵列。
65.本技术克服了现有技术中的缺点,提出了一种光线路径追踪的加速方法。该方法基于sw26010处理器从核阵列的计算优势,在像素点级别设计了光线路径追踪的并行渲染策略、从核阵列并行任务间的负载均衡策略和主从核数据传输的内存偏移策略,有效提升了光线路径追踪算法的并行效率,加速了光线路径追踪算法的计算流程,缩短了图像渲染时间。
66.下面以举例的形式对本技术进行进一步详细阐述,可以理解的是,该举例并不构成对本技术的任何限制。
67.在本实施例中,本技术的应用平台是基于sw26010处理器的主-从核异构体系(图2所示),由主核负责图像帧分块和场景数据的构建,从核阵列发挥计算优势,基于像素点对视图块进行并行光线路径追踪计算,每个从核负责若干像素点的光线路径追踪计算,有效提升了光线路径追踪并行效率,加速了光线路径追踪的计算渲染流程。由于光线路径追踪算法中不同像素点间的射线碰撞场景存在差异,像素点间的光线路径追踪计算量不同,基于从核阵列的ldm共享机制,我们设计了从核阵列的像素竞争策略,确保从核阵列中像素点并行渲染任务的负载均衡。另外,为了加速从核对主存数据的访问,我们使用内存偏移策略,提升了主存数据的查找访问效率。算法总体流程图如图3所示。
68.在本实施例中,step1:主核进行场景数据构建和图像帧的分块工作,从而获取各个待处理像素块;
69.step2:主核进行光线路径追踪渲染前的数据预处理工作,在光线路径追踪算法函数入口前,构建主从dma快速传输结构体para,获取大共享模式下的从核阵列的计算核心数cpe_nums,并将像素块参数、模型采样值和cpe_nums信息赋值给para结构体,启动从核阵列;
70.step3:从核阵列启动后进行数据预处理,通过dma方式从主存中快速获取para结
构体数据,并在ldm连续共享段初始化像素点渲染游标cur(i,x,y),用于标记像素块中第i个需要渲染的像素点坐标(x,y),ldm连续共享段数据可确保从核阵列中的核心共享访问,渲染游标使用锁保护机制,避免共享访问冲突。
71.step4:参见图4,基于sw26010p芯片从核阵列的高性能计算优势,在本方法中,各个从核在像素点级别对待处理像素块进行拆分,进行从核阵列并行光线路径追踪的计算渲染,算法对整个光线路径追踪流程进行了最大程度的并行化,由于光线路径追踪算法中光线间的相互独立性,从核阵列可以方便的并行执行各像素点内采样光线的bvh碰撞检测,体积积分计算,表面着色计算等光线路径追踪流程,有效提升了并行效率。每个从核负责的像素点计算任务数则由从核阵列像素竞争策略决定。
72.step5:参见图4,为确保像素点级别的渲染任务负载均衡,本方法使用从核阵列像素竞争策略,首先,每个从核根据自身id初始化像素点坐标,结合内存偏移访问策略,通过dma快速获取主存中的对应像素点数据,并启动该从核的首个光线路径追踪计算任务,此时像素块中前cpe_nums个像素点被分配,渲染游标的值如公式1。当首个光线路径追踪计算任务结束后,各从核根据完成任务的时间开始竞争渲染剩余的像素点。即:当第n个从核完成当前计算任务后,会根据渲染游标找到第i个需要渲染的像素点坐标,并更新渲染游标值指向第i+1个待渲染的像素点坐标,然后开始当前(第i个)像素点的渲染计算任务,各从核不断竞争,直至完成所有像素点的渲染计算。
[0073][0074]
step6:为了使从核快速查找并获取像素点坐标对应的主存像素点数据,我们采用内存偏移访问策略,通过渲染游标的i值和像素点数据在内存中偏移步长stride的乘积,得到第i个像素点在主存中的指针起始地址addrsrc,通过数据类型size和偏移步长stride的乘积可计算出数据在内存中的长度length,根据数据的起始地址和长度,可快速取出像素点数据块,结合dma传输,可将像素点数据块快速传至从核;
[0075]
add
src
=src
origin
+i*stride
[0076]
length=size
float
*stride
[0077]
step7:大共享从核阵列完成对像素块的光线路径追踪计算渲染,各从核将计算后的数据通过dma传输给主核,由主核负责汇总渲染数据;
[0078]
step8:判断是否渲染完成所有的像素块,如果存在未渲染的像素块,则重新从step2开始执行,直至完成所有像素块的渲染;
[0079]
step9:结束渲染,释放资源。
[0080]
本技术的一种光线路径追踪并行加速方法,具有如下优点:
[0081]
a)充分发挥sw26010处理器从核阵列的高性能并行计算优势,对像素块实行像素点级并行光线路径追踪计算渲染,对整个光线路径追踪流程进行了最大程度的并行化,有效提升了并行效率,大大缩短了光线路径追踪算法的计算时间;
[0082]
b)从核阵列的像素竞争策略,使得各个从核可以根据自身像素点计算量自适应调
整获取的任务数,确保了从核间像素级任务并行的负载均衡;
[0083]
c)内存偏移策略,使得从核可以快速查找和读取主存数据,节约了数据访存时间;
[0084]
d)可扩展至多主核大规模渲染,实现复杂场景的高度真实感渲染加速。
[0085]
虽然,上文中已经用一般性说明及具体实施方案对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。

技术特征:
1.一种光线路径追踪并行加速方法,其特征在于,所述光线路径追踪并行加速方法包括:与同一主核连接的从核阵列启动后,从核阵列中的各个从核分别在与其连接的主核中获取待处理像素点数据;每个从核根据自身所获取的待处理像素点数据进行首个光线路径追踪计算任务;每个从核在首个光线路径追踪计算任务结束后,根据完成任务的时间开始竞争渲染与其连接的主核中所剩余的待处理像素点数据并对竞争后的待处理像素点数据进行光线路径追踪计算任务,直至完成所有像素点数据的渲染计算。2.如权利要求1所述的光线路径追踪并行加速方法,其特征在于,所述与同一主核连接的从核阵列启动后,从核阵列中的各个从核分别在与其连接的主核中获取待处理像素点数据包括:从核阵列中的各个从核分别在与其连接的主核中获取待处理像素点坐标信息;每个获取像素点坐标信息的从核通过其所获取的像素点坐标信息在所述主核中获取该像素点坐标信息对应的待处理像素点数据。3.如权利要求2所述的光线路径追踪并行加速方法,其特征在于,所述从核阵列中的各个从核分别在与其连接的主核中获取待处理像素点坐标信息包括:每个从核进行如下操作:通过dma方式从主核中获取para结构体数据,并在ldm连续共享段初始化像素点渲染游标cur(i,x,y),用于标记像素块中第i个需要渲染的像素点坐标(x,y)。4.如权利要求3所述的光线路径追踪并行加速方法,其特征在于,所述每个从核根据自身所获取的待处理像素点数据进行首个光线路径追踪计算任务包括:每个从核根据自身id初始化像素点坐标,根据内存偏移访问策略,通过dma快速获取主核中的对应像素点数据,并启动该从核的首个光线路径追踪计算任务,此时像素块中前cpe_nums个像素点被分配。5.如权利要求4所述的光线路径追踪并行加速方法,其特征在于,所述每个从核在首个光线路径追踪计算任务结束后,根据完成任务的时间开始竞争渲染与其连接的主核中所剩余的像素点数据并对竞争后的像素点数据进行光线路径追踪计算任务,直至完成所有像素点数据的渲染计算包括:每个从核进行如下操作:当首个光线路径追踪计算任务结束后,根据渲染游标找到第i个需要渲染的像素点坐标,并更新渲染游标值指向第i+1个待渲染的像素点坐标,然后开始当前像素点的渲染计算任务。6.如权利要求5所述的光线路径追踪并行加速方法,其特征在于,所述内存偏移访问策略包括:通过渲染游标的i值和像素点数据在内存中偏移步长stride的乘积,得到第i个像素点在主核中的指针起始地址addrsrc,通过数据类型size和偏移步长stride的乘积可计算出数据在内存中的长度length,根据数据的起始地址和长度,可快速取出像待处理像素点数据,结合dma传输,将待处理像素点数据传至从核。7.如权利要求1所述的光线路径追踪并行加速方法,其特征在于,在所述与同一主核连
接的从核阵列启动后,从核阵列中的各个从核分别在与其连接的主核中获取待处理像素点数据之前,所述光线路径追踪并行加速方法进一步包括:主核进行场景数据构建和图像帧的分块工作,从而获取各个待处理像素块。8.如权利要求7所述的光线路径追踪并行加速方法,其特征在于,在所述主核进行场景数据构建和图像帧的分块工作,从而获取各个待处理像素块之后,在所述与同一主核连接的从核阵列启动后,从核阵列中的各个从核分别在与其连接的主核中获取待处理像素点数据之前,所述光线路径追踪并行加速方法进一步包括:主核进行光线路径追踪渲染前的数据预处理工作,在光线路径追踪算法函数入口前,构建主从dma快速传输结构体para,获取大共享模式从核阵列的计算核心数cpe_nums,并将像素块参数、模型采样值和cpe_nums信息赋值给para结构体,启动从核阵列。

技术总结
本申请公开了一种光线路径追踪并行加速方法。所述光线路径追踪并行加速方法包括:与同一主核连接的从核阵列启动后,从核阵列中的各个从核分别在与其连接的主核中获取待处理像素点数据;每个从核根据自身所获取的待处理像素点数据进行首个光线路径追踪计算任务;每个从核在首个光线路径追踪计算任务结束后,根据完成任务的时间开始竞争渲染与其连接的主核中所剩余的待处理像素点数据并对竞争后的待处理像素点数据进行光线路径追踪计算任务,直至完成所有像素点数据的渲染计算。本申请的光线路径追踪并行加速方法通过从核阵列的像素竞争策略,确保从核阵列中像素点并行渲染任务的负载均衡。务的负载均衡。务的负载均衡。


技术研发人员:马广浩 魏志强 俞茂学 王玉成 贾东宁 宋佳颖 许佳立
受保护的技术使用者:崂山国家实验室
技术研发日:2023.05.18
技术公布日:2023/8/16
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐