泡泡网显卡频道 PCPOP首页      /      显卡     /      评测    /    正文

游戏跑分新视角:细看一秒内帧数变化

游戏跑分新视角:细看一秒内的帧数变化

游戏跑分新视角:细看一秒内的帧数变化

游戏跑分新视角:细看一秒内的帧数变化

同样的,三款单卡看起来还比较正常,总体来说比较问题,而且突发帧数量并不多。

游戏跑分新视角:细看一秒内的帧数变化

从GTX 560 Ti SLI身上就已经开始显现出较大波动,总体上遵循一高一低的趋势,下面的多卡系统莫不如此。

游戏跑分新视角:细看一秒内的帧数变化

游戏跑分新视角:细看一秒内的帧数变化

游戏跑分新视角:细看一秒内的帧数变化

游戏跑分新视角:细看一秒内的帧数变化

游戏跑分新视角:细看一秒内的帧数变化

游戏跑分新视角:细看一秒内的帧数变化

游戏跑分新视角:细看一秒内的帧数变化

    已经不止一次的听到关于多卡系统的Micro-stuttering(下文会具体解释)问题了,这次算是一个集中的反映。需要清楚的是,我们这里看到的很像是多卡系统工作方式的一个人工还原。

    不管是AMD还是NVIDIA,在CrossFire/SLI多卡系统中都将AFR(Alternate Frame Rendering,交替帧渲染)作为首要渲染模式。顾名思义,比如在双卡系统中,AFR就是将偶数帧交给GPU1渲染,而奇数帧则安排给GPU2渲染;或者说把第 n 帧画面指派给 GPU1渲染,把 n+1帧指派给 GPU2 渲染,使帧数渲染交替进行,从而充分利用多卡系统的并行几何处能力。(三卡或四卡的原理一样,渲染交替进行。) 虽然,CrossFire/SLI同样支持其它一些负载平衡渲染模式,比如SFR(Split Frame Rendering,分割帧渲染),但效率方面并不如AFR。

    虽然这些基本原理非常简单,但要在多卡系统中做到负载平衡却相当不易。首先,每一个独立的帧从渲染原理上来看就是一个需要高度平行的任务,需要高度平行的天性使得帧与帧之间的平行也相当拿捏,所以保持帧间的同步很是困难,更不用说多卡之间的负载平衡了。(比如GPU1已经完成了1帧渲染,需要进行第3帧渲染,而此时GPU2的渲染还在进行,那么GPU1就需要等待。当然,实际的平衡负载问题要复杂的多,需要平衡算法来解决。)

    另外,因为不管多卡系统中有几款显卡,只有主卡才能与显示器连接,所以其他显卡渲染的帧只能通过传输到主卡进行输出。而无论是CrossFire还是SLI接口,这种数据传输都会耗费时间。除了帧数据,其它的一些缓存数据也需要经常在显卡之间进行传输,尤其是一些高级渲染技术(比如render-to-texture,渲染到纹理)使用的情况下。而这些数据通常会使用PCI-E接口,同样会造成延迟。

    上面的图表很好的说明了多卡系统之间负载平衡还远远未达到完美,需要解决的问题还有很多。不过现在,我们可以先从一些多卡系统的天生缺陷说起。

    很明显,继续使用平均FPS去评估多卡系统的性能表现肯定是不靠谱的。因为从平均FPS很难看出高延迟帧,而这些高延迟帧却恰恰是获得连贯游戏画面的关键因素。我的感觉是,在提供连贯的游戏体验方面,帧延迟在20ms和50ms之间交替进行并不如一直稳定在50ms。
因为,从人类的视觉系统特别善于捕捉不规则的场景,也就是说一快一慢的画面会让人感觉相当不爽。事实上吗,这种体验我已遇到多次。这也就是为何很多人抱怨Micro-stuttering的原因。

    当然,这些只是冰山一角。问题的复杂性要远比这些图表展现的高的多。关于这个问题我们接下来会进一步阐释,但现在,我还是想把这些数据继续放大,看看还有那些问题。

1人已赞

关注我们

泡泡网

手机扫码关注