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