本文翻译自Magnar Johnsen的一篇文章,该文章论述了在Citrix XenDesktop和VMware Horizon解决方案中,如果使用了NVIDIA GRID card的NVENC的功能,那么对于使用3D软件的用户来说,无论是性能还是用户体验,都有较大的提升。根据个人理解翻译,如有理解不对的地方,还请指正。谢谢!
原文如下:https://www.virtualexperience.no/2016/09/20/why-nvidia-nvenc-hardware-h-264-encoder-is-important-for-citrix-xendesktop-and-vmware-horizon/
Nvidia Grid显卡本身内置了H.264硬件编码器。借助Citrix XenDesktop和VMware Horizon的产品,你可以利用此功能对H.264协议流进行硬件编码。为何如此智能呢?如果想理解这个问题,那你首先得搞明白“点击光子时间”这个概念。这个时间是指当你按下鼠标按钮到你看到屏幕更新的时间。这整个过程花费的时间取决于你的网速,但也还有其它的因素。请参考下面的图帮助理解一下:
点击光子时间取决于上图中标注的所有因素,另外还包括计算机硬件的延时。对于计算机显示方面,或许有几毫秒的延时。
以一台本地电脑作为参考,一般点击光子时间大约有65毫秒,在这里没有网络和编码/解码延时的影响。一个PCoIP的会话,它的点击光子时间大约是215毫秒,所以大约150毫秒是消耗在LAN网络上。对于图像应用程序,移动图片,翻看文档和网页,肉眼可见的,据说低至120毫秒的话,成年人就感到有延时了,年轻人大概在100毫秒。
如想了解更多关于关于点击光子的内容,请参考此链接:http://www.virtualexperience.no/2016/03/07/how-to-use-click-to-photon-to-measure-end-to-end-latency/
利用NVIDIA NVENC功能,这个时间将减少大约50毫秒。这个已经在VMWare Blast Extreme 测试过了,现在Citrix XenDesktop 7.11也同样能实现。这意味着用户将得到更好的用户体验,或者说在不减少点击光子时间情况下,可以允许你的WAN链接多50毫秒的延时。为什么硬件编码比软件编码速度更快?因为GPU是并行处理而CPU是串行处理。
另外一个好处就是服务器使用H.264协议编码时,可以减少CPU时间。
我还写了另外一篇文章,是关于在启用H.264硬件解码的客户端,使用Autocad时如何减少点击光子时间,外加增加FPS速度和鼠标轮询缩短了点击光子时间。文章链接:http://www.virtualexperience.no/2016/08/09/optimizing-autocad-cursor-lag-on-xendesktop/
为什么从协议层面上增加FPS可以减少点击光子时间呢?那是因为16FPS流在每个zhen之间有约1000ms/16 = 62.5ms,所以这个时间相当于点击光子时间。如果你把FPS增加到60,那每帧之间只有大约16.7ms,所以这里几乎可以减少50ms的延时。但是增加FPS需要更多的带宽,所以不推荐WAN链接方式使用。这也会增加H.264编码和解码的负荷,这也是为什么GPU硬件编码和解码会让你在不增加服务器和客户端负荷的情况下,可以使用更多的FPS。
下面是一个16FPS~60FPS的一个区别动图,供大家参考一下,对不同的FPS有一个更直观的认识。
我已经做过虚拟VR的实验,就是像HTC Vive和Oculus Rift的应用程序跑在远程桌面一样。在这种场景下,你需要更短的点击光子时间或者说光子运动时间,以避免有眩晕的感觉。为了达到这个目的,我希望将来远程协议可以支持更高的FPS。当然你也需要更强大的GPU,底延时和高带宽。
所以我的建议是:如果你要为将来建立一个VDI平台,在移动内容上让用户得到更好的用户体验,所以一台启用GPU的VDI是必须的。如果你选择NVIDIA GRID卡,那你不但能得到GPU视频和图像加速,还可以利用NVENC得到更好的可扩展性和点击光子时间。目前,
Nvidia Grid M60 支持 36 个H.264 并发流,M10 拥有28个.