游戲跑分新視角:細(xì)看一秒內(nèi)幀數(shù)變化
同樣的,三款單卡看起來(lái)還比較正常,總體來(lái)說(shuō)比較問(wèn)題,而且突發(fā)幀數(shù)量并不多。
從GTX 560 Ti SLI身上就已經(jīng)開(kāi)始顯現(xiàn)出較大波動(dòng),總體上遵循一高一低的趨勢(shì),下面的多卡系統(tǒng)莫不如此。
已經(jīng)不止一次的聽(tīng)到關(guān)于多卡系統(tǒng)的Micro-stuttering(下文會(huì)具體解釋?zhuān)﹩?wèn)題了,這次算是一個(gè)集中的反映。需要清楚的是,我們這里看到的很像是多卡系統(tǒng)工作方式的一個(gè)人工還原。
不管是AMD還是NVIDIA,在CrossFire/SLI多卡系統(tǒng)中都將AFR(Alternate Frame Rendering,交替幀渲染)作為首要渲染模式。顧名思義,比如在雙卡系統(tǒng)中,AFR就是將偶數(shù)幀交給GPU1渲染,而奇數(shù)幀則安排給GPU2渲染;或者說(shuō)把第 n 幀畫(huà)面指派給 GPU1渲染,把 n+1幀指派給 GPU2 渲染,使幀數(shù)渲染交替進(jìn)行,從而充分利用多卡系統(tǒng)的并行幾何處能力。(三卡或四卡的原理一樣,渲染交替進(jìn)行。) 雖然,CrossFire/SLI同樣支持其它一些負(fù)載平衡渲染模式,比如SFR(Split Frame Rendering,分割幀渲染),但效率方面并不如AFR。
雖然這些基本原理非常簡(jiǎn)單,但要在多卡系統(tǒng)中做到負(fù)載平衡卻相當(dāng)不易。首先,每一個(gè)獨(dú)立的幀從渲染原理上來(lái)看就是一個(gè)需要高度平行的任務(wù),需要高度平行的天性使得幀與幀之間的平行也相當(dāng)拿捏,所以保持幀間的同步很是困難,更不用說(shuō)多卡之間的負(fù)載平衡了。(比如GPU1已經(jīng)完成了1幀渲染,需要進(jìn)行第3幀渲染,而此時(shí)GPU2的渲染還在進(jìn)行,那么GPU1就需要等待。當(dāng)然,實(shí)際的平衡負(fù)載問(wèn)題要復(fù)雜的多,需要平衡算法來(lái)解決。)
另外,因?yàn)椴还芏嗫ㄏ到y(tǒng)中有幾款顯卡,只有主卡才能與顯示器連接,所以其他顯卡渲染的幀只能通過(guò)傳輸?shù)街骺ㄟM(jìn)行輸出。而無(wú)論是CrossFire還是SLI接口,這種數(shù)據(jù)傳輸都會(huì)耗費(fèi)時(shí)間。除了幀數(shù)據(jù),其它的一些緩存數(shù)據(jù)也需要經(jīng)常在顯卡之間進(jìn)行傳輸,尤其是一些高級(jí)渲染技術(shù)(比如render-to-texture,渲染到紋理)使用的情況下。而這些數(shù)據(jù)通常會(huì)使用PCI-E接口,同樣會(huì)造成延遲。
上面的圖表很好的說(shuō)明了多卡系統(tǒng)之間負(fù)載平衡還遠(yuǎn)遠(yuǎn)未達(dá)到完美,需要解決的問(wèn)題還有很多。不過(guò)現(xiàn)在,我們可以先從一些多卡系統(tǒng)的天生缺陷說(shuō)起。
很明顯,繼續(xù)使用平均FPS去評(píng)估多卡系統(tǒng)的性能表現(xiàn)肯定是不靠譜的。因?yàn)閺钠骄鵉PS很難看出高延遲幀,而這些高延遲幀卻恰恰是獲得連貫游戲畫(huà)面的關(guān)鍵因素。我的感覺(jué)是,在提供連貫的游戲體驗(yàn)方面,幀延遲在20ms和50ms之間交替進(jìn)行并不如一直穩(wěn)定在50ms。
因?yàn)椋瑥娜祟?lèi)的視覺(jué)系統(tǒng)特別善于捕捉不規(guī)則的場(chǎng)景,也就是說(shuō)一快一慢的畫(huà)面會(huì)讓人感覺(jué)相當(dāng)不爽。事實(shí)上嗎,這種體驗(yàn)我已遇到多次。這也就是為何很多人抱怨Micro-stuttering的原因。
當(dāng)然,這些只是冰山一角。問(wèn)題的復(fù)雜性要遠(yuǎn)比這些圖表展現(xiàn)的高的多。關(guān)于這個(gè)問(wèn)題我們接下來(lái)會(huì)進(jìn)一步闡釋?zhuān)F(xiàn)在,我還是想把這些數(shù)據(jù)繼續(xù)放大,看看還有那些問(wèn)題。
關(guān)注我們



