AMD = A Modular Datacenter ?
看起來好像有強行把芯片設計和數據中央建設拉到一起尬聊的感到,但世間也沒有那麼多的一見如故,一些有意義的商量未嘗不是從尬聊開端的。
就我自己而言,本年已經多次在關于數據中央的詞章和(線上)分享中提到AMD:從1月29日開端到2月6日,遊戲會議每日都在進行物質擴容,日均擴容云主機靠攏1.5萬臺,8天總共擴容過份10萬臺云主機,共涉及超百萬核的算計物質投入,全體由遊戲云自研的辦事器星星海提供支撐。這款辦事器基于AMD上年8月發行的代號Rome(羅馬)的第二代EPYC處置器,最大的特色即是核多——雙路部署再算上超線程,一臺采用遊戲云定制版EPYC處置器的熱門賽事星星海辦事器可認為云辦事器提供多達180個核——也即是說,這100萬核辦事器物質,只需求不到6000臺該款自研辦事器即可知足。
遊戲云星星海SA2辦事器采用2U高度交融相似長途散熱片(remote heat-sink)的設計,合作6個60mm電扇,據稱可以支持2個300W級其它CPU(AMD第二代EPYC處置器公然版本最高TDP為280W)
實質上,官方名稱為AMD EPYC 7002系列的第二代EPYC處置器最多能提供64個核芯、128個線程,遊戲云定制版本抉擇了48核芯(96線程)僅僅。至少在CPU的核數(core count)上,AMD給Intel(英特爾,昵稱大英)造成了很大的包袱。上個月英特爾發行了代號為Cooper Lake的第三代至強可開拓處置器(Xeon Scalable Processor,XSP),主打四路和八路市場,四路部署可提供112核芯224線程,核數上堪與雙路EPYC 7002系列抗衡,為10nm制程的Ice Lake奪取時間。
摩爾定律難以延續的后果即是CPU的功耗連續攀升,第一代至強可開拓處置器(公然版)里TDP最高的205W,到第三代已是平常,250W算是克制——終究要斟酌四路的散熱需要
話說上次AMD搞得大英如此狼狽,還要追溯到本世紀初的64位路線之爭。眾所周知,英特爾是x86及其生態(獨特是軟件生態)的締造者,屬于親媽級別,AMD充其量是個后媽。不過,x86幾十年的成長史證實,親媽未必就比后媽更了解小孩的成長潛力。也可以前一陣大火的劇集《隱秘的角落》為例,看完就會發明,對于朱朝陽的躲藏本事,后媽的認知好像先于親媽。
Cooper Lake:你看我還有時機嗎?
簡樸的說,Intel創設成長x86生態,AMD堅持捍衛x86路線——不停改建作為生態核心的x86處置器,煥顏新生。
盛衰無常:條理與制程的雙簧
固然已經在已往十年中漸漸淪為喜好者口中的牙膏廠,但在古史上,英特爾一直不乏首創精力。看待x86的立場可以算是這種精力的一個別現,最少在進入64位時代之前,英特爾實在不太瞧得上x86,總覺得這個娃太lo——可能是親媽更了解孕育過程中的種種先天缺陷吧——幾回三番地在重大的轉折點,想要與時俱進,重起爐灶,帶給用戶船新體會。反而是AMD屢屢在要害時刻出來捍衛x86,通過翻新加蓋來保持其性命力。
64位是要害的轉折點。上世紀九十年月末,還是32位的x86剛插足辦事器市場不久,英特爾抉擇與惠普(HP)聯手開闢基于IA-64條理的Itanium(安騰)作為接替人,與已經64位了的RISC陣營大佬們對立。然而,AMD以為x86還可以急救一下,決擇通過64位開拓來續命,并在2024年4月發行首款64位x86處置器Opteron,兩年后又把x86(-64)帶入多核時代。
此時,英特爾已經在IA-64的路上走了十長年。時過境遷,當初設定的目的并沒有實現,而x86開拓到64位和多核之后,不光軟件和利用的生態體制得到了完整的接管,功能也徹底可以一戰。用戶用腳投票,大英不得不從。
第二代EPYC處置器發行會上,Google出示2024年7月9日上線的其第100萬臺辦事器的照片,追訴與AMD的革命友愛……還是臺四路辦事器
英特爾痛定思痛,決擇用條理和制程構筑雙保險,在2024年提出了Tick-Tock(取自于時鐘的嘀-嗒周期)量產模式,即先通過制程升級將芯單方面積縮小,是為Tick;再基于練習純熟的制程改用新的微條理,是為Tock。其時的英特爾工場在專業和產能上都佔領顯著優勢,只要條理上回到正軌,擺佈手組合拳一出,產量受限的AMD哪里支撐得住?在2024年推出Nehalem微條理之后,英特爾終于奪回自動權。
在英特爾施加的強盛包袱下,AMD在處置器條理上也犯了過錯,2024年推出的Bulldozer(推土機)條理采用了縱然此刻看來也過于激進的模塊化設計。跟著2024年英特爾開啟至強E5時代,AMD在節節失利后不得不退出辦事器市場,上一個巔峰期完全了結。
有道是:福兮禍所依,禍兮福所伏。先賢曾經曰過:縱有條理、制程雙保險,怎樣CEO是單點。2024年英特爾推出最后一代至強E5E7(v4),這是英特爾首批采用14nm制程的辦事器CPU,同時也宣告了Tick-Tock模式的終結,改用Process–Architecture–Optimization (制程-條理-優化)的三步走模式。
在這個可以簡稱為PAO的模式里,固然仍是先制程、后條理的步調,但新參加的優化不顧是針對兩者中的哪一個還是兼而有之,都起到了拉長制程換代周期的功效。第三代至強可開拓處置器已經是第四波采用14nm制程的辦事器CPU,14nm后面的+都數不清晰有幾個了——還好預測年底發行的Ice Lake將終止這個土撥鼠之日式的制程輪迴。
條理層面上,從代號Skylake的初代至強可開拓處置器開端,由環形總線改為6×6的2D-mesh,然后連續優化。在條理的角度,Mesh和環形總線都屬于所謂傳統的單片(Monolithic)式條理,好處是整體性好,涉及到IO的功能對照有擔保;瑕疵是對制程不太友善,跟著規模的擴張,好比核數和Cache的提升,良率上的挑釁很大,高檔產物的本錢下不來,這對于講求高核數的云算計辦事提供商顯然不是個喜報。
至強E5E7 v4的四環(2組雙向環形總線)與至強SP的6×6 Mesh條理
要害時刻,又是沉寂長年的AMD挺身而出,接盤Tick-Tock,以個人的方式維護摩爾定律。
這個方式,即是模塊化。
MCM:同構對等模塊化的利與弊
先簡樸回溯一下AMD之前的模塊化設計為什麼會失敗。Bulldozer條理的模塊化設計,創設在AMD對前程利用趨勢的不靠譜假設上,即整數(Integer,INT)運算將佔領絕對主導身份,結論是提升整數運算單位,減少浮點(Floating Point,FP)運算單位。于是,Bulldozer條理很雞賊的采用了兩個(具有完整整數運算單位的)核芯共用一個浮點運算單位的模塊化設計,兩個模塊就可以提供4個核芯(但只有2個浮點運算單位),6核以此類推。
模塊化本身并沒有錯,Intel Nehalem的模塊化設計就很勝利。Bulldozer錯在拆東墻補西墻,結局連補強都算不上
不必放馬后炮,這也是一個妄揣用意(用戶意志)的行徑。縱然是在AI大行其道的今日,第二代英特爾至強可開拓處置器已經支持INT8加快推理運算,也不可和一般意義上CPU的整數運算劃等號。貿然押寶,錯了當然怪不得別人。
不丟臉出,Bulldozer的模塊化,與之前Intel Nehalem條理的模塊化設計,只限于條理層面,并不是為制程斟酌——CPU無論幾個模塊幾多核,都是作為一個整體(die)來制造的,終究十年前制程還沒到瓶頸。
然而,到了AMD以代號Naples的(第一代)EPYC處置器重返辦事器市場的2024年,摩爾定律放緩的眉目已很顯著。同樣的14nm(可能還沒有英特爾的進步)制程,AMD如何以更低的本錢提供更多的核芯?
EPYC系列處置器基于AMD的Zen系列條理,從Zen、Zen+到Zen 2,以及安排中的Zen 3的成長路線,有點像前面提到的Tick-Tock:開闢一個良好的根基然后輪替演進,不停優化。
與前輩們差異,Zen系列的模塊化顯著著重于解決制程面臨的挑釁,即芯片在物理上被切割為多個die(晶片),通過Infinity Fabric(IF)互連為一個整體,所以每個die即是一個模塊,但不一定是模塊化設計的最小單元。
第一代EPYC處置器的4個die及Infinity Fabric昭示
還是從初代EPYC處置器所采用的Zen條理說起。Zen確立了該系列算計單位模塊化的最小單元CCX(Core Complex,核芯復合
體),每個CCX包含有4個Zen核芯(Core),以及8 MiB共享L3 Cache,每核芯2 MiB。
從AMD公然的昭示圖來看,各片(Slice)L3 Cache之間的連結方式像是full-mesh(全狀,即每兩個點之間都有直接連結,無需跳轉),CCX內部的跨核芯L3 Cache拜訪是一致的
Zen的CCD里除了2個CCX,還有2個DDR內存管理器(各對應1個內存通道),用于片上(die之間)互連的Infinity Fabric(IF On-Package,IFOP),而CPU之間互連的Infinity Fabric(IF Inter-Socket,IFIS)與對外的PCIe通道是復用的——這個常識點在后面會用到。
芯片層面的模塊是CCD(Core Complex Die),包含有2個CCX,共8個Core、4 MiB L2 Cache、16 MiB L3 Cache。官方名稱為AMD EPYC 7001系列的第一代EPYC處置器只有CCD這一種(die層面的)模塊,所以每個CCD除了2個CCX,還有大批IO接口器件,包含有DDR、Infinity FabricPCIe管理器,CCX占CCD面積的比例只比各半略多(56)。
這個多芯片模塊(multi-chip module,MCM)條理的代號為Zeppelin(齊柏林),四個這樣的復合型CCD構成完整的第一代EPYC處置器,最多能提供32核芯、64 MiB L3 Cache,直接減少CCD的數目就會得到面向PC市場的高檔(2×CCD)和主流產物(單CCD)。
依照AMD提供的數據:每個die的面積為213mm²(平方毫米),4個die的MCM封裝總面積為852mm²,假如要用大型單一芯片來實現,面積可以縮小到777mm²,大概節省10,不過制造和測試本錢要提高約40,徹底32核的收益降落約17、本錢提高約70。投入產出比當然極度劃算,也變相的說出了大英的苦衷——可是,后者為什麼還在堅定單片路線呢?
MCM這種徹底對稱的模塊化計劃,假如套用到數據中央領域,相當于一個園區,幾棟建筑組織和性能徹底一樣,都涵蓋了機房、變配電、柴發、冷站、辦公和接待區域等。優點當然是彼此之間沒有硬性依靠,每棟建筑都可以孑立作為數據中央採用,照此復制就可成倍擴張規模;瑕疵是沒有其他類型的建筑,而有些性能還是需求專門的建筑會合和分區控制的,好比人員辦公和統一接待……
假如一個數據中央園區只有黃框里這一種建筑(模塊)……實質上,加上左邊的66KV變電站,這里也只是整個園區的一角
何況,與絕多數的數據中央園區差異,CPU對各模塊之間的耦合度要求高得多,不然無法作為一個整體來行運,分工配合快速辦妥數據處置等工作。而這,正是MCM計劃的局限性地點。
第一代EPYC的每個CCD都有個人的內存和IO(重要是PCIe)通道,加上CCD之間的互連,每個CCD的外部IO都很重度
多芯片(對稱)設計、全分布式條理的特色是內存和IO開拓本事與CCD數目同步,跟著核芯數目的提升,內存和IO的總容量(包含有帶寬)會提升,這當然是好處,但瑕疵也隨之而來:
首要是局部性(locality)會減低IO的功能,重要是跨CCD的內存拜訪時延(latency)顯著上升。由於每組(2個)CCX都有個人的當地內存,假如要拜訪其他CCD上連結的內存,要額外消費許多時間,即所謂365運彩的NUMA(Non-Uniform Memory Access,非一致性內存拜訪)。固然Zen的CCD上有充足多的IFOP,讓4個CCD之間能構造全連結(full-mesh),無需經其他CCD跳轉(相似于CCX內4個核芯之間的局勢),但IO路徑終究變長了;假如要拜訪其他CPU(插槽)連結的內存,還要途經IFIS,時延會進一步上升。
CCD里的兩個CCX也通過Infinity Fabric連結,同樣會提升跨CCX的Cache拜訪時延
依據AMD提供的數據,差異內存拜訪的時延程度大要如下:
跟著拜訪路徑變長和復雜,時運彩 不讓分 意思延以大概各半的比例提升,這個幅度還是很顯著的。
同一個CCD里的內存拜訪沒有顯著不同,而跨CCD的內存拜訪,時延提升就很顯著了
然后是PCIe,前面已經有圖說明,Zen用于CPU之間互連的IFIS與PCIe通道是復用的,即單路(單CPU)的場合下全都用于PCIe通道,共有128個;雙路(雙CPU)的場合下每個CPU都要拿出各半來作為(兩者之間的)IFIS,所以(對外的)PCIe通道數目仍然是128個,沒有跟著CPU數目的提升而增長。
簡樸歸納一下,Zen條理的疑問是:核數越多,內存拜訪的一致性越差;CPU數目提升,外部IO的開拓本事不變——NUMA觸發的跨CPU拜訪時延增長疑問還更嚴重。
單CPU就能提供128個PCIe 3.0通道原先是第一代EPYC處置器的一大優勢,但雙CPU仍然是這麼多,就略顯尷尬了
核數進一步提升的難題很大,無論是提升每個CCD的核數,還是提升CCD的數目,都要面對互連的復雜度疑問,也會進一步惡化一致性。
說得更直白一些,即是Zen條理的開拓本事對照有限,難以支持更大的規模。
既然雙路部署有利有弊,AMD又是時隔長年重返辦事器市場,單路一度被以為是EPYC的衝破口,好比戴爾(Dell)在2024年頭推出三款基于第一代EPYC的PoerEdge辦事器,此中就有兩款是單路。
1U的R6415和2U的R7415都是單路辦事器
相似的場合在一般用不到那麼多核及IO開拓本事的PC市場表現得更為顯著,在只需求一到兩個CCD即可的場合下,花費者更多感受到的是低本錢帶來的高性價比,所以AMD Yes!的鼓噪重要來自自己用戶,辦事器市場在等到EPYC的進一步成熟。
只有1個die的Ryzen將Zen條理的瑕疵最小化,牟取自己用戶的喜歡也就缺陷為奇了
Chiplet:異構融合模塊化的是與非
時隔兩年之后,AMD推出基于Zen 2條理的第二代EPYC處置器,通過條理與制程一體優化,mlb繁體中文官方網站到達最高64核、256 MiB L3 Cache,差別是第一代EPYC的2倍和4倍,內存拜訪一致性和雙路的開拓性也有差異水平的改良,終于牟取了一眾云辦事提供商(CSP)的青睞。
Zen 2的整體設計思維是Zen的延續,但做了許多顯著的改進,合作制程(部門)升級到7nm,衝破了Zen和Zen+在規模開拓上的限制。
首要,Zen2條理延續了ZenZen+條理每個CCD有2個CCX、每個CCX有4個核芯共享L3 Cache的布局,不過每個核芯的L3 Cache增大一倍,來臨4MiB,每個CCX有16 MiB L3 Cache,是ZenZen+條理的兩倍。
CCD層面的重要變動是把DDR內存、對外的Infinity Fabric(IFOPIFIS)和PCIe管理器等IO器件剝離,以便于升級到7nm制程。AMD表明,第一代EPYC中,上述IO器件占CCD芯單方面積的比例到達44,從制程提高到7nm中獲益很小;而第二代EPYC的7nm CCD中,CPU和L3 Cache這些核心算計、儲備器件的占比,高達86,具有很好的經濟性。
被從CCD中拿出來的DDR內存管理器、Infinity Fabric和PCIe管理器等IO器件,構造了一個獨自的IO芯片,即IO Die,簡稱IOD,仍然采用成熟的14nm工藝。
自左至右,差別是傳統單片式、第一代EPYC的MCM、第二代EPYC的Chiplet三種條理的昭示圖
一個IOD居中,最多8個CCD環繞著它,AMD把這種做法稱為Chiplet(小芯片)。
假如繼續拿數據中央的模塊化來強行類比,相當于把整個園區內的變電站、柴發、冷站、辦公和接待區域都整合到一個建筑里,位于園區中心,周邊是組成徹底雷同的一座座機房樓……你說,這樣一個所有機房樓都離不開的建筑,該有多主要?
僅從布局看,和第二代EPYC處置器有點像的數據中央,但變電站在園區外,制冷也是分布式的(與4個機房模塊在一起),中間的建筑并沒有上面假想的那麼主要
第一代EPYC處置器(Naples)與第二代EPYC處置器(Rome)的片上布局對比,后者是1個IOD + 8個CCD,共9個小芯片構造的融合多die設計
由於CCD的數目提升一倍,所以Rome的核數可以到達Naples的兩倍;由於每個CCXCPU核芯的L3 Cache容量也提升了一倍,所以Rome的L3 Cache總容量可以到達Naples的四倍。
14nm IOD + 7nm CCD的組合——由於不是全體升級到7nm,所以我更愿意稱之為制程的優化——表現了更高的開拓性和敏捷性,使第二代EPYC或許以較低的制造本錢提供更充沛的產物組合,提高了市場競爭力。不過,事務并沒有看起來這麼簡樸,要了解產物的具體構成和預期的功能體現,您還需求繼續往下看。
2024年8月,第二代EPYC正式發行后不久,AMD在Hot Chips大會上介紹了Zen 2產物的Chiplet設計。可能是之前有Zen+條理采用12nm制程的緣故吧,IOD的制程被寫成了12nm,其他情況的官方質料都是14nm,所以我們還是以后者為準
本年2月IEEE的ISSCC(International Sol-State Circuits Conference,國際固態電路峰會)2024上,AMD更詳細的介紹了Zen 2這一代產物的設計。交融前一幅圖可以看到,第二代EPYC的IOD具有83.4億晶體管,數目與同樣采用14nm制程的英特爾SkylakeCascade Lake相當——固然兩者的晶體管類型構成有很大分別,但可以作為一個參照,說明這個IOD自身的規模和復雜度。
從紅框中的選項來看,EPYC 7302 CPU有4個CCD,每個CCX有2個核芯,可以抉擇各啟用1個
IOD會合所有IO器件的一個優點是,CPU能提供的內存通道數目與CCD的數目無關。E企試驗室前一陣測試了基于第二代EPYC處置器的Dell PoerEdge R7525辦事器,送測部署包含有2個AMD EPYC 7302處置器,從PoerEdge R7525的BIOS建置中可以看到,這款16核的CPU有4個CCD(而不是8個),應當對應下圖中右二的情境:
上方柱狀圖是AMD列出7+14nm Chiplet計劃與假設的單片7nm計劃比擬,本錢優勢可以到達各半以上(64核沒有假設,可能是指單片式很難制造);下方從左至右依次是8、6、4、2個CCD的布局,原理是盡可能的對稱
固然7302在EPYC 7002系列產物中定位偏低端,只有16個核芯,用4個CCX就能知足,不過它佔有128MiB的L3 Cache,這又需求8個CCX才可以。因此,7302的每個CCX只有2個核芯,享受原先屬于4個核芯的16 MiB L3 Cache。
從EPYC 7002系列的部署表中可以看出,7302下面72劈頭的產物才是真正的低端,好比同樣是16核的7282,不光L3 Cache容量只有7302的各半(卻是相符每核4 MiB的標配),並且僅支持4個內存通道,也是7302等產物的各半——說明其CCD數目是2個,就像前一幅圖右下方所示的場合——4個內存通道部署的運行頻率也低,只有DDR4-2667,與尺度的8通道DDR4-3200比擬,理論內存帶寬僅為40多
Dell PoerEdge R7525用戶手冊里對內存條的安裝位置有很詳細的說明,終究插滿8個內存通道和只用4個內存通道,功能差距太大
IOD會合所有IO對功能也有優點,由於內存管理器會合在一個芯片上,有助于減低內存拜訪的局部性(NUMA)。但是,AMD在許多情況放出的昭示圖很有誤導性,輕易讓人認為,對Rome(下圖右側)來說,同一個CPU上的內存拜訪是不存在NUMA的。
從上面的數據來看,第二代EPYC處置器的當地內存拜訪時延有所增長,終究內存管理器和CCX不在一個die上了;收益是跨CPU內存拜訪的時延有所降落,總體更為平均
好在,稍微詳細一點的條理昭示圖表示,一個EPYC 7002系列CPU內部的內存拜訪仍然會有遠近之分:
Dell PoerEdge R7525的BIOS部署中,可以在L3 Cache的NUMA建置為Enabled之后,看到每個CPU內部實在還是可以像EPYC 7001系列一樣,分成4個差異的NUMA區域
這時學術性會議的代價就表現出來。AMD在ISSCC 2024上的演講表示,完整版的Server IOD要承載的性能太多,已經有太多的晶體管,中間都被Infinity Fabric和PCIe關連的IO所佔領,內存管理器只能兩兩一組布置在IOD的四角,每2個CCD就近共享2個內存管理器。由于中間已經沒有走線空間,只能構成一個沒有對角線連結的2D-mesh拓撲——僅從拓撲角度而論,還不如EPYC 7001系列4個CCD的full-mesh連結方式。所以,逼近的拜訪有是非邊造成的耽擱不同,對角線的內存拜訪由於要走過一長一短兩條邊,沒有捷徑可走,天然要更慢一些。
留心放大看IOD布局昭示圖和右側1~4的差異品級時延注解,可以懂得為每個CPU內部仍然分為4個NUMA區域:當地、短邊、長邊、(拐個彎才幹抵達的)對角線
Hot Chips大會上的這張昭示圖突出了差異性能的Infinity Fabric導致的IOD中部擁擠,和DDR內存管理器都被擠到邊角上的感到。交融前一張圖,不難懂得,像EPYC 7282這樣只有2個CCD對角線布置的低端SKU,另一條對角線上的4個DDR內存管理器重要起提升內存容量的作用,不如只保存CCD就近的4個內存通道
罷了,不顧是EPYC 7001系列的MCM,還是EPYC 7002系列的Chiplet,跟著芯片數目的增長,功能肯定會受到越來越顯著的陰礙(而不是近乎線性的同步增加),只是好的條世足怎麼買理會延緩總體功能增長的衰減速度。
這里我們可以回過火來看看同樣基于Zen 2條理的第三代AMD Ryzen處置器,主流PC產物沒有那麼多核數要求,只用2個CCD即可知足,所以其配套的Client IOD(cIOD)正好是Server IOD的四分之一,從前面圖中晶體管數目的對比(20.9億 vs. 83.4億)也可以看出來。
代號Matisse的第三代Ryzen,仍然可以看到兩個DDR4內存管理器偏居一隅的遺存,但對兩個CCD已經公正了許多,根本不存在NUMA疑問。也就難怪AMD真香黨在花費類用戶中比例要大得多
盡管CCD升級到了7nm,但更多核芯、更大得多的L3 Cache,意味著整體功耗的上升,好比同樣16核的7302和7282,前者Cache大一倍,頻率略有提高,默認TDP就來臨了155W,Dell為送測的R7525配備了180W的散熱器——而EPYC 7282的TDP則只有120240W。當然,CCD利用7nm的功效還是對照顯著的,同樣16核、L3 Cache只有7302四分之一,運行頻率還低500MHz的7301,TDP也有150170W,根本與7302相當。
為了知足云算計、高功能算計(HPC)和虛擬化等配景的用戶需要,AMD又向EPYC 7002系列CPU中提升了大批多核大(L3) Cache以及核數雖少但頻率很高的型號(如本年初發行的7Fx2系列),導致全系列產物中TDP在200W以上的SKU占比很高,也給辦事器的散熱設計帶來了更高的挑釁。
200W+的CPU將越來越常見
EPYC 7002系列的另一大改進是PCIe從3.0升級到4.0,單路仍然是128個通道,但雙路可以支持多達160個通道(好比Dell PoerEdge R7525的特定部署)——在主板支持的場合下。第一代EPYC處置器推出時的一個賣點是,為其設計的主板也可以支持第二代EPYC處置器。沒有廣而告之的是,要支持PCIe 4.0,主板需求從頭設計。用老主板可以更快的把第二代EPYC處置器推向市場,卻不可充裕施展新CPU的全體本事。
但是,PCIe 4.0本身即是一個很大的話題,留待以后(有時機的話)專文商量。