在上周的ATC'22會(huì)議上,韓國(guó)的科學(xué)技術(shù)高級(jí)研究所KAIST的CAME?Lab發(fā)表了一篇DirectCXL內(nèi)存分解原型實(shí)現(xiàn)的文章,該文章提出了世界上第一個(gè)基于CXL的直接訪(fǎng)問(wèn),高性能內(nèi)存分解框架。CAMEL為大型存儲(chǔ)系統(tǒng)提供世界上第一個(gè)CXL解決方案框架,可以在大數(shù)據(jù)應(yīng)用程序(如機(jī)器學(xué)習(xí),內(nèi)存數(shù)據(jù)庫(kù)和現(xiàn)實(shí)圖形分析)中實(shí)現(xiàn)出色的性能。CAMEL的CXL解決方案為內(nèi)存分解開(kāi)辟了新的方向,并確保了直接訪(fǎng)問(wèn)和高性能的功能。
超大規(guī)模和云構(gòu)建者并不是唯一對(duì) CXL 協(xié)議及其為系統(tǒng)創(chuàng)建分層、分解和可組合的主內(nèi)存的能力感興趣的人。HPC中心也在采取行動(dòng),本文談?wù)摰氖琼n國(guó)科學(xué)技術(shù)高級(jí)研究所KAIST所做的一項(xiàng)有意思的工作。 KAIST的CAME Lab的研究人員已經(jīng)加入了Meta平臺(tái)(Facebook)的行列,其透明頁(yè)面放置協(xié)議和變色龍內(nèi)存跟蹤,微軟及其zNUMA內(nèi)存項(xiàng)目正在創(chuàng)建實(shí)際的硬件和軟件,以使用PCI-Express總線(xiàn)上的CXL 2.0協(xié)議和PCI-Express交換復(fù)合體進(jìn)行內(nèi)存分解和組合,相當(dāng)于它稱(chēng)之為DirectCXL的內(nèi)存服務(wù)器。在上周的USENIX年度技術(shù)會(huì)議上發(fā)表的一篇論文中談到了DirectCXL概念驗(yàn)證,論文下載鏈接:https://www.usenix.org/system/files/atc22-gouk.pdf,還有一本宣傳冊(cè),鏈接如下:https://camel.kaist.ac.kr/public/camel-cxl-memory-pooling.pdf。

我們期望在未來(lái)幾周和幾個(gè)月內(nèi)看到更多這樣的原型和POC,看到人們正在試驗(yàn)CXL內(nèi)存池的可能性是令人興奮的。早在3月,The Next Platform就CXL內(nèi)存的研究報(bào)道了太平洋西北國(guó)家實(shí)驗(yàn)室和內(nèi)存制造商Micron技術(shù)正在加速HPC和AI工作量的研究,英特爾和Marvell都熱衷于看到CXL內(nèi)存中斷打開(kāi)系統(tǒng)和集群中的內(nèi)存層次結(jié)構(gòu),以提高內(nèi)存利用率,從而降低系統(tǒng)中的總內(nèi)存成本。微軟在量化我們所有人本能地知道的zNUMA研究(與卡內(nèi)基梅隆大學(xué)合作完成)的工作做得很好。Facebook正在與密歇根大學(xué)合作,就像它經(jīng)常在內(nèi)存和存儲(chǔ)研究方面一樣。

鑒于KAIST的HPC根源,將DirectCXL原型放在一起的研究人員專(zhuān)注于使用遠(yuǎn)程直接內(nèi)存訪(fǎng)問(wèn)(RDMA)協(xié)議將CXL內(nèi)存池與跨系統(tǒng)直接內(nèi)存訪(fǎng)問(wèn)進(jìn)行比較。他們使用了一個(gè)非常老式的Mellanox SwitchX FDR InfiniBand和ConnectX-3互連,以56 Gb / sec的速度運(yùn)行,作為CXL努力的基準(zhǔn),InfiniBand的延遲確實(shí)降低了。但在過(guò)去的幾代人中,它們肯定已經(jīng)停止了降低,并且期望PCI-Express延遲有可能降低,我們認(rèn)為,從長(zhǎng)遠(yuǎn)來(lái)看,甚至超過(guò)InfiniBand或以太網(wǎng)的RDMA??梢韵膮f(xié)議越多越好。

當(dāng)然,RDMA最廣為人知的是InfiniBand網(wǎng)絡(luò)最初獲得其傳奇般的低延遲的手段,允許機(jī)器通過(guò)網(wǎng)絡(luò)直接將數(shù)據(jù)放入彼此的主內(nèi)存中,而無(wú)需通過(guò)操作系統(tǒng)內(nèi)核和驅(qū)動(dòng)程序。RDMA長(zhǎng)期以來(lái)一直是InfiniBand協(xié)議的一部分,以至于它實(shí)際上是InfiniBand的同義詞,直到該協(xié)議通過(guò)RDMA通過(guò)融合以太網(wǎng)(RoCE)協(xié)議移植到以太網(wǎng)。有趣的事實(shí):RDMA實(shí)際上是基于康奈爾大學(xué)研究人員(包括亞馬遜網(wǎng)絡(luò)服務(wù)的長(zhǎng)期首席技術(shù)官Verner Vogels)和Thorsten von Eicken(我們的讀者最熟悉的是RightScale的創(chuàng)始人和首席技術(shù)官)在1995年所做的工作,比InfiniBand的創(chuàng)建早了大約四年。
以下是 DirectCXL 內(nèi)存集群的外觀(guān):

在上圖右側(cè)(在本文文末的功能圖像中更詳細(xì)地顯示了四個(gè)內(nèi)存板),它們具有FPGA創(chuàng)建PCI-Express鏈接并運(yùn)行CXL.memory協(xié)議,用于在內(nèi)存服務(wù)器和通過(guò)PCI-Express鏈接連接到它的主機(jī)之間加載/存儲(chǔ)內(nèi)存尋址。系統(tǒng)中間是四臺(tái)服務(wù)器主機(jī),最右側(cè)是一臺(tái) PCI-Express 交換機(jī),用于將四臺(tái) CXL 內(nèi)存服務(wù)器連接到這些主機(jī)。

為了測(cè)試DirectCXL內(nèi)存,KAIST采用了Facebook的深度學(xué)習(xí)推薦模型(DLRM),僅使用InfiniBand上的RDMA在服務(wù)器節(jié)點(diǎn)上進(jìn)行個(gè)性化設(shè)置,然后使用DirectCXL內(nèi)存作為額外的容量來(lái)存儲(chǔ)內(nèi)存并通過(guò)PCI-Express總線(xiàn)共享它。在此測(cè)試中,CXL 內(nèi)存方法比 RDMA 快得多,如下圖所示:

在這個(gè)子集群上,DirectCXL內(nèi)存上DLRM應(yīng)用程序的張量初始化階段比在FDR InfiniBand互連上使用RDMA快2.71倍,在推理階段,推薦者實(shí)際上根據(jù)用戶(hù)配置文件提出建議的速度提高了2.83倍,推薦者從頭到尾的整體性能提高了3.32倍。
下圖顯示了 InfiniBand 上的本地 DRAM、DirectCXL 和 RDMA 如何堆疊,以及 CXL 與 RDMA 在各種工作負(fù)載上的性能:

以下是關(guān)于KAIST在CAMELab工作的總結(jié)部分。目前沒(méi)有操作系統(tǒng)支持CXL內(nèi)存尋址 - 沒(méi)有操作系統(tǒng),我們的意思是商業(yè)級(jí)Linux或Windows Server都沒(méi)有,因此KAIST創(chuàng)建了DirectCXL軟件協(xié)議棧,以允許主機(jī)使用加載/存儲(chǔ)操作直接訪(fǎng)問(wèn)遠(yuǎn)程CXL內(nèi)存。無(wú)需將數(shù)據(jù)移動(dòng)到主機(jī)進(jìn)行處理 - 數(shù)據(jù)是從該遠(yuǎn)程位置處理的,就像在具有 NUMA 協(xié)議的多插槽系統(tǒng)中發(fā)生的情況一樣。而且,與英特爾使用其 Optane 持久內(nèi)存創(chuàng)建的相比,此 DirectCXL 驅(qū)動(dòng)程序的復(fù)雜性要小得多。
“直接訪(fǎng)問(wèn)CXL設(shè)備,這與持久內(nèi)存開(kāi)發(fā)工具包(PMDK)的內(nèi)存映射文件管理的概念類(lèi)似,”KAIST研究人員在論文中寫(xiě)道?!暗?,它比PMDK更簡(jiǎn)單,更靈活地進(jìn)行命名空間管理。例如,PMDK 的命名空間與 NVMe 命名空間非常相似,由文件系統(tǒng)或具有固定大小的 DAX 管理。相比之下,我們的 cxl 命名空間更類(lèi)似于傳統(tǒng)的內(nèi)存段,后者直接向應(yīng)用程序公開(kāi),而無(wú)需使用文件系統(tǒng)。
論文中有很多的實(shí)驗(yàn)結(jié)果,對(duì)于普通讀者大都晦澀難懂。但是,我們放大的下圖中顯示了 DirectCXL 和 RDMA 方法之間的一些顯著差異:

就我們而言,左上角的圖表是有趣的圖表。要讀取64字節(jié)的數(shù)據(jù),RDMA需要執(zhí)行兩次直接內(nèi)存操作,這意味著它具有兩倍的PCI-Express傳輸和內(nèi)存延遲,然后InfiniBand協(xié)議在RDMA期間占用2129個(gè)周期,總共2705個(gè)處理器周期。DirectCXL 讀取 64 字節(jié)的數(shù)據(jù)只需要 328 個(gè)周期,它能夠做到這一點(diǎn)的一個(gè)原因是 DirectCXL 協(xié)議將加載/存儲(chǔ)請(qǐng)求從處理器中的最后一級(jí)緩存轉(zhuǎn)換為 CXL flits,而 RDMA 必須使用 DMA 協(xié)議來(lái)讀取和寫(xiě)入內(nèi)存中的數(shù)據(jù)。
附小冊(cè)子部分內(nèi)容翻譯:
隨著大數(shù)據(jù)時(shí)代的到來(lái),資源分解因其出色的擴(kuò)展能力,成本效率和透明彈性而備受關(guān)注。將處理器和存儲(chǔ)設(shè)備分解確實(shí)打破了數(shù)據(jù)中心和高性能計(jì)算的物理邊界,成為單獨(dú)的物理實(shí)體。與其他資源相比,實(shí)現(xiàn)以低成本支持高性能和可伸縮性的內(nèi)存分解技術(shù)并非易事。許多行業(yè)原型和基于學(xué)術(shù)模擬/仿真的研究探索了實(shí)現(xiàn)這種存儲(chǔ)分解技術(shù)的廣泛方法,并為使內(nèi)存分解實(shí)用做出了重大努力。然而,由于幾個(gè)基本挑戰(zhàn)(高成本,有限的擴(kuò)展,重?cái)?shù)據(jù)副本和主機(jī)依賴(lài)性),內(nèi)存分解的概念到目前為止還沒(méi)有成功實(shí)現(xiàn)。CAMEL為大型存儲(chǔ)系統(tǒng)提供世界上第一個(gè)CXL解決方案框架,可以在大數(shù)據(jù)應(yīng)用程序(如機(jī)器學(xué)習(xí),內(nèi)存數(shù)據(jù)庫(kù)和現(xiàn)實(shí)圖形分析)中實(shí)現(xiàn)出色的性能。CAMEL的CXL解決方案為內(nèi)存分解開(kāi)辟了新的方向,并確保了直接訪(fǎng)問(wèn)和高性能的功能。 ?

內(nèi)存分解的基本思想是將主機(jī)與一個(gè)或內(nèi)存節(jié)點(diǎn)連接,這樣由于本地內(nèi)存(DRAM)空間有限,它不會(huì)限制給定的任務(wù)執(zhí)行。大多數(shù)現(xiàn)有的內(nèi)存分解技術(shù)都采用遠(yuǎn)程直接內(nèi)存訪(fǎng)問(wèn)(RDMA)將數(shù)據(jù)從遠(yuǎn)程內(nèi)存移動(dòng)到主機(jī)的本地內(nèi)存。但是,所有技術(shù)僅限于擴(kuò)展并顯著增加系統(tǒng)構(gòu)建和維護(hù)成本。有兩個(gè)根本原因。首先,DRAM及其存儲(chǔ)器接口(例如DDR)被設(shè)計(jì)成完全無(wú)源的設(shè)備模塊,其在沒(méi)有主機(jī)側(cè)CPU和其中的存儲(chǔ)器控制器的幫助下不能操作。隨著更多內(nèi)存節(jié)點(diǎn)添加到系統(tǒng)中,用于保存遠(yuǎn)程內(nèi)存的計(jì)算過(guò)程等其他資源的數(shù)量增加,成本呈指數(shù)增長(zhǎng)。其次,RDMA引入了冗余內(nèi)存副本和軟件結(jié)構(gòu)干預(yù),這反過(guò)來(lái)使得分解內(nèi)存的延遲比本地DRAM訪(fǎng)問(wèn)的延遲長(zhǎng)多個(gè)數(shù)量級(jí)。 ?

CAMEL已經(jīng)推出了世界上第一個(gè)CXL解決方案(POC),該解決方案通過(guò)CXL協(xié)議直接連接主機(jī)處理器復(fù)合體和遠(yuǎn)程內(nèi)存資源。CAMEL的CXL解決方案框架包括一組computingexpress link(CXL)硬件和軟件IP,包括CXL交換機(jī),處理器復(fù)雜IP和CXL內(nèi)存控制器。解決方案框架可以完全從計(jì)算資源中分離內(nèi)存資源,并實(shí)現(xiàn)高性能,完全擴(kuò)展內(nèi)存分解架構(gòu)。CAMEL CXL解決方案的當(dāng)前原型包括:
1.CXL器件,這是一個(gè)純無(wú)源模塊,可以使用自己的硬件控制器實(shí)現(xiàn)許多DRAM DIMMS。 2.啟用CXL的主機(jī)處理器,包含一個(gè)或多個(gè)CXL根端口(RP)。 3.CXL網(wǎng)絡(luò)交換機(jī),它允許連接超過(guò)500個(gè)內(nèi)存資源以簡(jiǎn)單地?cái)U(kuò)展(例如,放大)內(nèi)存空間。

編輯:黃飛
?
電子發(fā)燒友App





























評(píng)論