如果CPU的cache(緩存)容量上GB或更高,會有哪些不同?

CPU IBM 技術 西部遊星 2018-12-13
如果CPU的cache(緩存)容量上GB或更高,會有哪些不同?

除了1G Cache,其他條件沒什麼變化。

1G的SRAM在CPU同頻/半頻工作挺誇張的,假設是L4,如果實現了,片內L4訪問的Lantecy可能需要100個週期以上,這等於拖慢了訪問主存速度。假設原來訪問主存Latency是200T,那現在則是300T。

如果測試代碼是隨機訪問數據,或流訪問數據,總體性能會有較大下降。如果測試代碼是計算型,比如壓縮加密等,不需要頻繁訪問Cache,其性能還是受CPU主頻控制,增加1GCache沒什麼用,性能不變。對於需要使用>8MB<1GB內存的無規律訪問內存的測試程序,1GCache才能發揮作用。

如果CPU的cache(緩存)容量上GB或更高,會有哪些不同?

上圖是AMD發佈的RYZEN APU,共2M L2 +4M L3加起來約等於四個ZEN CORE的面積。

這種畢竟是特殊程序,其典型單線程代表,omnetpp的MKPI能從5降到0,mcf的MKPI能從10降到0。對後者來說,也就是每百條指令,有一次MemHit變為L4CacheHit的收益。估算當下處理器一次MemHit大致要200週期(50ns,CPU4GHz),變為L4Hit後收益為100週期。處理器IPC按1。5算。算下來mcf上當下處理器做8個週期的工作,擁有1GCache的相同處理器只需要5個週期,性能提升37。5%。

由於較多的程序都沒有上述特徵,實際上這種1GCache的CPU整體使用性能很可能是下降的,這是由於1GCache的ASIC實現較慢導致的。如果開腦洞無視ASIC實現問題,強行假設現在的IntelI7處理器L3Cache=1G。那麼"Fit8M~1GBMemory"的這類程序能獲得37。5%+的提升。接下來問題就轉換成了"有多少程序fit8M~1GMemory?"我不知道。看了下Spec2k6,按子調用來計數,8M時MKPI在5以上的有12個,佔21%。當然MKPI是和CPU結構的相關項,這裡也有偏差。

其實Spec2k6的程序特性分佈特點,和普通用戶日常程序特點也不一樣。普通用戶上網,Spec在浪費電。乾脆強行假設程序特性也一樣吧,那麼結論是有21%的程序能提升37。5%,平均提升量約7。9%。

如果CPU的cache(緩存)容量上GB或更高,會有哪些不同?

如果不是用SRAM實現就不算腦洞了,但Cache到1G肯定是多核匯聚的,IBMPower9是120MBeDRAMCache,24Core。Core0訪問L3Cache0。23的latency應該不同,用了NUCA。單核性能並非處理器賣點,性能上IBM強調的是on-die/IOBandwidth,要併發。該討論的是,單核程序怎樣寫(編譯)才能與硬件適配得好。如果扯到併發,1GCache這個命題就要加更多的限定條件,比如接口位寬,比如是統一/分佈訪問,比如衡量性能指標。不然沒法答,像如果有1GRMB怎麼花一樣沒法答。不過也有些能預測的,1GCache如果實現,就會有大量在512MCache上都會卡的代碼,你以為好的硬件提供了好的用戶體驗?No。提供了好的特效。

如果CPU的cache(緩存)容量上GB或更高,會有哪些不同?

如果CPU的cache(緩存)容量上GB或更高,會有哪些不同?

如果CPU的cache(緩存)容量上GB或更高,會有哪些不同?

相關推薦

推薦中...