请选择 进入手机版 | 继续访问电脑版
首页 首页 资讯 行业快讯 查看内容

大屏同步问题,看这就够了

2019-6-11 15:39| 发布者: callia

摘要: 大屏同步问题,看这就够了

提起大规模可视化,同步是个始终绕不过去的话题。一旦考虑不当,该死的画面撕裂准会找上门来,使整个项目无法验收。


更加糟糕的是很多项目负责人往往还对同步一知半解,这就越发埋下了深深的隐患。为此,谨以此文献给那些垂头丧气的项目负责人,希望能为烈日炎炎中的他们带来一丝清凉。


垂直同步信号的前世


显示器显示画面时,电子枪从上到下逐行扫描,扫描完成后显示器就呈现一帧画面。然后电子枪回到初始位置进行下一次扫描。为了同步显示器的显示过程和系统的视频控制器,显示器会用硬件时钟产生一系列的定时信号。当电子枪换行进行扫描时,显示器会发出一个水平同步信号,简称 HSync;而当一帧画面绘制完成后,电子枪回复到原位,准备画下一帧前,显示器会发出一个垂直同步信号,简称 VSync。显示器通常以固定频率进行刷新,这个刷新率就是 VSync 信号产生的频率。



                            

CPU 计算好显示内容提交至 GPU,GPU 渲染完成后将渲染结果存入帧缓冲区,视频控制器会按照 VSync 信号逐帧读取帧缓冲区的数据,经过数据转换后最终由显示器进行显示。


 

最简单的情况下,帧缓冲区只有一个。此时,帧缓冲区的读取和刷新都都会有比较大的效率问题。为了解决效率问题,GPU 通常会引入两个缓冲区,即 双缓冲机制。双缓存机制即前后缓存。前缓存就是屏幕上最终看到的像素,而后缓存是绘制使用,后缓存绘制好一帧,通常就交换一次,写给前缓存,而显示器则从前缓存不断的读取数据。

 

图中f1,也称为交换帧率,f1决定了显卡一秒能绘制多少次。 显示器读取前缓存也存在一个频率,即f2,f2为刷新率,即显卡按照多少的频率把前缓存的数据给显示器绘制一次。可见用户最终看到的帧率是f1 和 f2的共同结果。实际的帧率f应该是在1秒内有多少个后缓存传递到了显示器。这样看f=min(f1,f2),即受这两个帧率的制约了。



前缓存处于被后缓存写而被显示器读的状态,那么这过程就极有可能发生读写冲突当视频控制器还未读取完成时,即屏幕内容刚显示一半时,GPU 将新的一帧内容提交到帧缓冲区并把两个缓冲区进行交换后,视频控制器就会把新的一帧数据的下半段显示到屏幕上,造成画面撕裂现象。它是由于交换帧率与刷新率不同步造成的。

 


为了解决这个问题,GPU 通常有一个机制叫做垂直同步(也简写 V-Sync),当开启垂直同步后,GPU 会等待显示器的 VSync 信号发出后,才进行新的一帧渲染和缓冲区更新。这相当于将应用程序交换缓冲区同步到垂直同步信号,这样可解决画面撕裂现象。


垂直同步信号的今生


在大屏项目中,单显卡多显示输出,多显卡多显示输出,甚至多台机器多个显示输出的应用环境非常普遍。在这种情况下,如何保证多个显示输出的内容同步就显得尤为重要。

 

   单显卡单显示输出


只需开启GPU的垂直同步机制,将应用程序交换缓冲区同步到垂直同步信号即可。

 

   单显卡多显示输出


显卡所有输出接口会多路复用一个时钟信号,这时多个输出设备刷新率一样,发出垂直同步信号的时间也一致。

 

   多显卡多显示输出


如下图所示:多块显卡输出多个显示画面,这时每块显卡都有自己的时钟频率。这就会存在虽然所有输出设备可能具有相同的刷新率,但发出垂直同步信号的时间不尽相同,从而导致整个系统不同步。

 


为此,需要在不同图形卡之间提供公共同步信号,以确保所有显示设备同时发出垂直同步信号。这个公共同步信号可由Framelock或Genlock来提供。


 

新一代NVIDIA Quadro多卡之间的公共同步信号由Quadro SYNCⅡ提供。


英伟达QuadroSYNC Ⅱ同步卡)

 

(多显卡同步效果图)

 


同步卡可确保所有显示设备同时发出垂直同步信号,然而要让画面流畅显示,还需要将应用程序交换缓冲区同步到垂直同步信号才行。

 

如下图所示:每个显示设备对应的节点现在都在渲染一个具有不同复杂度的场景,不同节点渲染各自场景所需的时间各不相同。


 

当每个节点以不同的速率运行时,用户就会感觉到在屏幕上出现撕裂。我们需要一种机制来确保每个节点同时交换。Swap Group在单个主机中提供同步多个GPUS。使用Swap Group,每个节点将等待,直到所有节点都完成了渲染后,才将应用程序交换缓冲区同步到共同的垂直同步信号,这样避免了画面撕裂。

 


另外,英伟达已经对Swap Group进行了封装。用户利用它时,只需在应用程序写入一段调用SwapGroup API的代码即可。并且NVIDIA还给出了具体的调用方法,如下图所示:

 


   多机器显示输出

 

Swap Barrier提供跨多台主机间的GPUS同步。使用Swap Barrier,每个主机将等待,直到所有主机都完成了渲染后,才将应用程序交换缓冲区同步到共同的垂直同步信号,这样避免了画面撕裂。当然应用程序调用Swap Barrier的方法跟调用Swap Group一样。

  

(机器之间的同步连接示意图)


大屏项目同步卡的选择


在大屏项目中,同步卡的选择也非常重要。可惜,很多项目经理对其也知之甚少。今天笔者就把这个问题也给大家彻底讲透。


现阶段显卡实现同步有三种方式,它们分别是2-WAY,NVLINK,QUADROSYNC ‖。



下面就让小编娓娓道来吧。


   2-WAY SLI同步方式。


首先、2-WAY SLI同步方式要求工作站或主板必须通过SLI认证才行。如,Dell/HP/Lenovo等OEM高端工作站就通过了SLI认证。


其次、2-WAY SLI同步方式只支持两块显卡之间的同步。


最后、只需一个SLI桥接器接口。


另外,目前支持SLI的主流NVIDIA显卡只有P4000、P5000、P6000。

 

   NVLINK同步方式

首先、NVLINK同步方式对机器没具体要求,只需其可安装上两块支持NVLINK的显卡即可。


其次、NVLINK同步方式也只支持两块显卡之间的同步。


最后,需要采购NVLINK桥接器。


另外,目前支持NVLINK同步放的专业显卡有GV100、GP100、RTX5000、RTX6000、RTX8000

 

   QUADRO SYNC ‖同步方式


首先、QUADRO SYNC ‖同步方式也对机器没有具体要求。只需能安装下几块显卡即可。


其次、一块QUADRO SYNC ‖最多可支持4块显卡之间的同步


最后、需要采购QUADROSYNC ‖同步卡。


另外,目前支持QUADRO SYNC ‖同步卡的专业显卡有P4000、P5000、P6000、GV100、GP100、RTX4000、RTX5000、RTX6000、RTX8000


这下您应该彻底明白了吧。在选择同步卡时,您可根据项目的实际情况在上面的三种同步方式中任选一种即可。

 

好了,大屏同步问题今天就介绍到这儿吧。以后凡是碰到工作站的任何问题,可电询北京科卓了!


更多精彩内容,加入ARC社群扫二维码或搜索(ID:arinchina),转载请注明版权和原文链接! 联系站长: +86 136 7918 4994




分享至:
| 人收藏

相关阅读

最新活动
  • 汽车之家618疯狂购车节 千万福利畅享网上车展
  • 2019 AR/VR技术教育教学创新应用研讨会 暨数字媒体设计师高级研修班通知 ...
  • 5G助推全球新经济变革,十万亿产业研讨盛会等你来
  • 长安里AR集贤丨微信小程序AR出手,惊爆全城

Copyright © 2013-2019 ARinChina增强现实   All Rights Reserved.陕ICP备13003260号