本文討論了可組合的服務(wù)器架構(gòu)、異構(gòu)計算以及CXL 標(biāo)準(zhǔn)的版本 1、2 和3。
編譯來源:semianalysis
隨著每一家主要的半導(dǎo)體和數(shù)據(jù)中心公司都加入了該標(biāo)準(zhǔn),第一代設(shè)備即將發(fā)布,Compute Express Link (CXL) 的吸引力正在達(dá)到臨界點(diǎn)。第 3 代 Compute Express Link (CXL) 規(guī)范剛剛發(fā)布,它帶來了該標(biāo)準(zhǔn)先前版本中缺少的一些重大更改。本文討論了可組合的服務(wù)器架構(gòu)、異構(gòu)計算以及 CXL 標(biāo)準(zhǔn)的版本 1、2 和 3。
過去,數(shù)據(jù)中心芯片主要是為了構(gòu)建更好的 CPU 內(nèi)核和更快的內(nèi)存。十年前的服務(wù)器大多看起來與今天的服務(wù)器相同。在過去十年中,隨著橫向擴(kuò)展和云計算的出現(xiàn),這場戰(zhàn)斗發(fā)生了變化。最快的核心不是優(yōu)先級。重點(diǎn)是如何經(jīng)濟(jì)高效地提供總體計算性能并將其連接在一起。
這些趨勢都指向計算資源專業(yè)化的趨勢。收益遞減定律的最終示例之一是,在通用 CPU 性能上花費(fèi)的每個增量晶體管都會帶來越來越少的性能。異構(gòu)計算占主導(dǎo)地位,因為專用ASIC 可以在使用更少晶體管的特定任務(wù)中提供超過10 倍的性能。
為每個工作負(fù)載設(shè)計具有精確計算資源的特定芯片非常昂貴。因為光掩模設(shè)置成本、驗證和確認(rèn),設(shè)計芯片的固定成本正在飆升。與其為整個工作負(fù)載設(shè)計芯片,不如為計算類別設(shè)計芯片并將它們連接到特定工作負(fù)載所需的任何配置中,這將更具成本效益。
Gordon Moore 博士在預(yù)測“摩爾定律”的原始論文中說,用較小的功能構(gòu)建大型系統(tǒng)可能會更經(jīng)濟(jì),這些功能分別打包和互連。大功能的可用性與功能設(shè)計和構(gòu)造相結(jié)合,應(yīng)該允許大型系統(tǒng)的制造商快速且經(jīng)濟(jì)地設(shè)計和構(gòu)造大量不同的設(shè)備。
之前,服務(wù)器內(nèi)的芯片連接通常使用 PCI Express 完成。最大的缺點(diǎn)是這個標(biāo)準(zhǔn)缺乏緩存一致性和內(nèi)存一致性。這兩個概念的非技術(shù)類比是,如果考慮像郵局這樣的服務(wù)器。信件是異步的,通常是在新信息使包含原始信息的信件過時之后的幾天。連貫性有助于管理和平衡這一點(diǎn)。
使用 PCI Express,從性能和軟件的角度來看,不同設(shè)備之間通信的開銷相對較高。此外,連接多個服務(wù)器通常意味著使用以太網(wǎng)或 InfiniBand。這些通信方法共享所有相同的問題,并且具有更差的延遲和更低的帶寬。
2018 年,IBM 和英偉達(dá)將NVLink 的 PCI Express 缺陷解決方案引入了當(dāng)時世界上最快的超級計算機(jī)Summit。AMD 在Frontier超級計算機(jī)中擁有類似的專有解決方案,稱為 Infinity Fabric。沒有任何行業(yè)生態(tài)系統(tǒng)可以圍繞這些專有協(xié)議發(fā)展。CCIX 在 2010 年代中期成為潛在的行業(yè)標(biāo)準(zhǔn),但它從未真正起飛,因為盡管得到了 AMD、賽靈思、華為、Arm 和Ampere Computing 的支持,但它缺乏關(guān)鍵的行業(yè)支持。
英特爾擁有超過 90% 的 CPU 市場份額,因此如果沒有他們的支持,任何解決方案都不會成功。英特爾正在制定自己的標(biāo)準(zhǔn),并于 2019 年將其專有規(guī)范作為 Compute Express Link (CXL)1.0 捐贈給了新成立的 CXL 聯(lián)盟。該標(biāo)準(zhǔn)得到了半導(dǎo)體行業(yè)大多數(shù)最大買家的同時支持。CXL 通過使用其物理層和電氣層來搭載 PCIe 5.0 的現(xiàn)有生態(tài)系統(tǒng),但使用改進(jìn)的協(xié)議層,為加載存儲內(nèi)存事務(wù)增加一致性和低延遲模式。
由于建立了行業(yè)中大多數(shù)主要參與者都支持的行業(yè)標(biāo)準(zhǔn)協(xié)議,CXL 使向異構(gòu)計算的過渡成為可能?,F(xiàn)在業(yè)界有一個標(biāo)準(zhǔn)的互連來將這些不同的芯片連接在一起。
AMD 的 Genoa 和 Intel 的 Sapphire Rapids 將在 2022 年末/2023 年初支持 CXL 1.1。CXL1.1 附帶 3 個支持桶,CXL.io、CXL.cache 和 CXL.mem。CXL.io可以被認(rèn)為是標(biāo)準(zhǔn) PCIe 的一個類似但改進(jìn)的版本。CXL.cache允許 CXL 設(shè)備連貫地訪問和緩存主機(jī) CPU 的內(nèi)存。CXL.mem 允許主機(jī) CPU 連貫地訪問設(shè)備的內(nèi)存。更詳細(xì)的解釋包含在下面的要點(diǎn)中。大多數(shù) CXL 設(shè)備將使用 CXL.io、CXL.cache和 CXL.mem 的組合。
CXL.io 是用于初始化、鏈接、設(shè)備發(fā)現(xiàn)和枚舉以及注冊訪問的協(xié)議。它為 I/O 設(shè)備提供接口,類似于 PCIe Gen5。CXL 設(shè)備也必須支持 CXL.io。
CXL.cache 是定義主機(jī)(通常是 CPU)和設(shè)備(例如 CXL 內(nèi)存模塊或加速器)之間交互的協(xié)議。由于安全使用其本地副本,這允許連接的 CXL 設(shè)備以低延遲緩存主機(jī)內(nèi)存. 把這想象成一個 GPU 直接從 CPU 的內(nèi)存中緩存數(shù)據(jù)。
CXL.memory / CXL.mem 是為主機(jī)處理器(通常是CPU)提供使用加載/存儲命令直接訪問設(shè)備附加內(nèi)存的協(xié)議。將其視為使用專用存儲類內(nèi)存設(shè)備的 CPU 或使用 GPU/加速器設(shè)備上的內(nèi)存。
到目前為止,我們主要討論的是異構(gòu)計算,但 CXL 的真正關(guān)鍵在于內(nèi)存。
數(shù)據(jù)中心存在大量內(nèi)存問題。自 2012 年以來,核心數(shù)量迅速增長,但每個核心的內(nèi)存帶寬和容量并未相應(yīng)增加。自2012 年以來,每個內(nèi)核的內(nèi)存帶寬有所下降,并且這種趨勢將在未來繼續(xù)。此外,直連 DRAM 和 SSD 在延遲和成本方面存在巨大差距。最后,昂貴的內(nèi)存資源往往利用率很低,這是一個殺手锏。低利用率對于任何資本密集型行業(yè)來說都是一個很大的拖累,而數(shù)據(jù)中心業(yè)務(wù)是全球資本最密集的行業(yè)之一。
微軟表示,50% 的服務(wù)器總成本僅來自 DRAM。盡管 DRAM 成本高昂,但高達(dá)25% 的DRAM 內(nèi)存被擱置!簡單來說,微軟 Azure 總服務(wù)器成本的 12.5% 是無所作為。
假設(shè)一下,如果此內(nèi)存可以改為存在于連接的網(wǎng)絡(luò)上,并跨多個 CPU 和服務(wù)器動態(tài)分配給虛擬機(jī),而不是坐在每個 CPU 上。內(nèi)存帶寬可以根據(jù)工作負(fù)載的需求增長和縮小,這將大大提高利用率。
這個概念不僅限于內(nèi)存,還包括所有形式的計算和網(wǎng)絡(luò)。可組合的服務(wù)器架構(gòu)是指服務(wù)器被分解成各種組件并放置在組中,這些資源可以動態(tài)地動態(tài)分配給工作負(fù)載。
數(shù)據(jù)中心機(jī)架成為計算單元。客戶可以為其特定任務(wù)選擇任意數(shù)量的內(nèi)核、內(nèi)存和 AI 處理性能?;蛘吒玫氖牵雀?、微軟、亞馬遜等云服務(wù)提供商可以根據(jù)他們正在運(yùn)行的工作負(fù)載類型任意向他們的客戶分配資源,并僅根據(jù)他們使用的內(nèi)容向客戶收費(fèi)。
這一愿景是服務(wù)器設(shè)計和云計算的圣杯。有許多與此相關(guān)的復(fù)雜工程問題;許多人集中在構(gòu)建網(wǎng)絡(luò)以連接所有內(nèi)容的延遲和成本上。這些必須嚴(yán)格檢查,但協(xié)議必須放在第一位,這就是 CXL 2.0 和 3.0 帶來的。
CXL 2.0 的主要特性是支持內(nèi)存池和切換。CXL 交換機(jī)可以連接多個主機(jī)和設(shè)備,從而使連接在 CXL 網(wǎng)絡(luò)上的設(shè)備數(shù)量顯著增長。新的多邏輯設(shè)備功能允許眾多主機(jī)和設(shè)備全部鏈接并相互通信,而無需歷史規(guī)定的主從關(guān)系。資源網(wǎng)絡(luò)將由結(jié)構(gòu)管理器進(jìn)行編排,結(jié)構(gòu)管理器是用于控制和管理該系統(tǒng)的標(biāo)準(zhǔn) API。細(xì)粒度的資源分配、熱插拔和動態(tài)擴(kuò)容允許硬件在各個主機(jī)之間動態(tài)分配和轉(zhuǎn)移,無需任何重啟。
從上邊的圖片可以看出,多臺主機(jī)可以連接到交換機(jī)。然后將交換機(jī)連接到各種設(shè)備,SLD(單個邏輯設(shè)備)或 MLD(多個邏輯設(shè)備)。MLD 旨在耦合到多個主機(jī)以進(jìn)行內(nèi)存池。
MLD 顯示為多個 SLD。這允許他們在主機(jī)之間匯集內(nèi)存,甚至匯集加速器計算資源。FM(結(jié)構(gòu)管理器)位于控制平面中。它是協(xié)調(diào)器,分配內(nèi)存和設(shè)備。結(jié)構(gòu)管理器可以位于單獨(dú)的芯片上或交換機(jī)中;它不需要高性能,因為它從不接觸數(shù)據(jù)平面。如果該 CXL 設(shè)備是多頭的并連接到多個主機(jī)的根端口,則這也可以在沒有交換機(jī)的情況下實(shí)現(xiàn)。
將所有這些結(jié)合在一起,微軟展示了通過池化 DRAM 將部署的 DRAM 減少10% 并節(jié)省 5% 的總服務(wù)器成本的潛力。這是在沒有使用CXL 開關(guān)的第一代 CXL 解決方案上。
CXL 3.0 帶來了更多改進(jìn),有助于擴(kuò)展創(chuàng)建異構(gòu)可組合服務(wù)器架構(gòu)的能力。主要關(guān)注點(diǎn)是將CXL 從服務(wù)器規(guī)模擴(kuò)展到機(jī)架規(guī)模。這是通過從主機(jī)設(shè)備模型轉(zhuǎn)變?yōu)槭?CPU 成為網(wǎng)絡(luò)上的另一個設(shè)備來實(shí)現(xiàn)的。
CXL 交換機(jī)現(xiàn)在可以支持一系列拓?fù)?。以前?CXL 2.0 中,只能使用 CXL.mem 設(shè)備進(jìn)行扇出。一個機(jī)架或多個服務(wù)器機(jī)架現(xiàn)在可以通過葉和主干或所有拓?fù)渎?lián)網(wǎng)。CXL 3.0 的設(shè)備/主機(jī)/交換機(jī)/交換機(jī)端口的理論限制為 4096。這些變化極大地擴(kuò)大了 CXL 網(wǎng)絡(luò)的潛在規(guī)模,從幾臺服務(wù)器擴(kuò)展到了許多服務(wù)器機(jī)架。
此外,所有類型的多個設(shè)備都可以位于來自主機(jī)的 CXL 的單個根端口上。這以前是一個主要限制,因為單個根端口只能尋址單個設(shè)備類型。如果主機(jī)連接到具有單個 CXL 根端口的交換機(jī),則該主機(jī)只能訪問位于交換機(jī)外的一種類型的設(shè)備。
CXL 3.0 中最重要的變化是內(nèi)存共享和設(shè)備到設(shè)備的通信。主機(jī) CPU 和設(shè)備現(xiàn)在可以在相同的數(shù)據(jù)集上協(xié)同工作,而無需不必要地打亂和復(fù)制數(shù)據(jù)。一個例子是常見的 AI 工作負(fù)載,例如 Google 和Meta 等巨頭采用的數(shù)十億參數(shù)的深度學(xué)習(xí)推薦系統(tǒng)。相同的模型數(shù)據(jù)在許多服務(wù)器上重復(fù)。用戶的請求進(jìn)來,推理操作開始運(yùn)行。如果存在 CXL 3.0 內(nèi)存共享,則大型 AI 模型可以存在于幾個中央內(nèi)存設(shè)備中,并且有許多其他設(shè)備可以訪問它。該模型可以使用實(shí)時用戶數(shù)據(jù)不斷進(jìn)行訓(xùn)練,并且可以跨 CXL 交換網(wǎng)絡(luò)推送更新。這可以將 DRAM 成本降低一個數(shù)量級并提高性能。
內(nèi)存共享可以提高性能和經(jīng)濟(jì)性的領(lǐng)域幾乎是無限的。第一代內(nèi)存池可以將總 DRAM 需求降低 10%。較低延遲的內(nèi)存池可以使多租戶云中的節(jié)省達(dá)到約 23%。內(nèi)存共享可以將 DRAM 需求降低 35% 以上。這些節(jié)省意味著每年在數(shù)據(jù)中心 DRAM 上花費(fèi)數(shù)十億美元。
編輯:黃飛
?
評論
查看更多