這幾年在The Next Platform上,我們在一直思考以后IBM在 Power10處理器方面會做什么的同時,我們也一直在進行相應的分析,試圖明確已經(jīng)采用獨特內存架構十多年的Big Blue能做什么。
現(xiàn)在我們知道了。Power10不僅是一個設計精美的芯片,更是一個由其主要內存緊密鏈接在一起的系統(tǒng)集群(在涉及到系統(tǒng)時可能會非常緊密)。自從公司參與美國國防高級項目研究機構的超級計算體系結構探索以來,這種體系結構就一直在不斷發(fā)展,這項探索推動Power7處理器的兩個超級計算機變體于2010年誕生。這兩種機器都是PERCS項目的成果, 并且于2006年11月,DARPA投入2.44億美元用于IBM未來硬件和軟件的開發(fā)。借助Power10,IBM可以擴展和商業(yè)化多年以前PERCS項目奠定的技術基礎。
這種新架構是無法一次性介紹清楚的。因此,我們將分為兩部分,首先討論Power10處理器,然后再討論這種新的內存體系結構。此外,我們將討論一個簡單的問題:IBM是如何在橡樹嶺國家實驗室和勞倫斯·利弗莫爾國家實驗室輸?shù)袅藘纱伟賰|億級超級計算交易的。有了IBM的支持,這本來就可以達成協(xié)議,而且這還可能意味著未來的AMD Epyc處理器將具有類似的基于SerDes的內存和I / O控制器以及基于硬件的內存和全局尋址。
話不多說,讓我們深入研究探討Power10處理器。
任何其他名字的云端
首先,據(jù)我們所知,IBM并沒有給Power10芯片起代號。即使這是事實,但這還是也難以讓人相信,而且要是真的沒有命名,那就太愚蠢了。有了多種語言版本的代號,在進行相關交流時會非常方便。此外,名字要酷,這一點很重要。畢竟我們是人類,標簽不僅具有意義,還要具有魔力。因此,我們將在Power10芯片上賦予一個代號,這是對IBM工程師所做工作的一種洗禮,也是為出于某些原因而無法解決這類問題的銷售人員提供幫助。
在IBM內部,低端Power9芯片被稱為“ Nimbus”,而針對大型NUMA鐵的高端Power9芯片被稱為“ Cumulus”,這兩者都與當今服務器基礎架構日趨多云的性質保持一致。這些是大的“暴風云”,有時會合并為“積雨云”,從地面一直延伸到地面以上12公里。對于Power10,鑒于其更具空靈的本性,我們正式將其稱為“卷云”,即高聳在對流層外緣9至12公里間稀疏的龍鳳祥云。
既然第一個問題已經(jīng)解決了,那就來談談IBM有望在一年后上市的Cirrus處理器。
William Starke和Brian Thompto于本周在Hot Chips上發(fā)表了有關Power10的演講。Starke是Power10處理器的首席架構師,并參與了IBM幾代Power芯片的設計。Starke在2019年8月與我們談論了Power10會對帶寬方面給予多少關注,然后我們還討論了Power9的“ Axone”處理器問題。該處理器是實現(xiàn)Power10內存子系統(tǒng)原型Power9芯片的推動者,該消息本該于去年宣布,但至今還沒有任何動靜。(我們的猜測是,該原型旨在為購買IBM級計算機的HPC中心提供一個軟件開發(fā)平臺,但前提是IBM能拿下美國能源部的合同。)Thompto是Power10的核心架構師,專門負責對Cirrus核心進行重新設計,重點是提高核心各個方面的能源效率
Power10內核遵循新的Power指令集版本3.1,該版本于去年8月在OpenPower Foundation下開工。根據(jù)Thompto的說法,Power10內核已添加了200多個新指令,這些指令旨在使微體系結構在某些功能上更高效,此外還增加了新功能。以下是Power10內核支持的重要新指令和數(shù)據(jù)格式的細分:
對于商業(yè)和HPC工作負載而言, Power10芯片在其矢量和矩陣數(shù)學單元中支持混合精度浮點數(shù)和整數(shù)格式非常重要,這使其能夠在本地處理器上支持機器學習訓練和推理工作負載。我們非常懷疑是否能在Power10芯片方面經(jīng)行有效的機器學習培訓,但我們確信,推理將在主機處理器而不是在加速器上進行,因為推理將需要嵌入到應用程序中,并且與應用程序中的其他處理過程非常緊密地結合在一起。如果推理將成為商業(yè)應用程序中相對較少和稀疏的部分,那么這才有意義。
以下是Power10芯片上SIMD向量引擎和矩陣數(shù)學輔助(MMA)單元的提要和速度,表明Power10內存所粘貼的DDR4內存緩沖區(qū)上的OpenCAPI內存接口(OMI)的路徑一直使用到矩陣數(shù)學單元的路徑。
上面顯示的數(shù)據(jù)是針對胖Power10內核的,該內核具有同時設置的線程,每個內核具有八個線程(在IBM中稱為SMT8模式)。對于IBM鎖定為SMT4模式的Power10芯片,將每個內核的SIMD和MMA單元數(shù)量減少一半,然后將芯片上的內核總數(shù)乘以2。同樣,它只是為了性能和每個內核軟件許可調整硬件。
如您所見,向量單元支持標準的32位單精度浮點數(shù)和64位雙精度浮點數(shù),這些浮點數(shù)是HPC工作負載的主體,并且也經(jīng)常被AI工作負載使用。但是Power10上的數(shù)學單元還支持兩種16位半精度浮點格式– IEEE float-16格式和Google更好的Bfloat-16替代方案,其動態(tài)范圍比FP16大,并且實際上與FP32相同。在不犧牲數(shù)字動態(tài)范圍的情況下,犧牲一些精度對于AI來說是一個折衷方案,這對機器學習訓練和推理結果的影響很小,并且允許在任何給定時間內通過數(shù)學單元運行更多數(shù)據(jù)。而這對機器學習結果有巨大的影響。英特爾于6月宣布的“ Cooper Lake” Xeon SP處理器在其矢量引擎中支持Bfloat16處理,Nvidia的“ Ampere” A100 GPU加速器也支持。顯然,谷歌的TPU AI引擎也支持它發(fā)明的Bfloat16格式,Tachyum的未來Prodigy處理器和Arm Holdings的Neoverse Arm服務器芯片設計也將支持這種格式。Ampere Computing和Marvell都為未來的Arm服務器芯片設計提供了Bfloat16支持。
Power10芯片還支持4位,8位和16位整數(shù)運算,這對于機器學習推理工作負載最為重要。數(shù)學單元根據(jù)具體情況累積為64位或32位,并提供Power9芯片SIMD處理能力的兩倍和矩陣數(shù)學能力的4倍至32倍。這對于處理器而言是一個巨大的提速障礙,并且許多客戶將能夠使用Power10芯片進行推理而無需使用加速器-就像他們在數(shù)據(jù)中心中使用Intel CPU一樣。
讓我們把Power10內核放大,然后逐步研究微體系結構,再研究片上系統(tǒng)。讓我們看一看power10的核心部分:
同樣,這是Power10內核的SMT8版本,您可以在內核上看到2 MB的L2緩存段,它是Power9內核上的L2緩存的四倍。加載和存儲單元的數(shù)量是存儲單元的兩倍,而內存管理單元的數(shù)量則是存儲管理單元的四倍,它們分別裝入SIMD和矩陣數(shù)學單元,分別是Power9的2倍和4倍?;陔p插槽Power10服務器的硅前仿真,與標準的4 GHz時鐘周期的雙插槽Power9服務器相比,此設置可產(chǎn)生比雙插槽Power9服務器高約20%的單線程性能,并且平均核心性能提高了30%( 大概包括來自那些SIMD和MMA單元的少量數(shù)學運算)。
深入研究微體系結構,下圖是Power10內核的工作流程:
這張圖只顯示了SMT8設置的一半,這一半很難繪制出來,但是其等效于SMT4內核。您可以在系統(tǒng)的核心看到四個128位執(zhí)行片,它們的前端是48 KB L1指令高速緩存,后端是32 KB L1數(shù)據(jù)高速緩存。如您所見,此Power10內核的許多功能是Power9內核的2倍或4倍,盡管其中一些功能僅作了適度的改進。加起來,SMT8內核平均可多完成30%的工作,而且由于設計的原因,該過程從與Power9一起使用的GlobalFoundries的14納米工藝縮減到了三星的7納米工藝(其中還有一些額外的IBM產(chǎn)品)不僅是三星的V1流程),每個內核的功耗也減少了一半。這是每瓦性能提高2.6倍的一個因素,聽起來不同系列之間相差很多,但您必須記住,Power9和Power10系列之間也差不多有四年的時間。
這是令人印象深刻的改進,但是IBM是否能用兩年時間完成這項工作?
IBM相對于Power Systems機器中的Nimbus和Cumulus接口,使接口的功率或多或少保持恒定,但并未透露這些接口的功率是多少。Starke所說的是,再次針對4 GHz性能進行了標準化的Power10插槽,其整數(shù)性提升至約3.25倍,浮點或Java性能約3倍,以及Power9插槽的內存帶寬性能約2.25倍。
該內存帶寬數(shù)據(jù)是基于STREAM Triad基準測試的,這一點很有趣,因為這使Power9上的直接連接的DDR4內存與OMI內存相對,在OMI內存上有由Power10芯片上的Serdes驅動的DDR4記憶棒上的緩沖區(qū)。SerDes和緩沖區(qū)設置增加了大約10納秒的內存訪問時間,因此它不是免費的,而是正常的。但是有趣的一點是,因為OMI SerDes并非是針對DDR4進行硬編碼的(但緩沖芯片是)。當DDR5內存出現(xiàn)時,它會位于相同的緩沖區(qū)后面,并且可以直接交換到Power10機器中,此時內存性能會在無需更改處理器或系統(tǒng)時即可突然再次翻倍。
干得漂亮。
在討論了上述的Power10通用接口性能提升之后,我們可能應該看看該個接口。因此,這里是已硬化為SMT8模式的Power10芯片,其功能標記為:
如您所見,Power10裸片上有16個內核,但是IBM僅為其中的應用激活15個(如果是SMT4模式則為30個)內核。因為考慮到三星7納米工藝的良率,第16個內核并不是多余的(盡管IBM從統(tǒng)計學上來考慮的話的確如此),三星正在使用IBM Power10來制造其首個服務器芯片。Power10的存在使得用于客戶端設備和智能手機的Samsung Exynos處理器看起來像個玩具。相比之下,確實如此。無論如何,在某個時候,當收益提高時,IBM將能夠出售該第16核,并且我們肯定他們會這么做。
Power10芯片有180億個晶體管,目前還很輕,它的面積為602平方毫米,堆疊了18層金屬。該芯片具有128 MB的L3緩存,我覺得很有趣的是IBM沒有像Power7,Power8和Power9那樣使用嵌入式DRAM設計,而是使用了三星蝕刻的常規(guī)SRAM。Starke表示,由于流程縮減,IBM可以做到這一點。
這是一點很有趣。多年來,我們在Power10幕后看到的所有路線圖都將其固定在48個核心上。如今,由于上面提到的良率問題,我們非常懷疑IBM是否會將48個內核塞入甚至7納米的單片芯片中,我們只是認為IBM會基本上縮小Power9芯片,增加改進的I / O和內存SerDes。并將其中兩個以SMT4模式放入單個插槽中,以達到48核。當然這只是一個計劃,而不是IBM實際所做的。
確切來講,IBM一直向整個計劃靠近,創(chuàng)建了具有16個SMT8內核或32個SMT4內核的芯片,并且還配備了雙芯片模塊選件,以使內核數(shù)量增加一倍,同時時鐘頻率適度減少在鐵心上保持最高速度,并且仍保持在為自己的電源系統(tǒng)設置的散熱范圍內。因此,它可以在一個接口中提供30個較大或60個較小Power10內核,每個接口總共240個線程。
為了讓其正常運行,有16個x8(八通道)OMI內存接口,總帶寬為1 TB /秒(車道以32 GT / sec的速度運行),還有16個PowerAXON x8接口也以32的速度運行GT /秒,并提供1 TB /秒的帶寬。這些PowerAXON接口可以運行NUMA或OpenCAPI接口,并且沒有充分的理由說明它們不能運行與Nvidia A100 GPU加速器一起使用的NVLink 3.0協(xié)議,但事實是它們卻沒有。(嗯……)Power10處理器還具有兩個PCI-Express 5.0控制器,每個控制器有16條通道,在您意識到IBM希望通過PowerAXON鏈接將很多東西加入Power10芯片之前,這聽起來并不多。我們將看看IBM是否在這些PCI-Express 5.0控制器上支持Intel的CXL協(xié)議。這使其沒有理由不正常運行,并且從理論上講,IBM不能通過PCI-Express鏈接支持AMD Radeon Instinct和Intel Xe GPU加速器。但是,除非使用PCI-Express開關,否則這將限制每個CPU,使只能連接兩個GPU設備。目前尚不清楚是否可以通過PCI-Express協(xié)議在CPU和GPU內存之間提供一致性,但是從理論上講,如果IBM仍想出售混合CPU-GPU系統(tǒng),則沒有理由不起作用。至少在我們看來是如此。
這是IBM最初考慮在服務器中安裝Power10的方式:
我們認為這些主題會有所變化,并且Power10的SMT4變體也可以根據(jù)需要提供。但是,正如您所看到的,IBM將把其NUMA大部件集中在單芯片模塊上,像在Power8和Power9機器中所做的那樣擴展到16個插槽,但在具有以下功能的機器中使用的Power10雙芯片模塊最多達到四個接口。為了使每個插槽的內核數(shù)量增加一倍,IBM只需將時鐘速度降低大約12.5%(從大約4 GHz降低到大約3.5 GHz),但這仍然可以將性能提高1.9倍,并且使該系統(tǒng)擁有更多的I / O和同樣多的內存容量。所以說這是一場公平交易。
順便說一句,這并不是IBM首次采用雙芯片模塊。無論客戶是否知道,具有Power5 +,Power6 +,Power7 +和Power8處理器的系統(tǒng)都具有DCM的一些變體。
HotChips 2020:采用三星7nm工藝的IBM POWER10 處理器
在日前舉辦的Hot Chips 2020會議上,IBM 介紹了公司最新一代的處理器——POWER10的一些進展。Power10對Power9進行一些重大改進。IBM聲稱在相同的功率范圍內,其容量和處理器能效比上一代芯片提高了3倍。
Power10處理器具有動態(tài)執(zhí)行寄存器控制功能,這意味著用戶可以設計出更能抵抗攻擊且性能損失可忽略不計的應用程序。除此之外,它還附帶有IBM所謂的“內存啟動”功能,該功能使集群中任何基于Power10的系統(tǒng)都可以與其他系統(tǒng)共享內存。同時,在等式的AI方面,IBM表示,與Power9相比,Power10處理器在企業(yè)AI推理任務方面的性能將提高10到20倍。