AMD|說人話系列:銳龍5系跟5800X3D解析(4)AMD緩存跟單核進化

AMD|說人話系列:銳龍5系跟5800X3D解析(4)AMD緩存跟單核進化

文章圖片

AMD|說人話系列:銳龍5系跟5800X3D解析(4)AMD緩存跟單核進化

文章圖片

AMD|說人話系列:銳龍5系跟5800X3D解析(4)AMD緩存跟單核進化

文章圖片

AMD|說人話系列:銳龍5系跟5800X3D解析(4)AMD緩存跟單核進化

文章圖片


本系列已經進行到第四篇 。 上篇寫了緩存問題 , 造成的銳龍123代單核性能的拉胯 。 其實 , 不僅是因為模塊化造成的三級緩存不夠 , 還有個問題是內存調度 。 比如還是這個辣雞中的辣雞1700X吧 , 你壓根無法做到兩個模塊同時可以對接內存條 , 因為無法優化 。

其實 , 還有個重要問題 。 以windows來說 , 甚至包括windows server這種服務器系統 , 它的文件結構是文件夾 , 因為用戶習慣 , 你找東西永遠是先從文件夾慢慢查 , win的整體尋址也是如此 , 甚至包括CPU調度 。 每個文件夾里都有下面文件的文件頭地址 , 你要找就要先從文件開始 , 一層層查 。 銳龍123代的cpu也是類似 。 有些服務器系統不是這樣 , 銳龍就有了優勢 。

因為AMD為了省錢 , 搞模塊化 , 每個模塊都是4核心 , 每個核心都是CPU0開始到CPU3 。 那你調度第二個核心的地址就是 模塊2.CPU0 , 每次尋址都要先從模塊開始 , 多了幾層中介 , 這就有了延遲 。 但是 , 如果你給的地址默認就是CPU0 , 那指定第一個模塊做默認就好了 , 只要速度匹配 。 指定第二個模塊默認CPU0 , 速度有延遲就影響性能 。 這個是AMD模塊化完全無法避免的問題 。
再來說下模塊化的緩存問題 。 三級緩存是CPU內部的緩存里可以堆很大的活躍內存 。 三緩大 , CPU能調用的后備數據庫就大 。 如果是內存條那就不行了 , 太遠了 , 讀一次內存條要經過主板 , 接口 , 操作系統調用 , 一層層下來中介雁過拔毛 , 延遲大速度慢 。 一級緩存二級緩存也不能做大 , 因為大了單個CPU核的面積就大 , 浪費錢 。 內存的模型說了很多次了 , 比如這個內存金字塔結構 , 就很直觀不是 。

英特爾不這么搞 。 英特爾一直堅持環形總線結構 , 所有核心共享所有三級緩存 。 核心越多單核心能使用的三級緩存越大 , 單核心就越強 , 但是英特爾多核心堆不起來 。 相比之下 , AMD模塊化的弊端曝露無疑 , 單核心跟延遲一直是問題 , AMD就長期只宣傳多線性性能 , 也是田忌賽馬的一個策略 。

如何讓單核心性能增加 , AMD其實是有策略的 。 不過礙于GF工廠的工藝問題 , 拖到臺積電7nm工藝成型 , AMD才拿出來了解決方案——就是5000系銳龍每個模塊8核 , 單核心需要的三級緩存容量翻倍 , 并且8核心內部幾乎無延遲 。 對于目前絕大多數4核8線優化 , 加上少數6核12線程優化的程序軟件來說 , AMD的這8核一個模塊 , 就夠用了 , 綽綽有余 。 比如下圖 , 四周的8個就是CPU核 , 中間的黑色方塊就是三級緩存 。

對于游戲來說 , 優化不像軟件 。 游戲是對延遲異常敏感的類型 , 你從按下按鍵 , 到屏幕有反應 , 一般都是在100多毫秒之內的 。 并且游戲對幀數有要求 , 也要及時響應 。 就算每秒鐘刷新30幀的游戲 , 它的按鍵響應就是33毫秒 , 有反應后再刷新在屏幕上 , 最多100多毫秒 。 每秒鐘刷新60幀 , 按鍵響應就是17毫秒 , 屏幕刷新出來就是90多毫秒 。 144幀游戲按鍵響應8毫秒 , 屏幕刷新出來是70多毫秒 。 反正以此類推 , 幀數越高 , 它響應速度

相關經驗推薦