于是,英特爾提出了Move faster,Store more,Process everything的概念,可以處理任何類型的數(shù)據(jù)就叫Process everything,可以存得更多就叫Store more,在存和計算之間的網(wǎng)絡(luò)就是Move faster,以此來應(yīng)對數(shù)據(jù)爆炸性增長的趨勢。

要做到這一點(diǎn)需要解決很多問題,比如如何有效地把大量數(shù)據(jù)讀進(jìn)來,如何盡可能地降低Latency,如何讓帶寬Bandwidth越來越高等等。

數(shù)據(jù)中心會有大量服務(wù)器,服務(wù)器里有內(nèi)存,有各種板卡,連接網(wǎng)絡(luò)的網(wǎng)卡,負(fù)責(zé)存數(shù)據(jù)的硬盤等等,服務(wù)器擺在機(jī)架上,機(jī)架通過網(wǎng)絡(luò)相連,每個機(jī)架都有TOR swtich交換機(jī),Switch跟Leaf swtich通過全連接的方式相連,Leaf和Spine之間通過胖瘦結(jié)構(gòu)或者其他的結(jié)構(gòu)相連,最上層,通過WAN廣域網(wǎng)的出口和外部進(jìn)行互聯(lián)。

整體架構(gòu)中涉及很多網(wǎng)絡(luò)相關(guān)組件,比如硅光就非常流行,英特爾在前幾年發(fā)布硅光的模塊,在市場上取得了領(lǐng)先地位,提供超100G的高帶寬,又比如,P4可編程交換機(jī)也很常見,它可以使得網(wǎng)絡(luò)更加靈活。此外,網(wǎng)卡也是非常重要的。

網(wǎng)絡(luò)圖景里,數(shù)據(jù)中心級別、處理器級別和SoC級別,不同層級有各自的特征。

數(shù)據(jù)中心規(guī)模的網(wǎng)絡(luò),其單鏈路的傳輸速率會非常高,通常能達(dá)到56G甚至112GT/s,同時,在有了PAM4這樣的糾錯方式以后,速率還會提升到224GT/s甚至更高。

雖然單鏈路速率非常高,但是它的鏈路數(shù)一般比較低,常見的是4鏈路或8鏈路。主要原因在于,如果鏈路變多的話,交換機(jī)會承受不了,通常意味著需要很大體積和很大功耗,都會帶來非常大的額外成本負(fù)擔(dān)。

數(shù)據(jù)中心規(guī)模的網(wǎng)絡(luò),都有較低的鏈路數(shù),而且,它的PHY Latency通常都比較高,能達(dá)到20多納秒的級別。

在處理器級別,常用的就是PCIe、CXL等網(wǎng)絡(luò)。這些網(wǎng)絡(luò)的單鏈路速率雖然也比較高,但比不上數(shù)據(jù)中心級別,同時,它的鏈路數(shù)是非常多,一顆CPU可以上百個PCIe通道,通常,它的PHY Latency在10納秒以下。

在SoC級別,主要看UCIe網(wǎng)絡(luò),UCIe(Universal Chiplet Interconnect Express)是Intel牽頭建立的一個新的標(biāo)準(zhǔn)組織,它是一套連接管理的標(biāo)準(zhǔn),它可以把不同廠商和不同規(guī)范的小芯片以標(biāo)準(zhǔn)化的方式集成在一個大的封裝里,使得芯片和芯片之間耦合也會變得更松。

UCIe所定義的鏈路的單鏈路速率不高,但是它的鏈路非常多,通??赡苡猩锨l,所以,它的數(shù)據(jù)通信帶寬非常高,而且延時非常低,一般它的PHY延時小于2ns,延遲非常低。

UCIe的價值在于,它能讓數(shù)據(jù)在Chiplet和Chiplet之間快速搬運(yùn)大量數(shù)據(jù),并且能降低搬運(yùn)大量數(shù)據(jù)所需的功耗。

目前,UCIe組織成員包括英特爾、臺積電、英偉達(dá)、AMD、ARM、高通、三星等業(yè)內(nèi)芯片巨頭,也有阿里巴巴、GCP、微軟、Meta等等互聯(lián)網(wǎng)公司,已形成了強(qiáng)大生態(tài)。

CXL帶來的技術(shù)變革

CXL解決了哪些問題呢?

上圖左側(cè)展示的是只有PCIe的情況,此時,無論是CPU還是加速器都只能通過PCIe的DMA方式去拷貝數(shù)據(jù)。

比如要做AI訓(xùn)練的話,CPU通過memory copy的方式把數(shù)據(jù)拷貝到GPU里,訓(xùn)練完后后再通過memory copy把數(shù)據(jù)拷回去,數(shù)據(jù)拷貝全都依靠PCIe DMA。PCIe DMA的效率非常高,但它只適合拷貝大塊數(shù)據(jù),不適合小塊數(shù)據(jù)。

上圖右側(cè)中是有了CXL的情況,在CPU和OS所管理的內(nèi)存可以通過Load-Store指令與加速器進(jìn)行通信。所以,它比PCIe DMA的方式更靈活,大塊數(shù)據(jù)用PCIe DMA,小塊數(shù)據(jù)通過Load-Store指令來執(zhí)行讀寫。

有了CXL之后就意味著實(shí)現(xiàn)了真正意義上的異構(gòu)計算,這里所說的異構(gòu)計算指的是CPU和其他加速器的協(xié)同工作,加速器分擔(dān)一部分工作,相互之間進(jìn)行數(shù)據(jù)交換,把各自產(chǎn)生的結(jié)果進(jìn)行交換,最終得到一個結(jié)果。

CXL讓計算方式發(fā)生了巨大的改變,既有硬件的改變,也需要軟件上的配合。以英特爾為例,在軟件方面開發(fā)了oneAPI,oneAPI把異構(gòu)計算的工作都統(tǒng)一到了一個編程框架里來執(zhí)行。

當(dāng)前的系統(tǒng)架構(gòu)中,Memory子系統(tǒng)自身面臨很多挑戰(zhàn)。

如左邊圖所示,CPU技術(shù)的發(fā)展使得核心數(shù)量實(shí)現(xiàn)了比較快的增長,但內(nèi)存通道數(shù)增速則相對較慢。從發(fā)展趨勢來看,每個CPU核心所擁有的內(nèi)存通道反而是在下降,這會帶來很多問題,很多CPU核心因?yàn)椴荒艹浞值玫綌?shù)據(jù)來處于滿負(fù)荷的運(yùn)行狀態(tài),會導(dǎo)致整體計算效率下降。

為什么不在增加核心的時候也增加內(nèi)存通道呢?

其實(shí),這牽涉到了CPU的設(shè)計問題,內(nèi)存控制器是在CPU里的,如果增加內(nèi)存通道,則意味著會增加CPU的功耗,芯片面積也會變大,PCB走線距離增加,為了保證信號的完整性,對于PCB本身也提出更高要求,所以,CPU的成本和功耗都會增長。

從服務(wù)器整機(jī)的層面來看,在主板上增加內(nèi)存DIMM槽,插上更多的內(nèi)存后,整機(jī)的成本也會不可避免地增長,即使內(nèi)存成本降低,也不會無限度的降低下去,最終會導(dǎo)致整體成本的上升。所以,不能隨意的無限度地通過增加內(nèi)存通道來解決問題。

CXL的出現(xiàn)從新的維度來解決問題。

CXL把內(nèi)存與CPU的關(guān)系從緊耦合變成一個松耦合,通過CXL網(wǎng)絡(luò)的方式,讓CPU訪問遠(yuǎn)端的內(nèi)存資源,最重要的是,遠(yuǎn)端由由CXL技術(shù)支撐的內(nèi)存可以任意地擴(kuò)展內(nèi)存容量,擺脫了CPU和服務(wù)器本身的限制。

從現(xiàn)實(shí)應(yīng)用的角度看,五年時間里,機(jī)器學(xué)習(xí)模型的規(guī)模增長了50倍,對算力的需求也在急劇增長,然而,現(xiàn)有的內(nèi)存層級完全無法滿足算力增長的需求,而CXL將是解決問題的關(guān)鍵。

那么,CXL是什么?CXL要如何解決問題呢?

CXL有http://CXL.io、CXL.memory和CXL.cache三個協(xié)議:

其中,http://CXL.io就是原來的PCIe,在CXL的建立連接、設(shè)備發(fā)現(xiàn)、配置等過程中發(fā)揮重要作用,連接建立后,CXL.cache協(xié)議負(fù)責(zé)做cache一致性的工作,CXL.cache和CXL.memory配合起來用來做內(nèi)存擴(kuò)展。

CXL.cache和CXL.memory對于latency的要求會比較高,尤其CXL.cache對延遲要求非常高,因?yàn)檫@關(guān)系到計算的效率。

在CXL1.0和1.1規(guī)范定義了三種Device:

Type1Device主要的應(yīng)用場景是高性能計算里的網(wǎng)卡(PGAS NIC),它支持一些網(wǎng)卡的原子操作,它主要利用的協(xié)議就是http://CXL.io和CXL.cache。

Type2Device主要指的是帶有內(nèi)存的加速器,包括GPU、FPGA等加速器,它使用的協(xié)議包括用來做鏈接的http://CXL.io,做cache一致性的CXL.cache,用來做內(nèi)存擴(kuò)展的CXL.memory。

Type3Device主要用作內(nèi)存的Buffer,做內(nèi)存的擴(kuò)展。它主要利用http://CXL.io和CXL.memory的協(xié)議。如圖所示,CPU除了可以用本地的DDR內(nèi)存,還可以通過CXL去擴(kuò)展遠(yuǎn)端內(nèi)存,遠(yuǎn)端內(nèi)存可以是一個大的內(nèi)存池,這里的內(nèi)存可以共享給不同的CPU來用。

CXL2.0規(guī)范實(shí)現(xiàn)了機(jī)架級別的資源池化。

云計算強(qiáng)調(diào)資源可以像水和電一樣按需獲取,云計算的技術(shù)潮流下,追求不同資源之間的松耦合,為的是提高使用效率,為了提高使用效率,要實(shí)現(xiàn)的是相同資源的池化。

隨著技術(shù)的發(fā)展,未來的服務(wù)器不再是傳統(tǒng)意義上的服務(wù)器,它不再具有現(xiàn)實(shí)的形態(tài),用戶從云服務(wù)商那里申請云主機(jī)的時候,主機(jī)的CPU是從CPU池里拿出來的,內(nèi)存是從內(nèi)存池里拿出來的,CPU池和內(nèi)存池通過CXL連起來的。

使用從資源池里拿出來資源組成邏輯上的服務(wù)器,這就是資源解耦和資源池化在未來能帶來的變化。

CXL2.0規(guī)范在資源池化方面有所強(qiáng)化,同時,也還增加了CXL switch功能,它可以在一個機(jī)架內(nèi)通過一套CXL交換機(jī)構(gòu)建成一個網(wǎng)絡(luò)。

2022年,新發(fā)布的CXL 3.0規(guī)范又新增很多特性。

首先,CXL 3.0 PCIe 6.0規(guī)范,它的速率從32GT提升到了64GT,在相同的鏈路時,帶寬翻倍。并且,Latency也沒有任何變化。

第二,CXL 3.0新增了對二層交換機(jī)的支持,也就是Leaf spine網(wǎng)絡(luò)架構(gòu),如此便可以更好地對資源進(jìn)行解耦和池化,做更多的資源池,比如CPU資源池、內(nèi)存資源池、網(wǎng)卡資源池和加速器資源池等,Leaf與Spine之間通過Fabric manager軟件構(gòu)建各種拓?fù)浜透鞣N路由方式。

CXL 3.0不但可以更好地在一個機(jī)柜內(nèi)實(shí)現(xiàn)計算資源和存儲資源的池化和解耦,而且,可以在多個機(jī)柜之間建立更大的資源池,如此一來,對于云計算服務(wù)商的資源管理效率和成本優(yōu)化都會帶來很大幫助。

CXL的未來發(fā)展方向

第一,用來擴(kuò)展內(nèi)存的容量和帶寬,這是非常重要的一個方面。在使用服務(wù)器本地內(nèi)存的同時,還可以通過CXL利用遠(yuǎn)端內(nèi)存,遠(yuǎn)端內(nèi)存的成本和價格相對更低,而且,它能讓CPU和內(nèi)存之間的配比變得更靈活。

進(jìn)一步發(fā)展之后,未來完全可以取消近端本地內(nèi)存,全部都使用遠(yuǎn)端內(nèi)存,這有賴于摩爾定律的作用,讓計算芯片和存儲芯片都有更進(jìn)一步的發(fā)展。

與此同時,CPU上會有比DRAM更高速的內(nèi)存,比如可能會把HBM與處理器封裝到一個die里,使得CPU有更多的高速內(nèi)存。

還有一個趨勢在于遠(yuǎn)端內(nèi)存的持久化,目前,英特爾就有傲騰持久內(nèi)存,但因?yàn)橐恍┰?,英特爾宣布不再繼續(xù)研發(fā)了,不過,業(yè)界還有很多替代方案,比如NVDIMM,配合CXL將這些持久內(nèi)存作為遠(yuǎn)端內(nèi)存,還能夠提供多種實(shí)用功能。

除此之外,還能利用CXL技術(shù)實(shí)現(xiàn)Computational Storage,通過CXL利用內(nèi)存資源,在存儲上做一些壓縮或者解壓縮的操作,類似可以在遠(yuǎn)端實(shí)現(xiàn)的功能還有很多。

CXL帶來的改變從單節(jié)點(diǎn)開始,擴(kuò)展到機(jī)架規(guī)模,而后是Tor級別,最終會影響到數(shù)據(jù)中心級別,CXL將要重構(gòu)未來的數(shù)據(jù)中心。

數(shù)據(jù)中心利用CXL做解耦和池化,CXL技術(shù)能夠讓不同的資源從緊耦合變成松耦合,讓相同的資源變成池化資源,會形成CPU資源池、GPU資源池以及內(nèi)存資源池,各個資源池通過CXL連接。

在未來發(fā)展中,隨著CXL技術(shù)的逐步落地,IPU承擔(dān)的任務(wù)也會越來越多,既作為CXL的端點(diǎn),又作為以太網(wǎng)的端點(diǎn),會有很多功能和負(fù)載卸載到IPU上,架構(gòu)上會有很多變化,將會有很多新的創(chuàng)新。

比如把存儲offload到IPU上,未來還有一些塊存儲或者其他內(nèi)存相關(guān)服務(wù)也都可以用IPU來承載,通過CXL連接到相應(yīng)的資源池上,總之,未來有非常多的想象空間。

作為總結(jié),不得不說的是,未來的發(fā)展方向中,最終就要實(shí)現(xiàn)徹底的解耦和池化,過程是逐步從Rack級別,提升到資源池的級別,甚至是數(shù)據(jù)中心級別,而這些池化資源之間的共享就靠CXL和UCIe來實(shí)現(xiàn)。

分享到

zhupb

相關(guān)推薦