哈嘍小伙伴們 ,今天給大家科普一個(gè)小知識(shí)。在日常生活中我們或多或少的都會(huì)接觸到游戲優(yōu)化(pu游戲優(yōu)化加速軟件) 方面的一些說法,有的小伙伴還不是很了解,今天就給大家詳細(xì)的介紹一下關(guān)于游戲優(yōu)化(pu游戲優(yōu)化加速軟件) 的相關(guān)內(nèi)容。
(資料圖片)
游戲優(yōu)化(普游戲優(yōu)化加速軟件)原創(chuàng)太平洋電腦網(wǎng)2019-07-27 00:22:57
1CPU 1的多核優(yōu)化難度有多大?
【PConline雜談】隨著AMD銳龍的橫版空的誕生,電腦CPU進(jìn)入多核沖擊時(shí)代。在同系列產(chǎn)品中,我們公司一直采用的是核心翻倍空。據(jù)透露,英特爾下一代CPU的i3將配備4核8線程——這樣的CPU,三年前的名字是i7。在高端系列中,核戰(zhàn)爭更令人恐懼。在售的12核24線程AMD銳龍3900X足以讓人倒吸一口涼氣,而即將上市的3950X則配備了16核24線程。好幾個(gè)幀的粉絲都表示把持不住,喊yes根本停不下來。
但是,多核CPU玩游戲會(huì)更快嗎?不一定。排除頻率和架構(gòu)IPC的差異,在某些情況下,多核CPU玩游戲會(huì)更慢——比如在某些情況下,AMD新出的12核3900X在某些游戲中比8核3700X還慢。
測試表明,具有更多內(nèi)核和更高頻率的3900X在某些情況下的性能不如3700X。
我們知道從規(guī)格上看,3900X完全壓倒3700X,別說多了四個(gè)核心,就連頻率都更高(3.8/4.6GHz vs 3.6/4.4GHz),三級(jí)緩存翻倍(64MB vs 32MB)。那么為什么多核游戲速度更慢呢?今天就從這個(gè)現(xiàn)象來說一下CPU和游戲優(yōu)化。
先說多核游戲的優(yōu)化。當(dāng)我們談到游戲優(yōu)化的時(shí)候,我們繞不開多核的支持。什么游戲針對(duì)多核優(yōu)化,什么游戲只能難單核,多核圍觀,一直是玩家津津樂道的話題。為什么游戲在優(yōu)化多核上有問題,而視頻壓縮等應(yīng)用卻能充分利用多核?這和游戲的運(yùn)行機(jī)制有關(guān)。
為什么游戲喜歡用單核?
像視頻壓縮這樣的任務(wù)可以很容易地并行執(zhí)行。比如一個(gè)線程壓縮一段優(yōu)優(yōu)資源 *** ,另一個(gè)線程壓縮另一段,多個(gè)內(nèi)核協(xié)同工作。最后,壓縮所有片段,壓縮完整的視頻。但是游戲的運(yùn)行一般是線性的,一步的操作往往與前一步緊密相關(guān),很難充分利用多線程。
核心在渲染和轉(zhuǎn)碼的時(shí)候很好用,游戲就不一定了。
舉個(gè)例子,在FPS游戲中,如果玩家被擊中并造成傷害,那么傷害結(jié)果就和子彈的彈道有關(guān)。在計(jì)算傷害之前,需要計(jì)算子彈的彈道。這只能在一個(gè)線程中完成,不可能通過多個(gè)線程同時(shí)計(jì)算出子彈的彈道和傷害。游戲要想充分利用多核,就需要巧妙地把計(jì)算任務(wù)拆分成多線程。例如,不同的線程負(fù)責(zé)物理碰撞、AI行為等。技術(shù)門檻比較高,還得多下功夫。基于此,仍有大量游戲未能充分利用CPU的所有核心。
支持多核一定要優(yōu)化好嗎?
隨著時(shí)代的發(fā)展,越來越多的游戲愿意在多線程優(yōu)化上發(fā)力。比如前幾年我們經(jīng)??吹健癷3完全無聲”的情況,現(xiàn)在游戲大作把門檻提高到了4核,雙核i3已經(jīng)很尷尬了。但是12核3900X的性能不如8核3700X。為什么?
出現(xiàn)這種情況主要是因?yàn)镃PU核心調(diào)度不合理。瑞的建筑很特別。每四個(gè)內(nèi)核封裝成一個(gè)CCX,每兩個(gè)CCX封裝成一個(gè)CCD。內(nèi)核之間的通信可以跨越CCX甚至CCD,但CCX和CCD之間的通信會(huì)有延遲。
Zen2架構(gòu),可以看到核心的拓?fù)浣Y(jié)構(gòu)——CCX——CCD。
換句話說,如果一個(gè)程序可以調(diào)用多個(gè)內(nèi)核,會(huì)出現(xiàn)以下情況。
1.被調(diào)用的多核在同一個(gè)CCX,延遲最?。?/p>
2.被叫的多核跨CCX,但是在同一個(gè)CCD里,所以延遲;
3.所謂多核跨越CCX和CCD,延遲更大。
比如一個(gè)游戲可以調(diào)用四個(gè)核心,理想的情況自然是在同一個(gè)CCX中調(diào)用四個(gè)核心,可以獲得更佳的性能。然而,實(shí)際上,對(duì)多個(gè)內(nèi)核的代碼調(diào)用并不一定那么智能,很可能無法識(shí)別哪些內(nèi)核位于同一個(gè)CCX上。因此,游戲可能會(huì)調(diào)用位于不同CCX和CCD的多個(gè)內(nèi)核,從而導(dǎo)致額外的延遲和性能損失。
知道了這一點(diǎn),就能解釋為什么有時(shí)候3900X的游戲性能甚至比3700X還要低。3900X封裝了兩個(gè)CCD,每個(gè)CCD有兩個(gè)CCX,每個(gè)CCX有四個(gè)內(nèi)核。原來的總數(shù)是4x2x2=16芯,屏蔽四芯后得到12芯。而3700X只有一個(gè)CCD,包括兩個(gè)CCX,總共4x2=8個(gè)內(nèi)核??梢钥闯?900X比3700X多了一個(gè)CCD,多了一個(gè)可能造成額外延遲的情況。如果游戲發(fā)揮不出3900X的多核優(yōu)勢,那么3900X略遜于3700X也在情理之中。
Windows 10 1903中Zen架構(gòu)的優(yōu)化之一是內(nèi)核的調(diào)度邏輯,它首先調(diào)用同一個(gè)CCX中的內(nèi)核。
因此,即使游戲針對(duì)多核進(jìn)行了優(yōu)化,也需要在核心調(diào)度上付出更多努力,才能達(dá)到更佳性能。很高興微軟已經(jīng)意識(shí)到了相關(guān)問題,并在Windows 10 1903中做了一次優(yōu)化。系統(tǒng)將優(yōu)先調(diào)度同一CCX中的內(nèi)核,以避免交叉CCX造成的延遲。如果想充分發(fā)揮AMD銳龍?zhí)幚砥鞯男阅?,還是要升級(jí)到Windows 10 1903。
2CPU單核性能真的是擠牙膏?
有人認(rèn)為,目前CPU在頻率方面很難有性能上的突破,架構(gòu)也很難進(jìn)一步提高效率。核心堆是提高性能的唯一方法。有朋友從英特爾的“擠牙膏”中論證了這一觀點(diǎn),認(rèn)為CPU的同頻性能已經(jīng)停滯多年,而AMD的Zen2架構(gòu),雖然效率較上一代大幅提升,但也只是趕上了競爭對(duì)手的水平。幾年前用4核CPU玩游戲和現(xiàn)在用4核CPU玩游戲,在體驗(yàn)上似乎沒有區(qū)別,這也是一個(gè)有力的證據(jù)。但事實(shí)是這樣嗎?
其實(shí)這種觀點(diǎn)是片面的。CPU之所以在幾年前的一些測試和游戲中表現(xiàn)出色,是因?yàn)檫@些測試和游戲并沒有對(duì)新CPU的指令集進(jìn)行優(yōu)化。近年來,新CPU的一大價(jià)值在于增加了AVX、AVX2、TSX等指令集。如果代碼調(diào)用相應(yīng)的指令集,它可以更有效地利用像FMA這樣的浮點(diǎn)加乘混合單元,減少空閑的CPU流水線,并大幅提高性能。
這些都是近十年來一直在增加的指令集,不是說沒有核堆或者擠牙膏。
以著名渲染軟件Cinebench為例。這是一個(gè)DIY玩家相當(dāng)熟悉的CPU測試工具。與舊版本的Cinebench R15相比,最新版本的Cinebench R20增加了對(duì)AVX指令集的支持。憑借CPU對(duì)AVX指令集的良好支持,同樣的渲染項(xiàng)目在Cinebench R20中運(yùn)行的速度甚至是Cinebench R15的兩倍以上!這表明新的指令集可以大大提高性能。
Zenyou資源網(wǎng)2的單核性能提升這么多,很大程度上是因?yàn)锳VX2的性能提升很大。
支持AVX或更新版本的指令集已經(jīng)逐漸成為渲染、視頻壓縮和科學(xué)計(jì)算等專業(yè)領(lǐng)域的規(guī)范。著名的Linux發(fā)行版Fedora 32甚至計(jì)劃不支持沒有AVX指令集的CPU。但是,仍然有大量的游戲沒有跟進(jìn)新的指令集,如AVX,只支持舊的SSE。自然,用新CPU運(yùn)行這些游戲和舊CPU差別不大。在指令集支持方面,游戲還是缺乏對(duì)CPU的適當(dāng)優(yōu)化。
著名的游戲性能測試組件3DMark已經(jīng)意識(shí)到了這一點(diǎn)。在新的Time Spy極限測試項(xiàng)目中,加入了AVX、AVX2甚至AVX512指令集支持,調(diào)用AVX512指令集的成績是SSE3的兩倍以上。
像AVX這樣的新指令集在實(shí)際游戲中變得越來越重要。比如《刺客信條:奧德賽》甚至不支持沒有AVX指令集的CPU(因?yàn)樘みM(jìn)了,又得兼容老CPU)。比如一些使用D加密的游戲,需要FMA3指令集解密才能正確運(yùn)行,早期的“神U”e 1230v 2只能發(fā)呆;如果你是PS3模擬器玩家,你也體驗(yàn)過TSX指令集下的性能飛躍。
育碧的新作《刺客信條》曾經(jīng)不支持沒有AVX指令的處理器,新游戲會(huì)越來越重視高級(jí)指令集。
總的來說,大部分游戲的指令集優(yōu)化還是不夠。在沒有指令集優(yōu)化的情況下,老CPU和新CPU的游戲性能拉不出太大的差別。但支持新指令集是游戲?qū)PU優(yōu)化不可回避的環(huán)節(jié)。只有使用新的指令集,新的CPU才能顯示出應(yīng)有的價(jià)值。希望更多游戲優(yōu)化新CPU指令集。
無論是增加CPU內(nèi)核的多線程,還是使用新的指令集來提高SIMD性能,都可以大大提升CPU的性能。就消費(fèi)市場而言,AMD似乎更走多核路線,而英特爾則致力于實(shí)現(xiàn)新的指令集。但無論是哪種發(fā)展方向,都需要相應(yīng)的軟件來優(yōu)化,才能充分發(fā)揮CPU應(yīng)有的性能。
不再是不修改一行代碼就能發(fā)揮新CPU全部性能的時(shí)代了。多核和高級(jí)指令集受限于缺乏游戲支持的現(xiàn)狀,不得不淪為“為未來而戰(zhàn)”。CPU不是擠牙膏,游戲?qū)PU的優(yōu)化遠(yuǎn)沒有結(jié)束。希望以后能看到更多能發(fā)揮CPU真正威力的游戲。
\關(guān)鍵詞: