奔腾竟能平i7?CPU在VR应用中的作用探究

  • 来源:微型计算机
  • 关键字:奔腾,CPU,VR
  • 发布时间:2016-12-01 11:38

  花买奔腾的钱,获得i7的性能,这怎么想都是一件值得期待,但不怎么可能实现的梦想。两者价格和规格上的巨大差异,几乎是无法逾越的鸿沟。然而,网上有“大神”说VR应用中“奔腾真的能媲美i7”,玩VR只要显卡性能好就行了,你相信吗?

  从概念到爆发,VR在过去短短的1年中,已经从投资人的小圈子话题,变成了被大众所熟知的舆论焦点。不过当前真正谈得上好体验的,还得算基于PC等高性能计算平台的VR产品,比如高性能PC加HTC Vive等装备。原因无它,自然是强大的计算性能。

  但在此之前,我们听到的评论、看到的文章无一不是在强调高性能显卡对V R应用的帮助,却少有说到CPU的作用。这和以往PC在显示器上玩3D游戏的时代,强调配置均衡的原则显然不同。

  让人难以信服的“基准”测试

  显卡被无限放大,CPU被极大忽略。这是VR时代的新常态,还是大家的臆断?在写下这篇文章之前,笔者看到网络上各路大神的结论惊人一致,大意无外乎:“VR时代CPU可以忽略不计,显卡好就行了”。其中还有找来数十种平台用测试数据来说话,证明在显卡给力的情况下,搭配奔腾CPU的系统都能追平搭配i7 CPU的系统。

  初看这些众口一词的说法时,笔者也想当然地以为这是真理了,更何况还有某网站“数十种平台倾巢而出……”的“大作”佐证?。直到笔者偶然一次心血来潮,仔细观看了这些文章的测试内容和测试方法后,深不以为然。说起来配件众多、平台丰富,但实际的测试内容却非常单薄,仅仅依靠Steam平台的VR PerformanceTest作为参考依据。

  Steam平台是非常出名的内容分平台,而且研发过VR定位系统—lighthoues,没错,就是大名鼎鼎的HTCVive采用的那套定位装置。所以Steam作为重量级的VR硬件合作伙伴,也就顺理成章得成为了当前最主要的VR内容平台。也可能鉴于此,不太专业的用户会将Steam推出的VR验证系统VRPerformance Test的结果看作是行业准则、共识。实际上了解这套系统的玩家会知道,这就跟微软从Windows7系统开始推出的系统性能验证机制一样,虽然官方,但纯粹是个仅供“娱乐消遣”性质的参考,只能大体将硬件区分为高、中、低几个档次。然而比较尴尬的是,当前VR应用领域还没有一款称得上标杆,且被大家广泛认可的基准性能测试工具。因此,我们要想获得VR体验相关的真实硬件性能水平,除了基于自己的真实应用需求,在实际的软件中对比测试外,真的很难获得有实用价值的间接参考。至于本文一开始我们提到的,CPU是否在VR时代真的没什么大用,应该在新常态中被无限弱化?这个问题,笔者觉得有必要用当前被行业使用较多的真实应用来一试真假。

  因为在笔者所能接触到的技术层面,在理论分析中CPU无论如何也不该被忽视,无用论更是无从谈起。因此,接下来笔者将简单介绍我所能知道的VR应用和普通应用,理论上对硬件系统的要求,重点讲讲不同之处。之后再结合真实的应用和不同的硬件平台,来向大家展示一个相对比较真实、有一定参考价值的体验结果。

  VR应用和普通应用对硬件的需求确有不同

  很多人不知道,VR其实并不是个新技术,从技术原理和原型机等角度来说,这个技术已经出现几十年了。早期是军方的必备良品,最早见于英军的战场医疗培训等等。之所以在今年才得以在民用领域爆发,也并不是技术原理获得了重大突破,而是得益于PC芯片的持续发展,PC的性能终于能满足体验VR的需求了。当然,由于整个VR系统的第一步就是解决视觉欺骗,让人眼看到的以为是另一个真实的世界。所以与视觉直接相关的技术和硬件受到了最大程度的关注,比如大家当前一提到VR就会联想到一个盖在头上的大眼睛罩子—头显。而与头显搭配的系统上,也自然最在意直连头显的显卡。因为在几乎所有VR宣传中,我们都能听到眩晕是VR体验大敌,提高流畅度是解决眩晕的最佳方式,而提高视觉流畅度自然是显卡的主要工作……再加上过去几年,显示芯片巨头NVIDIA等确实在VR显示输出上做了不少事情,以至于显卡在VR爆发初期的作用被过度曝光。然而,实际情况又是如何呢?

  看重单帧延迟而非纯高帧率

  实际情况是,针对显示器也罢、针对VR头显也罢,PC系统的工作都是图形渲染。而图形渲染是系统整体运作的有机组合,其中显卡确实扮演着举足轻重的角色。但在从显示器转变成为VR头显提供图像渲染的过程中,相比GPU的渲染流程,CPU的调度工作流程的变动也不小。计算机图形渲染有个原则值得大家注意,无论是否针对VR,都是先CPU完成预处理等任务调度,再由GPU跟进完成一帧的渲染,最后输出。

  传统的显示器模式,处理器会提前获取和处理好几组调度信息,在处理N+1帧的预处理信息时,前一帧的N的渲染工作就可以开始执行了。所以从整个周期来看,除了第一个预处理和末尾帧的渲染时,是CPU和GPU单独工作外,其他时间两者都很好地保持了计算的连续性,看起来更像是一个并行过程。

  然而V R应用中,头显对延迟的要求异常严苛,任何多余的输出等待都是致命的体验杀手。为了应付转头等动作带来的画面快速切换需求,不得不要求整个系统降低预处理阶段的等待。所以在以往先预处理N条指令的方式,将导致系统的单帧输出延迟明显增加。这倒逼整个系统改变原来看起来更“并行”的处理方式,改为微观上更“串行”的处理方式。

  这种改变看起来像是一种倒退,传统理解上并行往往比串行更好,整体时间上,也是并行的平均帧率表现更出色一些。但在V R应用上,帧和帧之间的延迟表现往往比单一屏幕下的刷新率重要。以往显示器是固定视角,第一帧慢了几十毫秒之后,每一帧都慢这么多,大家依旧会觉得这是一个连贯的观看体验。然而V R体验时,用户随时有可能会转头,视角变化时,这种几十毫秒级别的延迟就会带来严重的前庭视觉不匹配难题。说直白点,用户会大概率出现恶心头晕的情况。而看起来效率不那么高的串行处理方式恰恰就是为了降低这种不适感,因为这种方式的帧切换之间的输出延迟会更低。

  以输出第N+2帧来举例,传统的并行方式,会因为预处理而延误当前输出帧的处理时间,让GPU闲置等待。而串行的方式,让G PU等待当前输出帧渲染工作的,只有当前帧预处理的少量时间。所以单独看帧切换的表现上,串行的效率反而更高。

  单纯的软件优化治不了本

  在行业内部,自然有人想到过新的V R渲染要求下,无论哪种渲染流程,都会对CPU提出较高要求,优化CPU工作流程能降低整体延迟,提高体验。比如大名鼎鼎的Steam,就在自己的Steam VR中,提出了一种更先进的调度方式,让CPU抢在GPU渲染完上一帧时,进入下一帧的预处理流程。等G PU完成这一渲染过程时,下一帧的预处理信息已经完成一半,GPU就能立即开始下一帧的渲染,而CPU则继续完成剩下一半的预处理,以辅助GPU完成整个帧的渲染工作。

  Steam VR这个办法改进GPU等待时间,能够有效提高G PU利用率。在实验评估中,这种方式能够将同平台G PU的利用率提高30%甚至更多,直接好处就是VR游戏中获得翻倍的游戏帧率和低了近一半的延迟。

  也许正是这个过程优化的效果立竿见影,才让不少业内人士觉得CPU的重要性已经大为降低,甚至可以忽略,关键还得看显卡性能。然而,这个方法依旧不能彻底解决CPU瓶颈,而且还带来了一个新的问题—额外的3ms MTP延迟。

  单帧延迟降低,这是倒逼整个系统改变原来看起来更“并行”的处理方式,改为微观上更“串行”的处理方式的主要原因。但通过上文介绍,你可以看到,无论怎么优化,单线程的图形渲染在GPU处理N+1和N+2帧之间都存在间隙,主要是要停下来等待CPU处理N+2帧渲染的各种预处理工作。理论上讲,无论如何优化,这个等待时间是没有办法完全消除的。但是处理N+2帧预处理的时间长短,则跟C PU性能息息相关,提高处理器性能、优化处理器处理V R应用时的调度机制,最终能将这个延迟降低到忽略不计。

  均衡依然重要!

  也正因为有这样的理论认知,笔者并不认为CPU应该在VR应用中被忽略。与之相反,提高CPU的性能,理论上对VR体验的改善会有显著效果,比如帧延迟的降低、平均帧率的提高等等。在CPU性能不济的时候,显卡用得再好,也只会陡增GPU闲置率而已。也许你会看到传统意义上的平均帧率并不低,但是在转头等最常见的VR应用中,你却依旧有“卡顿”这种和帧率并不匹配的实际体验感。

  那么问题来了,我们的理论分析和网络上大量的结论甚至所谓的评测结果并不相符。

  搭配同一张显卡时,究竟奔腾能不能平i7?实际的V R应用中,不同平台的性能差异是否和我们的理论分析一致?使用同一张显卡,却搭配不同规格C P U时,系统之间的差异究竟会有多大呢?在没有权威的基准测试软件时,我们觉得只有实际测试最见分晓。

  性能实测

  当前大多数桌面VR应用都会提到推荐的硬件配置,通常显卡的最低要求都是GTX 970水平,一般推荐GTX1070或更好,而处理器都推荐酷睿i5及其以上。所以测试平台的选择上,笔者选了GTX 970和GTX 1070两张显卡。至于本文重点讨论的CPU,笔者觉得不应该只有i7、i5两档,还应该算上i3甚至奔腾。不过笔者手边一时没有奔腾处理器,决定先看看i3的测试情况,如果有必要打算屏蔽掉超线程技术,并降低主频来模拟奔腾。

  奔腾想平i7?真的只是梦想

  坦白说,我们也希望售价不到i725%的奔腾能上演奇迹,但很显然现实是残酷的。笔者首先对比了GTX 970显卡在搭配i3、i5、i7三个处理器平台时的表现。在HTC Vive平台经典的《布鲁克海文实验》中,我发现一个很有意思的情况,在搭配i5和i7时,显卡的平均占用率会高达80%以上,而i3平台却不能让显卡的占用率超过75%。这足以说明在i3上,已经出现因CPU的性能不够,导致GPU需要花大量时间等待预处理完成的情况出现。注意,此时i3处理器的占用率已经达到85%以上,与之相比i7和i5大约在22%和50%左右,余量明显。反映到最终的游戏体验中,i3平台的平均帧率只有66帧,明显低于i5平台的70fps和i7平台的82fps水平。至于比i3还少两个线程的奔腾处理器,我相信其处理器占用率不仅会居高不下在满载附近徘徊,而且GPU的最高占用率应该不会超过i3的水平,也就是在75%以下。平均帧和i7平台的差距就更明显了。

  接下来换个对显卡性能要求更低的,来自VRshow的A-10,这是款FPS游戏,虽说对显卡要求并不高,但是由于转头频繁,对延迟的要求非常高。同样是这三个平台,我们发现首先是CPU的平均占用率大幅度下降,i7平台甚至不到20%;i5平台约43%;i3平台差不多在70%内。与之对应的G P U最高占用率也仅仅63%、61%和55%。但就平均帧率来说,三个平台的差异还真不像CPU占用率差异那么明显,分别为103fps、101fps和96fps。可见,对图形处理要求不高的V R游戏,i3级别的处理器完全能满足传统意义上的流畅需求,因为此时因CPU导致的GPU等待并不严重。但是实际体验3个平台,你会发现只有i3平台在转头动作频繁的游戏场景中,有明显的卡顿或迟滞发生,带给我的直观游戏体验明显不如i5和i7平台流畅,这和测试成绩的平均帧差异很小的结果完全不一致。在对图形要求其实并不特别高,GPU占用并不夸张的情况下,只能说明i3在某些转换特别快,完全没有预先判断和处理的帧切换中,还是成了拖后腿的角色。

  再换备受玩家好评的VR游戏《雇佣兵》,测试的结果又有所不同。这一次i3、i5和i7三个平台都能将GPU的最高占用率带到90%附近。而且帧率也相差无几,更重要的是,实际体验的也感觉不到i3或者i5平台相比i7在主观流畅度上有什么明显差异。唯一的区别在处理器占用率上,i3几乎满载,而i7则非常轻松地以37%水平应对。分析起来,要么是这款游戏在设计时,针对CPU调度做过明显优化,要么就是限制了多核心、多线程处理器的发挥,总之适应性非常强。鉴于此,我特意关闭了i3的超线程技术,并将主频降低到3.3GHz,大概模拟了奔腾G3260。发现此时画面以及是幻灯片了,同样的显卡,差距会如此明显,还敢说奔腾能平i7吗?

  当GPU性能冗余高时,CPU价值降低也是不争的事实只不过再将显卡换为GTX 1070之后,我发现测试的结果再次发生了明显改变。依旧是以上三个游戏项目。三个平台基本都到达满帧状态(HTC Vive 90fps满帧、3Glasses S1是120Fps满帧),处理器占用率上是有明显差异,但是数据和主观体验上的差异真的不那么明显。仔细分析,系统延迟也罢、平均帧数也好,都是CPU和GPU有机结合的运算结果。其中任何一项明显增强都能带来最终成绩的提升。尤其是最主要工作还是渲染的VR图形处理来说,显卡提升后,帧和帧之间的处理速度大幅度提高,那怕CPU上会因为性能略低带来一定延迟,也被显卡的高性能弥补掉,让整体延迟控制在了人的察觉能力以内。我相信如果精确测量延迟数据,这3个平台还是会有差距的,只是已经小到不影响主观体验了。而这也很可能就是当前不少人说CPU可以忽略不计的原因。鉴于此,我再次关闭了i3的超线程,模拟了奔腾平台。实际情况则是全满帧状态消失,《雇佣兵》和《布鲁克海文实验》都出现了偶尔的卡顿和迟滞。看来哪怕是GPU过剩,在相对高要求的应用中i3还是最低要求。实际上这三款游戏在所有VR应用中,算不上特别消耗资源,在此基础上已经能明显检验出各个平台的差距,这已经足以说明CPU无用论的荒谬,很多应用可能还真得i5起步、i7最佳。

  至于测试中出现4代和5代处理器架构并存的差异,用玩家调侃的话来说“这几代英特尔就是挤牙膏”同频差距基本可以忽略不计……

  小结

  “奔腾竟能平i7!”这显然是个不严谨的笑谈结论,不管是理论分析还是实际测试,结果显然都不像一些基准测试软件或者网络大神说的那样。CPU和GPU是计算系统的有机结合,不均衡的搭配都难以发挥硬件该有的水平,木桶效应在VR应用中也依旧存在。尤其是对延迟要求高于帧率要求的VR视觉应用,最好是CPU和GPU都达到有冗余的程度,才能最大可能地降低彼此等待的延迟、提高帧与帧的切换速度。

  文/Kale

……
关注读览天下微信, 100万篇深度好文, 等你来看……
阅读完整内容请先登录:
帐户:
密码: