CXL是行業(yè)支持的處理器、內(nèi)存擴展和加速器的Cache-Coherent互連,該技術(shù)保持CPU內(nèi)存空間和附加設(shè)備上內(nèi)存的一致性,允許資源共享,從而獲得更高的性能,降低軟件棧的復雜性,降低整體系統(tǒng)成本,用戶也借此擺脫加速器中的冗余內(nèi)存管理硬件帶來的困擾,將更多精力轉(zhuǎn)向目標工作負載。

? CXL被設(shè)計為高速通信的行業(yè)開放標準接口,因為加速器越來越多地用于補充CPU,以支持諸如人工智能和機器學習等新興應(yīng)用。 ? CXL 2.0規(guī)范增加了對扇區(qū)數(shù)據(jù)交換的支持,以連接到更多的設(shè)備,內(nèi)存容量按需提供,使用效率大大提高。CXL 2.0完全支持CXL 1.1和1.0,為行業(yè)用戶節(jié)省了投資。
什么是CXL?
CXL是行業(yè)支持的處理器、內(nèi)存擴展和加速器的Cache-Coherent互連,該技術(shù)保持CPU內(nèi)存空間和附加設(shè)備上內(nèi)存的一致性,允許資源共享,從而獲得更高的性能,降低軟件棧的復雜性,降低整體系統(tǒng)成本,用戶也借此擺脫加速器中的冗余內(nèi)存管理硬件帶來的困擾,將更多精力轉(zhuǎn)向目標工作負載。
CXL被設(shè)計為高速通信的行業(yè)開放標準接口,因為加速器越來越多地用于補充CPU,以支持諸如人工智能和機器學習等新興應(yīng)用。
CXL 2.0規(guī)范增加了對扇區(qū)數(shù)據(jù)交換的支持,以連接到更多的設(shè)備,內(nèi)存容量按需提供,使用效率大大提高。CXL 2.0完全支持CXL 1.1和1.0,為行業(yè)用戶節(jié)省了投資。
詳細的介紹我們可以看知乎大V?@老狼?這篇文章?zhuanlan.zhihu.com/p/65 由于自己做持久內(nèi)存方面的研究,因此更關(guān)注 CXL 與持久內(nèi)存的關(guān)系。 Meta(FaceBook) 公司采用基于 CXL 的內(nèi)存層級系統(tǒng) 1. FaceBook 在內(nèi)存池化方面做的努力 FaceBook 一直大力提倡將DRAM內(nèi)存從使用它的CPU中分離出來,并創(chuàng)建由許多系統(tǒng)共享的池內(nèi)存層(pooled memory)。FaceBook 多年來一直致力于分離(disaggregate)和池化(pool)內(nèi)存,以使內(nèi)存在其服務(wù)器中更好地工作,并試圖控制內(nèi)存成本,同時提高其性能。
FaceBook 多年來一直在與密歇根大學助理教授Mosharaf Chowdhury合作研究內(nèi)存池化技術(shù),從Infiniswap Linux內(nèi)核擴展開始,該擴展在InfiniBand或Ethernet之上通過RDMA協(xié)議池化內(nèi)存,在2017年6月就對此進行了分析。Infiniswap是一種跨服務(wù)器的內(nèi)存負載均衡器,它以幾種不同的傳輸和內(nèi)存語義協(xié)議首次出現(xiàn)——IBM的OpenCAPI內(nèi)存接口協(xié)議、Xilinx的CCIX協(xié)議、Nvidia的NVLink協(xié)議、惠普企業(yè)版的Gen-Z協(xié)議,由戴爾支持,在內(nèi)存池化方面也有類似的想法。 在這一點上,至少在機架中的內(nèi)存池化方面,Intel的CXL協(xié)議已成為分離(disaggregate)內(nèi)存的主導標準,而不僅僅是用于將加速器中的 far memory 以及 flash memory 連接到CPU,該協(xié)議將在新的和未來的服務(wù)器中很常見。
FaceBook 的研究人員(Chowdhury)正在對分離 (disaggregate) 內(nèi)存的想法進行另一次嘗試,通過稱為透明頁面放置(Transparent Page Placement,TPP)的Linux內(nèi)核擴展,將Infiniswap的一些想法向前推進,它以與連接到CPU的DRAM略有不同的方式進行內(nèi)存頁管理,并考慮了CXL主存的相對距離。研究人員在一篇論文中概述了這項最新的工作,arxiv.org/abs/2206.0287。 TPP協(xié)議是 FaceBook 平臺開源的,該協(xié)議正與該公司的變色龍內(nèi)存跟蹤工具結(jié)合使用,變色龍內(nèi)存跟蹤工具在Linux用戶空間中運行,因此人們可以跟蹤CXL內(nèi)存在其應(yīng)用程序中的工作情況。
2.CXL-Memory
隨著CPU的發(fā)展,系統(tǒng)架構(gòu)師從主存向下移動,在內(nèi)核和主存之間添加了一、二、三、有時四個級別的緩存,并通過系統(tǒng)總線輸出到磁帶,然后是磁盤和磁帶,然后是閃存、磁盤和磁帶。最近幾年,我們增加了諸如3D XPoint之類的持久內(nèi)存。

正如 FaceBook 平臺、MemVerge 公司和許多其他系統(tǒng)制造商所相信的那樣,將把CXL主內(nèi)存從CPU上卸下來,CXL內(nèi)存看起來像一個普通的NUMA插槽,但里面沒有任何CPU。如果 FaceBoo k平臺創(chuàng)建的TPP協(xié)議是正確的,那么它將有一個不同的內(nèi)存分頁系統(tǒng),可以更好地解決由于在服務(wù)器主板之外有大量池化內(nèi)存而帶來的稍高的延遲。
以下是臉書在幾代機器的內(nèi)存容量、帶寬、功率和成本方面所面臨的挑戰(zhàn):

從上圖可以看出,內(nèi)存容量的增長速度快于內(nèi)存帶寬,這對性能有重要影響。如果帶寬更高,那么在一定數(shù)量的CPU上完成一定量的工作,可能需要更少的內(nèi)存容量。就像CPU的時鐘速度是10GHz一樣,這比2.5GHz要好得多。但是更快的CPU和內(nèi)存時鐘會產(chǎn)生指數(shù)級熱量,因此系統(tǒng)架構(gòu)會試圖做更多的工作,并保持在合理的功率范圍內(nèi)。 但它不起作用。由于需要更高的性能,每代服務(wù)器上的系統(tǒng)功率和內(nèi)存功率都在不斷增加,內(nèi)存成本占系統(tǒng)總成本的比例也在不斷上升。在這一點上,系統(tǒng)的主要成本是內(nèi)存,而不是CPU本身。(不僅是在FaceBook ,全世界都是如此)
用CXL擴展系統(tǒng)內(nèi)存容量和帶寬,延遲與NUMA訪問基本相同
因此,基本上必須使用CXL協(xié)議覆蓋將主內(nèi)存移動到PCI Express總線,以在不向CPU芯片添加更多內(nèi)存控制器的情況下,擴展系統(tǒng)中的內(nèi)存容量和內(nèi)存帶寬。如下圖所示,該內(nèi)存中有一點延遲,但其大小與共享內(nèi)存系統(tǒng)中兩個CPU之間的NUMA鏈路相同:

試圖找出如何使用CXL內(nèi)存的訣竅,就像Optane 3D XPoint DIMM和各種速度的閃存一樣,就是找出在內(nèi)存中使用的數(shù)據(jù)有多少是?hot , warm , cold?的,然后找出一種機制,在最快的內(nèi)存中獲取 hot 數(shù)據(jù),在最冷的內(nèi)存中獲取 cold 數(shù)據(jù),在warm 內(nèi)存中獲取 warm 數(shù)據(jù)。您還需要知道每個溫度層上有多少數(shù)據(jù),以便獲得正確的容量。這就是 FaceBook Platform和Chowdhury創(chuàng)建的變色龍工具的全部內(nèi)容。
CXL 把我們帶入大內(nèi)存時代 --從MemVerge視角
MemVerge 公司CEO Charles Fan指出 :動態(tài)組合服務(wù)器并獲取10TB以上內(nèi)存池容量的能力將推動更多應(yīng)用在內(nèi)存中運行,避免外部存儲IO流讀寫。存儲級內(nèi)存將成為主要的熱數(shù)據(jù)存儲層,NAND和HDD分別用于溫數(shù)據(jù),而 tape 用于冷數(shù)據(jù)。現(xiàn)在CXL市場經(jīng)歷了一年的發(fā)展,這是業(yè)內(nèi)近十年來一次重大的架構(gòu)變革,可能會帶來一個跨多服務(wù)器共享內(nèi)存結(jié)構(gòu)的新市場。 MemVerge軟件將DRAM和Optane DIMM持久內(nèi)存組合到一個集群存儲池中,供服務(wù)器應(yīng)用使用,無需更改代碼。換句話說,這款軟件已經(jīng)結(jié)合了快速和慢速內(nèi)存。

CXL v2.0增加了對CXL交換的支持,通過該支持,多個連接CXL 2.0的主機處理器可以使用分布式共享內(nèi)存和持久(存儲類)內(nèi)存。CXL 2.0主機將擁有自己的直接連接DRAM,并能夠通過CXL 2.0鏈路訪問外部DRAM。這種外部DRAM訪問將比本地DRAM訪問慢幾納秒,需要系統(tǒng)軟件來彌合這一差距。(順便提一下,MemVerge提供的系統(tǒng)軟件。)范說,他認為CXL2.0交換機和外部內(nèi)存盒最早可能出現(xiàn)在2024年。不過,我們將更早地看到原型。
MemVerge正在和組合系統(tǒng)供應(yīng)商Liqid合作,讓MemVerge創(chuàng)建的DRAM和Optane內(nèi)存池能通過當今的PCIe 3和4總線能全部或部分動態(tài)分配給服務(wù)器。CXL 2.0應(yīng)該引入外部內(nèi)存池及其對服務(wù)器的動態(tài)可用性。 范承工表示有了CXL,內(nèi)存動態(tài)組合可以和云服務(wù)模型高度協(xié)同。因此,云服務(wù)提供商會成為這項技術(shù)的首批采用者之一。
Blocks & Files認為,包括公有云供應(yīng)商在內(nèi)的所有超大規(guī)模企業(yè)都會依賴CXL連接內(nèi)存池。而且他們沒有可用于提供外部池化內(nèi)存資源的現(xiàn)有技術(shù),因此要么自己建,要么得尋找合適的供應(yīng)商。 MemVerge將推動由CXL交換機、擴展器、存儲卡和設(shè)備供應(yīng)商組成的CXL 2.0生態(tài)系統(tǒng)的興起。MemVerge的軟件能在公有云上運行。有一家生物技術(shù)研究公司SeekGene已經(jīng)通過在阿里云i4p計算實例運行上使用MemVerge Memory Machine,從而顯著減少了處理時間和成本。
阿里云是第一家面向用戶提供Optane實例支持的云服務(wù)提供商,和MemVerge的聯(lián)合服務(wù)就是在此之上,允許封裝應(yīng)用,并使用MemVerge的快照技術(shù)實現(xiàn)回卷恢復。 MemVerge會以開源形式提供基礎(chǔ)版大內(nèi)存軟件來擴大應(yīng)用范圍,并提供付費擴展功能,比如快照和檢查點服務(wù)。
外部內(nèi)存池示例
想象一下,今天有一個20臺服務(wù)器的機架,每個服務(wù)器都有2TB的內(nèi)存。這是20 x 2TB內(nèi)存塊,40TB,任何應(yīng)用程序的內(nèi)存都限制在2TB。MemVerge的軟件可以用于將任何一臺服務(wù)器中的內(nèi)存地址空間擴展到3TB左右,但每臺服務(wù)器的DRAM插槽數(shù)量有限,一旦用完就不再可用。CXL 2.0消除了這一限制。 現(xiàn)在,讓我們重新想象一下由20臺服務(wù)器組成的機架,其中每臺服務(wù)器都有512GB的內(nèi)存,機架上有一個CXL 2.0連接的內(nèi)存擴展器機箱,具有30TB的DRAM。
我們的DRAM總量仍然與以前相同,為40TB,但現(xiàn)在的分布有所不同,有20 x 512GB的塊,每臺服務(wù)器一個,以及30TB的可共享池。 內(nèi)存中的應(yīng)用程序可能會消耗高達30.5TB的DRAM,是以前的10倍,這從根本上增加了它可以處理的工作數(shù)據(jù)集,并減少了其存儲IO。我們可以有三個內(nèi)存應(yīng)用程序,每個應(yīng)用程序占用30TB內(nèi)存池中的10TB。
此類應(yīng)用程序執(zhí)行速度更快的能力將顯著提高。 范說:“它提高了應(yīng)用程序的上限,即你可以使用多少內(nèi)存,你可以根據(jù)需要動態(tài)地配置它。所以我認為這是革命性的。” 不僅僅是服務(wù)器可以使用它,GPU還可以使用更具可擴展性的內(nèi)存層。

新創(chuàng)建的DRAM內(nèi)容仍然必須是持久的,將30TB的數(shù)據(jù)寫入NAND將需要相當長的時間,但可以使用 Intel Optane 或類似的存儲類內(nèi)存,如ReRAM,而IO速度要快得多。然后,最活躍的數(shù)據(jù)將存儲在SCM設(shè)備中,隨著時間的推移,活動性較差的數(shù)據(jù)將首先傳輸?shù)絅AND,然后傳輸?shù)酱疟P,最后傳輸?shù)酱艓?,其活動性配置文件越來越低?這種連接 CXL 的SCM可以在同一個或單獨的機箱中,并且可以動態(tài)組合。我們可以設(shè)想使用這種分層外部DRAM和 Optane系統(tǒng)的超大規(guī)模供應(yīng)商服務(wù)運行更快,能夠以更高的利用率支持更多用戶。
應(yīng)用程序設(shè)計也可能發(fā)生變化。范補充道:“應(yīng)用程序的一般邏輯是使用盡可能多的內(nèi)存。只有在內(nèi)存不足的情況下才使用存儲。對于其他數(shù)據(jù)密集型應(yīng)用程序,它將以同樣的方式運行,包括數(shù)據(jù)庫。我認為內(nèi)存數(shù)據(jù)庫是一個大趨勢。對于許多互聯(lián)網(wǎng)服務(wù)提供商來說,我認為基礎(chǔ)設(shè)施提供更無限的內(nèi)存將影響他們的應(yīng)用程序設(shè)計,因為它更以內(nèi)存為中心。這反過來又減少了他們對存儲的依賴?!?/p>
參考:
1、CXL-led big memory taking over from age of SAN.(https://blocksandfiles.com/2022/06/20/cxl-led-big-memory/)
2、META PLATFORMS HACKS CXL MEMORY TIER INTO LINUX. (https://www.nextplatform.com/2022/06/16/meta-platforms-hacks-cxl-memory-tier-into-linux/)??
編輯:黃飛
電子發(fā)燒友App







































評論