CXL是行業(yè)支持的處理器、內(nèi)存擴(kuò)展和加速器的Cache-Coherent互連,該技術(shù)保持CPU內(nèi)存空間和附加設(shè)備上內(nèi)存的一致性,允許資源共享,從而獲得更高的性能,降低軟件棧的復(fù)雜性,降低整體系統(tǒng)成本,用戶也借此擺脫加速器中的冗余內(nèi)存管理硬件帶來(lái)的困擾,將更多精力轉(zhuǎn)向目標(biāo)工作負(fù)載。
? CXL被設(shè)計(jì)為高速通信的行業(yè)開(kāi)放標(biāo)準(zhǔn)接口,因?yàn)榧铀倨髟絹?lái)越多地用于補(bǔ)充CPU,以支持諸如人工智能和機(jī)器學(xué)習(xí)等新興應(yīng)用。 ? CXL 2.0規(guī)范增加了對(duì)扇區(qū)數(shù)據(jù)交換的支持,以連接到更多的設(shè)備,內(nèi)存容量按需提供,使用效率大大提高。CXL 2.0完全支持CXL 1.1和1.0,為行業(yè)用戶節(jié)省了投資。
什么是CXL?
CXL是行業(yè)支持的處理器、內(nèi)存擴(kuò)展和加速器的Cache-Coherent互連,該技術(shù)保持CPU內(nèi)存空間和附加設(shè)備上內(nèi)存的一致性,允許資源共享,從而獲得更高的性能,降低軟件棧的復(fù)雜性,降低整體系統(tǒng)成本,用戶也借此擺脫加速器中的冗余內(nèi)存管理硬件帶來(lái)的困擾,將更多精力轉(zhuǎn)向目標(biāo)工作負(fù)載。
CXL被設(shè)計(jì)為高速通信的行業(yè)開(kāi)放標(biāo)準(zhǔn)接口,因?yàn)榧铀倨髟絹?lái)越多地用于補(bǔ)充CPU,以支持諸如人工智能和機(jī)器學(xué)習(xí)等新興應(yīng)用。
CXL 2.0規(guī)范增加了對(duì)扇區(qū)數(shù)據(jù)交換的支持,以連接到更多的設(shè)備,內(nèi)存容量按需提供,使用效率大大提高。CXL 2.0完全支持CXL 1.1和1.0,為行業(yè)用戶節(jié)省了投資。
詳細(xì)的介紹我們可以看知乎大V?@老狼?這篇文章?zhuanlan.zhihu.com/p/65 由于自己做持久內(nèi)存方面的研究,因此更關(guān)注 CXL 與持久內(nèi)存的關(guān)系。 Meta(FaceBook) 公司采用基于 CXL 的內(nèi)存層級(jí)系統(tǒng) 1. FaceBook 在內(nèi)存池化方面做的努力 FaceBook 一直大力提倡將DRAM內(nèi)存從使用它的CPU中分離出來(lái),并創(chuàng)建由許多系統(tǒng)共享的池內(nèi)存層(pooled memory)。FaceBook 多年來(lái)一直致力于分離(disaggregate)和池化(pool)內(nèi)存,以使內(nèi)存在其服務(wù)器中更好地工作,并試圖控制內(nèi)存成本,同時(shí)提高其性能。
FaceBook 多年來(lái)一直在與密歇根大學(xué)助理教授Mosharaf Chowdhury合作研究?jī)?nèi)存池化技術(shù),從Infiniswap Linux內(nèi)核擴(kuò)展開(kāi)始,該擴(kuò)展在InfiniBand或Ethernet之上通過(guò)RDMA協(xié)議池化內(nèi)存,在2017年6月就對(duì)此進(jìn)行了分析。Infiniswap是一種跨服務(wù)器的內(nèi)存負(fù)載均衡器,它以幾種不同的傳輸和內(nèi)存語(yǔ)義協(xié)議首次出現(xiàn)——IBM的OpenCAPI內(nèi)存接口協(xié)議、Xilinx的CCIX協(xié)議、Nvidia的NVLink協(xié)議、惠普企業(yè)版的Gen-Z協(xié)議,由戴爾支持,在內(nèi)存池化方面也有類似的想法。 在這一點(diǎn)上,至少在機(jī)架中的內(nèi)存池化方面,Intel的CXL協(xié)議已成為分離(disaggregate)內(nèi)存的主導(dǎo)標(biāo)準(zhǔn),而不僅僅是用于將加速器中的 far memory 以及 flash memory 連接到CPU,該協(xié)議將在新的和未來(lái)的服務(wù)器中很常見(jiàn)。
FaceBook 的研究人員(Chowdhury)正在對(duì)分離 (disaggregate) 內(nèi)存的想法進(jìn)行另一次嘗試,通過(guò)稱為透明頁(yè)面放置(Transparent Page Placement,TPP)的Linux內(nèi)核擴(kuò)展,將Infiniswap的一些想法向前推進(jìn),它以與連接到CPU的DRAM略有不同的方式進(jìn)行內(nèi)存頁(yè)管理,并考慮了CXL主存的相對(duì)距離。研究人員在一篇論文中概述了這項(xiàng)最新的工作,arxiv.org/abs/2206.0287。 TPP協(xié)議是 FaceBook 平臺(tái)開(kāi)源的,該協(xié)議正與該公司的變色龍內(nèi)存跟蹤工具結(jié)合使用,變色龍內(nèi)存跟蹤工具在Linux用戶空間中運(yùn)行,因此人們可以跟蹤C(jī)XL內(nèi)存在其應(yīng)用程序中的工作情況。
2.CXL-Memory
隨著CPU的發(fā)展,系統(tǒng)架構(gòu)師從主存向下移動(dòng),在內(nèi)核和主存之間添加了一、二、三、有時(shí)四個(gè)級(jí)別的緩存,并通過(guò)系統(tǒng)總線輸出到磁帶,然后是磁盤(pán)和磁帶,然后是閃存、磁盤(pán)和磁帶。最近幾年,我們?cè)黾恿酥T如3D XPoint之類的持久內(nèi)存。
正如 FaceBook 平臺(tái)、MemVerge 公司和許多其他系統(tǒng)制造商所相信的那樣,將把CXL主內(nèi)存從CPU上卸下來(lái),CXL內(nèi)存看起來(lái)像一個(gè)普通的NUMA插槽,但里面沒(méi)有任何CPU。如果 FaceBoo k平臺(tái)創(chuàng)建的TPP協(xié)議是正確的,那么它將有一個(gè)不同的內(nèi)存分頁(yè)系統(tǒng),可以更好地解決由于在服務(wù)器主板之外有大量池化內(nèi)存而帶來(lái)的稍高的延遲。
以下是臉書(shū)在幾代機(jī)器的內(nèi)存容量、帶寬、功率和成本方面所面臨的挑戰(zhàn):
從上圖可以看出,內(nèi)存容量的增長(zhǎng)速度快于內(nèi)存帶寬,這對(duì)性能有重要影響。如果帶寬更高,那么在一定數(shù)量的CPU上完成一定量的工作,可能需要更少的內(nèi)存容量。就像CPU的時(shí)鐘速度是10GHz一樣,這比2.5GHz要好得多。但是更快的CPU和內(nèi)存時(shí)鐘會(huì)產(chǎn)生指數(shù)級(jí)熱量,因此系統(tǒng)架構(gòu)會(huì)試圖做更多的工作,并保持在合理的功率范圍內(nèi)。 但它不起作用。由于需要更高的性能,每代服務(wù)器上的系統(tǒng)功率和內(nèi)存功率都在不斷增加,內(nèi)存成本占系統(tǒng)總成本的比例也在不斷上升。在這一點(diǎn)上,系統(tǒng)的主要成本是內(nèi)存,而不是CPU本身。(不僅是在FaceBook ,全世界都是如此)
用CXL擴(kuò)展系統(tǒng)內(nèi)存容量和帶寬,延遲與NUMA訪問(wèn)基本相同
因此,基本上必須使用CXL協(xié)議覆蓋將主內(nèi)存移動(dòng)到PCI Express總線,以在不向CPU芯片添加更多內(nèi)存控制器的情況下,擴(kuò)展系統(tǒng)中的內(nèi)存容量和內(nèi)存帶寬。如下圖所示,該內(nèi)存中有一點(diǎn)延遲,但其大小與共享內(nèi)存系統(tǒng)中兩個(gè)CPU之間的NUMA鏈路相同:
試圖找出如何使用CXL內(nèi)存的訣竅,就像Optane 3D XPoint DIMM和各種速度的閃存一樣,就是找出在內(nèi)存中使用的數(shù)據(jù)有多少是?hot , warm , cold?的,然后找出一種機(jī)制,在最快的內(nèi)存中獲取 hot 數(shù)據(jù),在最冷的內(nèi)存中獲取 cold 數(shù)據(jù),在warm 內(nèi)存中獲取 warm 數(shù)據(jù)。您還需要知道每個(gè)溫度層上有多少數(shù)據(jù),以便獲得正確的容量。這就是 FaceBook Platform和Chowdhury創(chuàng)建的變色龍工具的全部?jī)?nèi)容。
CXL 把我們帶入大內(nèi)存時(shí)代 --從MemVerge視角
MemVerge 公司CEO Charles Fan指出 :動(dòng)態(tài)組合服務(wù)器并獲取10TB以上內(nèi)存池容量的能力將推動(dòng)更多應(yīng)用在內(nèi)存中運(yùn)行,避免外部存儲(chǔ)IO流讀寫(xiě)。存儲(chǔ)級(jí)內(nèi)存將成為主要的熱數(shù)據(jù)存儲(chǔ)層,NAND和HDD分別用于溫?cái)?shù)據(jù),而 tape 用于冷數(shù)據(jù)?,F(xiàn)在CXL市場(chǎng)經(jīng)歷了一年的發(fā)展,這是業(yè)內(nèi)近十年來(lái)一次重大的架構(gòu)變革,可能會(huì)帶來(lái)一個(gè)跨多服務(wù)器共享內(nèi)存結(jié)構(gòu)的新市場(chǎng)。 MemVerge軟件將DRAM和Optane DIMM持久內(nèi)存組合到一個(gè)集群存儲(chǔ)池中,供服務(wù)器應(yīng)用使用,無(wú)需更改代碼。換句話說(shuō),這款軟件已經(jīng)結(jié)合了快速和慢速內(nèi)存。
CXL v2.0增加了對(duì)CXL交換的支持,通過(guò)該支持,多個(gè)連接CXL 2.0的主機(jī)處理器可以使用分布式共享內(nèi)存和持久(存儲(chǔ)類)內(nèi)存。CXL 2.0主機(jī)將擁有自己的直接連接DRAM,并能夠通過(guò)CXL 2.0鏈路訪問(wèn)外部DRAM。這種外部DRAM訪問(wèn)將比本地DRAM訪問(wèn)慢幾納秒,需要系統(tǒng)軟件來(lái)彌合這一差距。(順便提一下,MemVerge提供的系統(tǒng)軟件。)范說(shuō),他認(rèn)為CXL2.0交換機(jī)和外部?jī)?nèi)存盒最早可能出現(xiàn)在2024年。不過(guò),我們將更早地看到原型。
MemVerge正在和組合系統(tǒng)供應(yīng)商Liqid合作,讓MemVerge創(chuàng)建的DRAM和Optane內(nèi)存池能通過(guò)當(dāng)今的PCIe 3和4總線能全部或部分動(dòng)態(tài)分配給服務(wù)器。CXL 2.0應(yīng)該引入外部?jī)?nèi)存池及其對(duì)服務(wù)器的動(dòng)態(tài)可用性。 范承工表示有了CXL,內(nèi)存動(dòng)態(tài)組合可以和云服務(wù)模型高度協(xié)同。因此,云服務(wù)提供商會(huì)成為這項(xiàng)技術(shù)的首批采用者之一。
Blocks & Files認(rèn)為,包括公有云供應(yīng)商在內(nèi)的所有超大規(guī)模企業(yè)都會(huì)依賴CXL連接內(nèi)存池。而且他們沒(méi)有可用于提供外部池化內(nèi)存資源的現(xiàn)有技術(shù),因此要么自己建,要么得尋找合適的供應(yīng)商。 MemVerge將推動(dòng)由CXL交換機(jī)、擴(kuò)展器、存儲(chǔ)卡和設(shè)備供應(yīng)商組成的CXL 2.0生態(tài)系統(tǒng)的興起。MemVerge的軟件能在公有云上運(yùn)行。有一家生物技術(shù)研究公司SeekGene已經(jīng)通過(guò)在阿里云i4p計(jì)算實(shí)例運(yùn)行上使用MemVerge Memory Machine,從而顯著減少了處理時(shí)間和成本。
阿里云是第一家面向用戶提供Optane實(shí)例支持的云服務(wù)提供商,和MemVerge的聯(lián)合服務(wù)就是在此之上,允許封裝應(yīng)用,并使用MemVerge的快照技術(shù)實(shí)現(xiàn)回卷恢復(fù)。 MemVerge會(huì)以開(kāi)源形式提供基礎(chǔ)版大內(nèi)存軟件來(lái)擴(kuò)大應(yīng)用范圍,并提供付費(fèi)擴(kuò)展功能,比如快照和檢查點(diǎn)服務(wù)。
外部?jī)?nèi)存池示例
想象一下,今天有一個(gè)20臺(tái)服務(wù)器的機(jī)架,每個(gè)服務(wù)器都有2TB的內(nèi)存。這是20 x 2TB內(nèi)存塊,40TB,任何應(yīng)用程序的內(nèi)存都限制在2TB。MemVerge的軟件可以用于將任何一臺(tái)服務(wù)器中的內(nèi)存地址空間擴(kuò)展到3TB左右,但每臺(tái)服務(wù)器的DRAM插槽數(shù)量有限,一旦用完就不再可用。CXL 2.0消除了這一限制。 現(xiàn)在,讓我們重新想象一下由20臺(tái)服務(wù)器組成的機(jī)架,其中每臺(tái)服務(wù)器都有512GB的內(nèi)存,機(jī)架上有一個(gè)CXL 2.0連接的內(nèi)存擴(kuò)展器機(jī)箱,具有30TB的DRAM。
我們的DRAM總量仍然與以前相同,為40TB,但現(xiàn)在的分布有所不同,有20 x 512GB的塊,每臺(tái)服務(wù)器一個(gè),以及30TB的可共享池。 內(nèi)存中的應(yīng)用程序可能會(huì)消耗高達(dá)30.5TB的DRAM,是以前的10倍,這從根本上增加了它可以處理的工作數(shù)據(jù)集,并減少了其存儲(chǔ)IO。我們可以有三個(gè)內(nèi)存應(yīng)用程序,每個(gè)應(yīng)用程序占用30TB內(nèi)存池中的10TB。
此類應(yīng)用程序執(zhí)行速度更快的能力將顯著提高。 范說(shuō):“它提高了應(yīng)用程序的上限,即你可以使用多少內(nèi)存,你可以根據(jù)需要?jiǎng)討B(tài)地配置它。所以我認(rèn)為這是革命性的?!?不僅僅是服務(wù)器可以使用它,GPU還可以使用更具可擴(kuò)展性的內(nèi)存層。
新創(chuàng)建的DRAM內(nèi)容仍然必須是持久的,將30TB的數(shù)據(jù)寫(xiě)入NAND將需要相當(dāng)長(zhǎng)的時(shí)間,但可以使用 Intel Optane 或類似的存儲(chǔ)類內(nèi)存,如ReRAM,而IO速度要快得多。然后,最活躍的數(shù)據(jù)將存儲(chǔ)在SCM設(shè)備中,隨著時(shí)間的推移,活動(dòng)性較差的數(shù)據(jù)將首先傳輸?shù)絅AND,然后傳輸?shù)酱疟P(pán),最后傳輸?shù)酱艓?,其活?dòng)性配置文件越來(lái)越低。 這種連接 CXL 的SCM可以在同一個(gè)或單獨(dú)的機(jī)箱中,并且可以動(dòng)態(tài)組合。我們可以設(shè)想使用這種分層外部DRAM和 Optane系統(tǒng)的超大規(guī)模供應(yīng)商服務(wù)運(yùn)行更快,能夠以更高的利用率支持更多用戶。
應(yīng)用程序設(shè)計(jì)也可能發(fā)生變化。范補(bǔ)充道:“應(yīng)用程序的一般邏輯是使用盡可能多的內(nèi)存。只有在內(nèi)存不足的情況下才使用存儲(chǔ)。對(duì)于其他數(shù)據(jù)密集型應(yīng)用程序,它將以同樣的方式運(yùn)行,包括數(shù)據(jù)庫(kù)。我認(rèn)為內(nèi)存數(shù)據(jù)庫(kù)是一個(gè)大趨勢(shì)。對(duì)于許多互聯(lián)網(wǎng)服務(wù)提供商來(lái)說(shuō),我認(rèn)為基礎(chǔ)設(shè)施提供更無(wú)限的內(nèi)存將影響他們的應(yīng)用程序設(shè)計(jì),因?yàn)樗詢?nèi)存為中心。這反過(guò)來(lái)又減少了他們對(duì)存儲(chǔ)的依賴?!?/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/)??
編輯:黃飛
評(píng)論
查看更多