AMD最新APU內存緩衝區是擺設?64MB與2GB竟無差別
APU介紹
今年2月12日,AMD的Raven Ridge系列桌面APU處理器正式解禁,首批上市的兩款產品分別為Ryzen 5 2400G和Ryzen 3 2200G。從CPU的性能來看,新APU相比之前同級別的Ryzen 5 1400和Ryzen 3 1200略有提升,與對手英特爾的i5-8400和i3-8100相差不大。而GPU性能部分,憑藉AMD自家Radeon Vega核心的優勢,這兩個新款APU大幅領先Intel八代Core產品中自帶的UHD 630核顯。
在Ryzen 52400g和Ryzen 3 2200G的基準測試出來之後,這兩個APU的性能都令人印象深刻,但是玩家們討論最多的問題是關於Vega GPU的內存分配。
與典型的獨立顯卡不同,大多數集成解決方案都沒有自己的專用內存。例如,Vega 64有8GB的專用內存,可以存儲數據,並在需要時快速訪問它。因為這是一個高端的顯卡,它不僅有一個大8GB的緩衝區,它用來訪問這個內存的匯流排也非常快。HBM2提供了一個2048位寬的匯流排,內存頻率為1.25GHz,帶寬為483GB/s。
而再往下看,你會發現諸如RX 550這類圖形卡。由於此卡的計算性能低9倍左右,因此不需要如此巨大的帶寬和8GB內存緩衝區。事實上,RX 550隻能利用一半的容量,在遊戲中,這張卡也可以使用2GB的緩衝區。不管容量如何,它的內存頻率是1.75GHz,而128位寬的匯流排可以以112GB / s的速度傳輸數據。
內存緩衝區、系統內存介紹
在系統內存中進出的數據要比VRAM慢得多
所以典型的RX 550具有2GB的內存緩衝區,可以以112GB / s的峰值速率移動數據。現在,如果一款遊戲需要3GB的VRAM,但顯卡只有2GB,那麼就會溢出到系統內存(RAM)。
將數據移入和移出系統內存比VRAM慢得多。例如Raven Ridge APU在使用DDR4-3200時,系統內存的內存帶寬限制在35GB / s左右。因此,在RX 550的情況下,使用VRAM在本地訪問數據時,其帶寬為112GB / s,但從系統內存訪問數據時,其限制為16GB / s(PCIe 3.0 x16限制),也就是說處理相同的數據需要至少七倍的時間。
如果你的計算機用完系統內存,則遊戲資產將被移動到本地存儲設備,也就是硬碟驅動器,或者是SSD當中,這時的傳輸速度將取決於硬碟,此時在遊戲表現上就會出現明顯的幀速下降,因為使用SATA SSD的帶寬將降至500MB / s左右。
AMD Raven Ridge APU只能依賴於系統內存
記住所有這些信息,請再次注意,Raven Ridge APU內部的集成圖形晶元沒有本地內存。強調這一點,是因為在即將到來的Intel Kaby Lake-G處理器中的一些集成GPU(如Vega M顯卡)確實有他們自己的專用內存,這大大提高了性能,但也更昂貴。
由於AMD的Raven Ridge APUs是預算解決方案,包含HBM2內存是不實際的。因此,沒有專用的VRAM,它只能依賴於系統內存,在使用DDR4-3200時,它的帶寬限制在35GB/s左右。
當然,帶寬只是問題的一部分,內存容量也起著關鍵作用。一個具有Radeon RX 550和8GB的DDR4內存的系統擁有10 GB的內存。但是當在Raven Ridge APUs內部使用集成的Vega 8或11圖形時,需要在CPU和GPU之間共享8GB的內存。
分配完畢後,用作圖形內存的部分,不再供操作系統或應用程序使用
一般來說,Windows在管理內存和確定應用程序優先順序方面做得很好,以獲得最佳效果,但至少有一部分系統內存將分配給集成圖形。Raven Ridge APU使用稱為統一內存架構或UMA的方法。目前大多數AM4主板可讓用戶將內存大小設置在64MB到2GB之間。根據用戶選擇的尺寸大小,這將決定專門分配給Vega圖形的系統內存的最大數量。一旦分配完畢,它只能用作圖形內存,不再可供操作系統或應用程序訪問。
緩衝區分配情況
現在出現了很多錯誤的信息。有人說,為了獲得最佳效果,玩家們應該將幀緩衝區設置為最大尺寸,而現在是2GB。然而,這並不一定是正確的。你可以更好地選擇系統內存的絕對最小值,因為正如我所說,一旦將系統內存的一部分分配給圖形處理器,就可以使用它了。
如果您在這裡過度使用,那麼在Windows中運行不需要大量視頻內存的任務時,你將會有大量的空閑內存無法使用。如果你在一個擁有8GB DDR4內存的系統上選擇2GB的緩衝區,這意味著只有6GB的系統內存可以使用。
我不會建議你選擇2GB的緩衝區,即使你想在遊戲中發揮最大的性能。正如前面所討論的,當遊戲時,一旦圖形內存或VRAM被佔滿,遊戲資產就會被載入到系統內存中,而Raven Ridge APUs只使用系統內存,所以不管你分配的是64MB還是2GB,這都不重要。
遊戲實測
如果一個遊戲需要2GB的視頻內存,但是你只分配了64MB,那麼使用仍然會溢出到共享內存中,因為所有的內存都一樣,帶寬保持不變,性能也一樣。Windows很好地管理了這一點,所以如果分配了2GB,你就是在限制操作系統優化系統內存的能力。
在試圖理解AMD為什麼提供1GB和2GB幀緩衝區時,我最初認為可能通過預留一定數量的內存,以確保最高的遊戲性能。然而,在測試了各種各樣的配置後,發現這對遊戲的性能沒有任何影響,當然在遊戲時你不會注意到。使用8GB和16GB的雙通道DDR4-3200內存和相同的時間,發現在保留64MB或2GB的系統內存之間沒有真正的性能差異。測試了幾個遊戲,都是在1080p解析度下運行,用低到中等質量的設置來調用大約2-3GB的VRAM。
正如你在BF1中看到的,所有的結果都在誤差範圍內三次平均,我們不僅討論平均幀率,還包括幀時間性能。在比較1%的低結果時,2GB的配置速度提高了9%,但是如果我們接受在這裡有一個+/- 1fps的誤差範圍,那麼差異可能只有3%。在任何情況下,當真正玩遊戲時,都不可能發現這一差別。
AIDA64、內存複製測試
使用AIDA64 GPGPU基準測試工具,我們可以測量CPU和GPU之間的讀寫性能,從而有效衡量GPU可以將數據移入和移出自己的設備內存到系統內存的性能。這也稱為設備到主機帶寬。
更重要的是,對於我想要展示的屬性,我們也可以看看內存複製性能。該測試通過將數據從自己的設備內存複製到相同設備內存中的另一個位置來度量GPU內存的性能。在RX 550的情況下,是GDDR5內存,但在Raven Ridge APU的情況下,它是系統內存。
在這裡我們可以看到,在分配64MB內存的情況下,Ryzen3 2200G的Vega 8 GPU從系統內存中複製數據時的吞吐量為33.4GB/s,這與訪問DDR4-3200內存時的35GB/s相當。
如果我們將分配大小增加到2GB,這對帶寬沒有影響。基於平均三次運行,我們看到略有下降,但這在誤差範圍內。假設我們傳輸的數據超過2GB是安全的,所以它不僅僅是在已分配的緩衝區中進行基準測試。如果我們看RX 550,它的理論峰值帶寬是112GB/s,我們在這個測試中看到的是88GB/s。我們還選擇了Vega 56來進行比較,這個模型達到了321GB/s,理論峰值帶寬為410GB/s
總結
因此,所有結果都表明,將iGPU分配的內存緩衝區設置為超過64MB是毫無意義的,而且對於內存有限的系統,甚至有點愚蠢。
但是讀者們要注意一點,64MB是一個極端的例子,可能在安全方面出錯,正常情況下會將其設置為512MB。
而AMD為何要提供2GB幀緩衝區?原因很簡單,市場營銷。AMD在玩數字遊戲,說2GB或高達2GB的圖形內存聽起來要遠遠好於64MB。
測試多個遊戲後我們發現,在大多數情況下,我們只看到了很少的差異。在某些情況下,平均值最多可達5%,但大部分為3%或更低。在最好的情況下,可能會獲得額外的2-3個fps,雖然在最好的情況下,是使用2GB而不是64MB。但是,如果在Windows中使用應用程序時,我的系統內存幾乎具有全部8GB,而不只是6GB,那麼Raven Ridge的吸引力就更大了。
所以對於8GB或更少內存的用戶,最好使用64 - 512MB的選項。只需要一點點超頻就可以在需要的時候獲得額外的幀數。
※兵長怒懟新角色《進擊的巨人》TV動畫第3季新藝圖
※君島達己認為Switch生命周期將會長達7-10年左右
TAG:3DMGAME |