空间电磁环境的多gpu并行渲染系统及方法

文档序号:192779 发布日期:2021-11-02 浏览:35次 >En<

阅读说明:本技术 空间电磁环境的多gpu并行渲染系统及方法 (Multi-GPU parallel rendering system and method in space electromagnetic environment ) 是由 刘镇瑜 杨英科 霍烁烁 赵文杰 陈磊 燕明亮 李咏晋 谢婷婷 张会 宋磊 李子时 于 2021-06-30 设计创作,主要内容包括:本发明公开一种空间电磁环境的多GPU并行渲染系统,其包括:至少一个物理机,每个物理机上安装有至少一个用于进行渲染操作的GPU模块;GPU代理模块,安装在每个物理机上,用于识别物理机上GPU模块的配置、标识符,设置GPU模块的工作状态、参数,给GPU模块分配渲染任务,收集渲染结果;GPU虚拟服务器,用于管理GPU代理的数量、状态、可用资源,分发渲染任务、渲染参数,收集并融合渲染结果,支持GPU代理模块的动态添加、删除;电磁环境渲染模块,用于设置渲染参数,生成各个辐射源的电磁场及其坐标变换矩阵;通信总线,用于进行GPU代理模块、GPU虚拟服务器和电磁环境渲染模块之间的相互连接。本发明能够加速空间电磁环境渲染工作,无需改变硬件结构,扩展性强。(The invention discloses a multi-GPU parallel rendering system in a space electromagnetic environment, which comprises: each physical machine is provided with at least one GPU module for rendering operation; the GPU proxy module is arranged on each physical machine and used for identifying the configuration and the identifier of the GPU module on the physical machine, setting the working state and the parameters of the GPU module, distributing rendering tasks to the GPU module and collecting rendering results; the GPU virtual server is used for managing the number, the state and the available resources of the GPU agents, distributing rendering tasks and rendering parameters, collecting and fusing rendering results and supporting the dynamic addition and deletion of GPU agent modules; the electromagnetic environment rendering module is used for setting rendering parameters and generating electromagnetic fields and coordinate transformation matrixes of the radiation sources; and the communication bus is used for interconnecting the GPU proxy module, the GPU virtual server and the electromagnetic environment rendering module. The method can accelerate the rendering work of the space electromagnetic environment, does not need to change the hardware structure, and has strong expansibility.)

空间电磁环境的多GPU并行渲染系统及方法

技术领域

本发明涉及计算机与信息安全技术领域,尤其是涉及一种空间电磁环境的多GPU并行渲染系统及方法。

背景技术

电磁环境是由多个辐射源的电磁场叠加生成的。各个辐射源的电磁场存在着交叉、遮挡、透明等关系,从可视化角度看表现为颜色的深浅、明暗等。电磁环境一般的绘制方法是生成各个辐射源的电磁场,通过体绘制算法对电磁场进行绘制。空间电磁环境一般具有辐射源数量大、地理空间分散的特点,对电磁场数据的存储空间、算法绘制速度有很高要求,单GPU渲染环境一般难以满足上述要求。随着硬件性能的提升,多GPU配置的系统越来越普及,可以充分利用多GPU并行渲染能力,提升空间电磁环境渲染生成的速度。

目前,利用多GPU并行渲染的技术主要有以下三种:第一种是GPU硬件的物理拼接,代表性的是NVIDIA的SLI(可灵活伸缩的连接接口,Scalable Link Interface)技术和AMD的CrossFire(显卡交火)技术,它是将多块物理GPU逻辑上拼接成一个GPU,提升了单块GPU的显存、吞吐量等性能;第二种是帧交替渲染(Alternate Frame Rendering,AFR)技术,将不同帧交给不同的GPU来进行渲染;第三种是帧分割渲染(Split Frame Rendering,SFR)技术,将一帧分割成多个子画面,再将每个子画面交给不同的GPU来进行渲染。

GPU硬件的物理拼接技术主要解决的是大量电磁场数据频繁上传GPU,造成GPU显存抖动的问题;AFR技术的每一帧渲染是串行渲染方法;SFR技术的每个子画面渲染是串行渲染方法。

发明内容

为解决上述问题,本发明的目的是提供一种基于帧融合技术的空间电磁环境的多GPU并行渲染系统及方法,上述的帧是GPU渲染的结果信息,帧融合的技术特征主要有:(1)、不同的帧具有相同的相机参数,相同的颜色缓冲区和深度缓冲区参数;(2)、不同的帧渲染的几何图形不同。

为实现上述发明目的,本发明采用如下技术方案:

一种空间电磁环境的多GPU并行渲染系统,其包括:

至少一个物理机,每个物理机上安装有至少一个GPU模块,GPU模块用于进行渲染操作;

GPU代理模块,安装在每个物理机上,用于识别物理机上GPU模块的配置、标识符,设置GPU模块的工作状态、参数,给GPU模块分配渲染任务,收集渲染结果;

GPU虚拟服务器,用于管理GPU代理的数量、状态、可用资源,分发渲染任务、渲染参数,收集并融合渲染结果,支持GPU代理模块的动态添加、删除;

电磁环境渲染模块,用于设置渲染参数,包括相机参数的位置、方向、分辨率、远平面、近平面、上边界、下边界、左边界、右边界,辐射源参数的数量、位置、功率、辐射特性,刷新频率,生成各个辐射源的电磁场及其坐标变换矩阵;

通信总线,用于进行GPU代理模块、GPU虚拟服务器和电磁环境渲染模块之间的相互连接。

一种空间电磁环境的多GPU并行渲染方法,其包括以下步骤:

S1、启动GPU代理模块,识别物理机上的GPU模块,向GPU虚拟服务器发送注册信息;

S2、启动GPU虚拟服务器,受理GPU代理模块的注册信息,识别GPU代理模块,为物理机和GPU代理模块编号,为GPU模块编号;

S3、启动电磁环境渲染模块,识别GPU虚拟服务器,设置相机参数,设置辐射源参数,生成辐射源电磁场及其坐标转换矩阵,生成渲染任务并发送给GPU虚拟服务器进行处理;

S4、GPU虚拟服务器收到渲染任务后,将其分成若干子渲染任务并发送给GPU代理模块进行处理;

S5、GPU代理模块收到若干子渲染任务后,将一个子渲染任务分配到一个GPU模块进行渲染;

S6、物理机上的GPU模块执行渲染工作,渲染结果为一个颜色缓冲区和一个深度缓冲区;

S7、GPU代理模块收集物理机上GPU模块的渲染结果,并发送给GPU虚拟服务器;

S8、GPU虚拟服务器收到所有GPU代理模块的渲染结果后进行融合,对各个颜色缓冲区中的颜色值按其对应的深度缓冲区中的深度值进行融合,最终形成一张图片,这张图片代表当前相机视角下看到的空间电磁环境渲染效果,将结果图片发送给电磁环境渲染模块;

S9、电磁环境渲染模块收到渲染结果图片后,在图形界面上进行显示。

进一步地,上述的物理机为图形工作站、服务器、台式计算机、笔记本电脑、或平板电脑。

由于采用如上所述的技术方案,本发明具有如下优越性:

该空间电磁环境的多GPU并行渲染系统,其从空间电磁环境的生成和渲染方式出发,利用多GPU并行渲染能力,统一设置相机参数,将每个辐射源的电磁场分配给一个GPU模块进行渲染,渲染结果存放在颜色缓冲区和深度缓冲区,对渲染结果进行融合,最终形成一张图片,这张图片代表当前相机视角下看到的空间电磁环境渲染效果;改变相机参数、辐射源参数,重复以上过程能够看到不同的空间电磁环境渲染效果,对于时变辐射源设定渲染更新频率重复以上过程能够看到变化的空间电磁环境渲染效果。

该空间电磁环境的多GPU并行渲染系统,其能够同时利用多种配置、型号、品牌等各不相同的异构GPU资源,来加速空间电磁环境渲染工作,无需改变硬件结构。

该空间电磁环境的多GPU并行渲染系统,其扩展性强,非常便于分布式部署,也能够用于云上部署。

附图说明

图1是本发明空间电磁环境的多GPU并行渲染系统的示意图;

图2是本发明空间电磁环境的多GPU并行渲染方法的工作序列图;

图3是本发明空间电磁环境的多GPU并行渲染系统的内部通信示意图。

具体实施方式

下面结合附图和实施例对本发明的技术方案作进一步详细说明。

如图1所示,一种空间电磁环境的多GPU并行渲染系统,其包括:

至少一个物理机,每个物理机上安装有至少一个GPU模块,GPU模块用于进行渲染操作;所述的物理机为图形工作站、服务器、台式计算机、笔记本电脑、或平板电脑;

GPU代理模块,安装在每个物理机上,用于识别物理机上GPU模块的配置、标识符,设置GPU模块的工作状态、参数,给GPU模块分配渲染任务,收集渲染结果;

GPU虚拟服务器,用于管理GPU代理的数量、状态、可用资源,分发渲染任务、渲染参数,收集并融合渲染结果,支持GPU代理模块的动态添加、删除;GPU代理模块数量较多时,经由多个GPU虚拟服务器分开管理;

电磁环境渲染模块,用于设置渲染参数,包括相机参数的位置、方向、分辨率、远平面、近平面、上边界、下边界、左边界、右边界,辐射源参数的数量、位置、功率、辐射特性,刷新频率,生成各个辐射源的电磁场及其坐标变换矩阵;

通信总线,用于进行GPU代理模块、GPU虚拟服务器和电磁环境渲染模块之间的相互连接,便于实现数据收发、指令控制的传输;实现方式是DDS、HLA、TENA、或DIS。

如图2、3所示,一种空间电磁环境的多GPU并行渲染方法,其包括以下步骤:

S1、启动GPU代理,通过操作系统API、GPU驱动和图形API(OpenGL、Vulkan、DirectX、Mental)识别物理机上的GPU模块的数量、标识符、状态参数,以轮询方式向GPU虚拟服务器提交注册信息,该方式支持向GPU虚拟服务器动态加入GPU代理模块;轮询方式会定时向对端发送信息,直到响应为止;

S2、启动GPU虚拟服务器,受理GPU代理模块的注册信息,识别GPU代理模块,支持动态加入GPU代理模块,GPU虚拟服务器识别GPU代理模块后二者建立心跳信息连接,为物理机(GPU代理模块)编号1,…,N,为GPU模块编号1,…,L;心跳信息会定时向对端发送,直到系统退出或对端长时间无响应;随着并行GPU规模的扩大,通过多个GPU虚拟服务器,能够使每个GPU虚拟服务器管理一定数量的GPU代理模块;

S3、启动电磁环境渲染模块,识别GPU虚拟服务器,采用轮询方式;

S3.1、设置相机参数PC,包括:位置、方向、分辨率、远平面、近平面、上边界、下边界、左边界、右边界;

S3.2、设置辐射源参数PS,包括:数量、位置、功率、辐射特性;

S3.3、生成辐射源电磁场F,F是以辐射源为中心的三维标量场;

S3.4、生成辐射源电磁场F的坐标转换矩阵M,坐标转换矩阵M负责将辐射源电磁场F转换为以相机为中心的三维标量场;坐标转换矩阵M的生成方法采用先从辐射源局部坐标系变换到全局坐标系,再从全局坐标系变换到相机局部坐标系的步骤进行;坐标转换工作,可以在CPU模块完成,也可以在GPU模块完成,若在CPU完成,坐标转换完成后要将坐标转换矩阵M置为单位矩阵;

S3.5、生成渲染任务T,发送给GPU虚拟服务器;

渲染任务T包含渲染参数PR和渲染数据PD两部分,T={PR,PD};

渲染参数PR包括相机参数PC、颜色缓冲区格式CB(一般为32为的RGBA,根据GPU支持的属性而定)、深度缓冲区格式DB(为32位整型、16位整型、或24位整型,根据GPU支持的属性而定)、刷新频率,PR={PC,CB,DB};

渲染数据PD是所有辐射源电磁场数据及其转换矩阵的集合,PD={{F1,M1},…,{FK,MK}},K为辐射源的个数;

注:上述的步骤S3.1、S3.2、S3.3的启动顺序可以调换,轮询方式保证相互发现,心跳信息保证连接保持;

S4、GPU虚拟服务器收到渲染任务T后,

S4.1、将其分成若干子渲染任务,每个子渲染任务ti包含渲染参数和单个辐射源的渲染数据,ti={PR,{Fi,Mi}},i=1,…,K;K为辐射源的个数;

S4.2、将若干子渲染任务发送给GPU代理模块进行处理,子渲染任务的数量与GPU代理模块管理的空闲GPU数量一致;

S5、GPU代理模块收到若干子渲染任务后,

S5.1、将一个子渲染任务ti分配到一个GPU;

S5.2、根据渲染参数PR设置GPU状态,保证所有GPU的渲染状态是一致的,有利于步骤S8的融合;

S5.3、将子渲染任务的渲染数据上传到GPU模块;

S6、物理机上的GPU模块按照体绘制算法执行渲染工作,体绘制算法有多种,常用的有:光线投射法、足迹法、错切-变形法、频域法;

S7、GPU代理模块收集物理机上GPU模块的渲染结果,并发送给GPU虚拟服务器;

渲染结果为i为物理机的编号,p,…,q为物理机i上GPU模块的编号;为x号GPU渲染的颜色缓冲区,为x号GPU渲染的深度缓冲区;

S8、GPU虚拟服务器收到所有GPU代理模块的渲染结果后进行融合,形成最终的融合结果R,并将融合结果R传给电磁环境渲染模块进行显示;所有GPU的渲染结果为I={I1,…,IN},最终融合后的结果为R=Mix(I);融合方法Mix主要有两种,一种是按深度值覆盖;另一种是颜色按透明度、深度进行加权融合;

深度值覆盖融合方法:

最小

加权融合方法:

上式中,RGB(.)为取颜色操作,A(.)为取透明度操作,R(i,j)代表第i行第j列的像素点颜色;

S9、电磁环境渲染模块收到渲染结果R后,利用GDI或OpenGL在屏幕上绘制。

以上所述仅为本发明的较佳实施例,而非对本发明的限制,在不脱离本发明的精神和范围的情况下,凡依本发明申请专利范围所作的均等变化与修饰,皆应属本发明的专利保护范围之内。

9页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:基于虚拟场景的物体绘制方法、装置、设备及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!