以下內(nèi)容根據(jù)現(xiàn)場速記整理:

CXL是一個新興的內(nèi)存接口,它對于整個數(shù)據(jù)中心架構(gòu)會產(chǎn)生非常深遠的影響。

今天有幸請到了幾位業(yè)內(nèi)的專家,,既有硬件也有軟件方面,他們分別來自英特爾、三星、瀾起和MemVerge,給大家全方位解讀CXL技術(shù)以及它的應用場景。

接下來,我簡單介紹一下CXL,為什么會有CXL,它主要想解決哪些問題,它的基本定義是什么,基本的技術(shù)構(gòu)成是什么,它潛在的應用場景是什么。

隨后,英特爾和三星的專家會做更詳細的介紹,瀾起是做CXL控制器的廠商,MemVerge是做大內(nèi)存軟件的廠商,也會做更詳細的介紹。

首先來看,CXL要解決的挑戰(zhàn)是內(nèi)存墻和IO墻問題,內(nèi)存墻和IO墻又是什么?

隨著需要訪問的數(shù)據(jù)越來越多,內(nèi)存墻和IO墻成為兩個不可逾越的瓶頸,阻礙應用的性能表現(xiàn)。

上圖是去年Meta在OCP全球峰會上發(fā)表的,圖中指出一個有趣的現(xiàn)象:過去10年,CPU的內(nèi)核數(shù)有著非常快速的上升,10年里內(nèi)核數(shù)提升了大概三倍,但CPU內(nèi)核到內(nèi)存的帶寬反而下降了。

也就是說,每顆CPU核心能夠享用的內(nèi)存帶寬是在下降的,每顆核心之間能交換的數(shù)據(jù)量是減少的。不幸的是,應用要訪問的數(shù)據(jù)是越來越多,所以說,內(nèi)存和計算之間的接口就成為一個主要的瓶頸,這就是內(nèi)存墻。

值得單獨說一句的是:內(nèi)存墻的其實就是常說的“馮諾·依曼”架構(gòu)的瓶頸。

IO墻是什么呢?

上圖來自英特爾,圖中以AI為例,AI模型的大小基本上每兩年上升一個數(shù)量級,數(shù)據(jù)如果放在內(nèi)存里可以很快訪問到,但如果內(nèi)存里放不下的話,就需要放在外部存儲里,用網(wǎng)絡IO來訪問數(shù)據(jù)。

IO方式的訪問會使得訪問速度下降幾個數(shù)量級,當內(nèi)存容量不夠大時,IO也不可避免地會成為應用的瓶頸,這既是IO墻。內(nèi)存墻和IO墻是影響新一代的應用性能的兩個障礙,如何打破這些障礙呢?這就要依靠CXL了。

廣受關(guān)注的CXL到底是什么?

CXL聯(lián)盟由業(yè)界200多家公司合作建立,CXL定義了一個標準,既支持各種各樣的存儲器,也支持各種異構(gòu)的計算、芯片,包括CPU、GPU、DPU、各種AI加速器,甚至各種FPGA加速器。

CXL也支持各種各樣的內(nèi)存,包括DRAM、新興的內(nèi)存,甚至NAND閃存。CXL可以提高從計算到內(nèi)存的訪問的一致性,所以使得不同的XPU可以同時訪問同一塊芯片。

在過去幾年里,CXL逐漸成熟,到現(xiàn)在已經(jīng)發(fā)表了1.1、2.0、3.0三個不同的版本。CXL的定義之下,它有三種不同的設備。

第一種設備是加速器,指的是計算設備,可以是CPU,也可以是各種AI加速器;

CPU里自帶 Cache,CXL可以保持CPU Cache的一致性;

第三種設備是內(nèi)存,CXL可以連接各種各樣的內(nèi)存;

中間的第二種設備實際上是第一種和第三種的結(jié)合體,它可以既有計算,也有內(nèi)存,兩種可以同時掛載到CXL。

CXL發(fā)展簡史:1.1、2.0、3.0

在2019年,CXL的第一個版本CXL 1.1問世了。它主要定義的標準是如何直接連接計算器件和內(nèi)存器件,主要指的是在一臺服務器里面能夠直接把他們連在一起。它主要的場景是對內(nèi)存的容量和帶寬進行擴展,叫Memory Expansion。

傳統(tǒng)服務器的內(nèi)存插在DDR4 DIMM接口,該接口有一定的帶寬的限制,內(nèi)存帶寬對CPU的利用率不是太高,不如PCIe總線對CPU的利用率高。

而CXL正是建立在PCIe的基礎(chǔ)之上的,在PCIe 5.0及以上標準來跑CXL的標準。這個帶寬就在DDR帶寬的基礎(chǔ)上再加上PCIe的帶寬,PCIe 5.0每一個通道的帶寬就有4個GB/s,16個通道就能達到64個GB/s,如果有128個通道,就可以增加500 GB/s多的帶寬。

所以,它可以很有效的對內(nèi)存的帶寬進行擴展,也可以對內(nèi)存的容量進行擴展。既能擴大帶寬,也能擴大容量,從某種意義上說,就是在解決內(nèi)存墻和IO墻的瓶頸。

CXL 1.1解決的還是單機設備的問題,在一臺服務器里對內(nèi)存進行擴展,而CXL 2.0就超出了單機的范疇。

上面的H1到H4到Hn指的是不同Host,它可以通過CXL Switch連接多個設備,底下的D1、D2、D3、D4指的是不同的內(nèi)存,也是通CXL Switch連到上層的主機里。

在這套框架之下,它就使得Memory Polling成為可能,你可以跨系統(tǒng)設備實現(xiàn)共享內(nèi)存池,這就增加了很多的靈活性。

比如,如果有機器內(nèi)存不夠的時,就可以靈活的從這個池子里來找內(nèi)存,如果這臺機器不需要這些內(nèi)存了還可以隨時還回來。

這無疑將大大提高內(nèi)存的使用率,或者降低內(nèi)存的使用成本。考慮到效率提高,自然也會降低對于環(huán)境的影響,有助于減少碳排放。

CXL 3.0是2022年8月份發(fā)布的新標準,在CXL 2.0基礎(chǔ)上增加了一些重要功能,它可以使得多個Switch互相連接,可以使得上百個服務器互聯(lián)并共享內(nèi)存。

除了多層交互以外,CXL 3.0還多了一些功能,比如Memory sharing的能力,這種能力突破了某一個物理內(nèi)存只能屬于某一臺服務器的限制,在硬件上實現(xiàn)了多機共同訪問同樣內(nèi)存地址的能力。

Memory sharing需要實現(xiàn)很強的內(nèi)存一致性,而此前的CXL 2.0只能通過軟件實現(xiàn),CXL 3.0開始,它可以在硬件層面來實現(xiàn)。

上圖是CXL功能的演進變化,不少公司都宣布將支持CXL,包括AMD、英特爾下一代的服務器的芯片。內(nèi)存廠商部分,三星、海力士、美光也都宣布了支持CXL的內(nèi)存產(chǎn)品,真正的產(chǎn)品可能就要到明年了。

2024年上半年,CXL 1.1和CXL 2.0的產(chǎn)品可能會有落地產(chǎn)品,CXL 3.0的落地還需要更長時間?,F(xiàn)階段,合作伙伴可以聯(lián)系這些廠商找一些工程樣品搭建環(huán)境進行開發(fā)測試。

以史為鑒,CXL將引起一場技術(shù)與商業(yè)變革

CXL在業(yè)界造成了非常大的影響,堪稱是一場變革。上世紀90年代,存儲也經(jīng)歷了一場類似的變革。

上世紀90年代之前,存儲指的就是硬盤,在一臺服務器里用硬盤來做存儲,但是在90年代初,一個叫Fiber  Channel的網(wǎng)絡出現(xiàn)了,它使存儲從服務器里走了出來,變成一個獨立的、與計算分離的、可以獨立擴展、獨立管理的系統(tǒng)。

這種系統(tǒng)就是人們熟知的SAN系統(tǒng),隨后又逐漸出現(xiàn)了各種各樣的網(wǎng)絡共享存儲,這場技術(shù)革命,使得存儲從一個簡單的器件行業(yè)變成了一個軟件和系統(tǒng)行業(yè)。

1990年的存儲只是服務器的一部分,當時并沒有存儲軟件的概念。而1995年,集合了軟件和硬件的SAN系統(tǒng)開始出現(xiàn),2000年左右,第一代NAS開始落地。從2010年以來,經(jīng)過多年發(fā)展后,存儲軟件和存儲設備成為了一個500億美元以上的市場。

過程中也涌現(xiàn)了一大批成功的領(lǐng)導者公司,包括EMC、NetApp、Veritas、PureStorage等等。也有很多依靠通用硬件,在軟件上做創(chuàng)新的存儲公司獲得了不錯的市場成績。存儲軟件其實很重要,500億美元的存儲市場中,主要價值都是在軟件上。

現(xiàn)在的內(nèi)存和30年前的硬盤存儲極為相似。

內(nèi)存是一個重要的硬件器件,但是現(xiàn)在并沒有內(nèi)存軟件或者內(nèi)存系統(tǒng)這一市場。這是因為,現(xiàn)在的內(nèi)存只是服務器里的一個設備,而并不是在一個網(wǎng)絡上可以獨立擴展,獨立管理的系統(tǒng)。

隨著CXL的出現(xiàn),內(nèi)存可以和計算進行分離,就像90年代存儲和計算分離一樣,這意味著,內(nèi)存可以變成獨立的,可以擴展,可以管理,可以增加新功能的系統(tǒng)。

我相信,未來10年,20年里,同樣也會有新的百億美元大內(nèi)存市場,一個包含軟件和系統(tǒng)的大內(nèi)存市場,在此期間,會涌現(xiàn)出一批新的技術(shù)公司。

這是一個對比,CXL某種程度上就像是30年前的存儲網(wǎng)絡,使得內(nèi)存從服務器里解放出來。

CXL落地:既需要硬件,也需要軟件,還需要生態(tài)

典型的CXL方案中,需要一批內(nèi)存硬件來構(gòu)成內(nèi)存池,主機內(nèi)部有內(nèi)存,主機之外也有內(nèi)存,相互間通過CXL交換機連接,中間還需要一個軟件系統(tǒng)來進行管理。

系統(tǒng)軟件算是一個Fabric manager,它負責管理內(nèi)存資源的分配,可以動態(tài)的把內(nèi)存分配給任何一個Host或者也可以從任何一個Host拿回內(nèi)存,另外,系統(tǒng)軟件還會提供一些數(shù)據(jù)服務。

隨著CXL 3.0標準對于多個Switch的支持,集群規(guī)??梢赃M一步擴大,從10臺20臺服務器擴展到百臺甚至千臺的服務器規(guī)模的共享內(nèi)存資源池。

大內(nèi)存時代,將會把軟件對于內(nèi)存的重要性提高到了非常高的階段。

這是因為,當大內(nèi)存的系統(tǒng)架構(gòu)有一定的復雜性、共享性需求后,簡單的操作系統(tǒng)已經(jīng)無法滿足應用對于內(nèi)存的需求,都需要軟件來實現(xiàn)更復雜的功能。

比如,在服務器里,系統(tǒng)軟件需要考慮如何合理使用內(nèi)存,而不需要去修改應用程序,比如,通過自動分層技術(shù)來完成操作。此外,當內(nèi)存容量越來越大,就需要進行一些保護手段,就像如今的存儲系統(tǒng)需要數(shù)據(jù)保護一樣,比如說快照這種功能。

使用過程中,還需要對內(nèi)存的使用狀況進行監(jiān)視,對于內(nèi)存上的應用進行Profiling,查看內(nèi)存訪問的模式。

大內(nèi)存時代下,可在服務器上通過軟件實現(xiàn)一定的Sharing(共享)和緩存一致性功能,使多機來共享同一個內(nèi)存地址,使得共享內(nèi)存成為高帶寬、低延遲的溝通手段。在此基礎(chǔ)上,將可以開發(fā)出新一代的應用程序。

這只是Host(服務器)上的功能,而內(nèi)存池里還有更多功能需要實現(xiàn)。

內(nèi)存池方面,需要管理軟件來管理不同物理內(nèi)存的內(nèi)存地址,哪一塊內(nèi)存映射到哪一個Host;還可以對內(nèi)存進行容量優(yōu)化,比如壓縮和重復數(shù)據(jù)刪除功能,提升內(nèi)存的可使用空間;此外,還有數(shù)據(jù)保護、安全、全局洞察等功能。

由此可見,軟件上可以做的工作非常多。

如今,在存儲還是網(wǎng)絡領(lǐng)域都非常流行軟件定義的概念,當內(nèi)存網(wǎng)絡出現(xiàn)后,軟件定義內(nèi)存的概念就會出現(xiàn),通過軟件來實現(xiàn)內(nèi)存的動態(tài)分配,以及內(nèi)存之上的各種數(shù)據(jù)服務。

整個硬件加軟件的生態(tài)環(huán)境里,已經(jīng)涌現(xiàn)了一大批公司。

包括英特爾、AMD、NVIDIA、ARM等計算芯片公司,同時還有一大批內(nèi)存公司,比如三星、海力士、美光,也有一些相關(guān)芯片公司,比如瀾起科技。

此外,市場上會出現(xiàn)新一代的服務器和操作系統(tǒng),也會出現(xiàn)軟硬一體的解決方案,這些企業(yè)都將成為生態(tài)中的重要組成部分。

云服務商也非常關(guān)注CXL,如今也成了CXL領(lǐng)域的先行者,在CXL上進行了一些研發(fā),在應用上,內(nèi)存池化可以對他們的技術(shù)架構(gòu)帶來非常多的好處,某用戶在使用CXL技術(shù)方案后每年可以節(jié)省數(shù)億美元的費用。

此外,我們還看到一些新興的軟件公司在CXL架構(gòu)上優(yōu)化他們的應用,很多業(yè)內(nèi)公司在推動CXL的落地和使用。

CXL的典型使用場景

最后,來看一下CXL可能的一些應用場景。

第一個領(lǐng)域是金融行業(yè)(FSI)。

金融行業(yè)里可能是CXL最早落地的行業(yè)之一。因為金融行業(yè)對于數(shù)據(jù)的性能要求很高,越來越多的應用成了在內(nèi)存中的應用。金融行業(yè)對于新技術(shù)也一直非常敏感,非常具有前瞻性,會比較早的嘗試落地新興技術(shù)。

在金融行業(yè)里,共享內(nèi)存可以實現(xiàn)低延遲、高帶寬的系統(tǒng),可以使一個節(jié)點能快速穩(wěn)定地向多個節(jié)點傳發(fā)信息。比如,股市交易信息就可以很快的從一點轉(zhuǎn)發(fā)到各地。在信息處理的過程中,因為有大內(nèi)存的存在,它還可以防止內(nèi)存的溢出。

金融行業(yè)的內(nèi)存數(shù)據(jù)庫越來越多,數(shù)據(jù)分析的需求也越來越多,而大內(nèi)存可以使得更多數(shù)據(jù)放在內(nèi)存里。傳統(tǒng)的關(guān)系型數(shù)據(jù)庫場景中,可共享的大內(nèi)存可以使得關(guān)系數(shù)據(jù)庫的緩存更加高效,這意味著將出現(xiàn)新一代的關(guān)系型數(shù)據(jù)庫。

第二個是在AI和 機器學習領(lǐng)域。

CXL有更好的擴展性和更高帶寬的內(nèi)存,它可以將更多模型放到內(nèi)存里,更高的帶寬可以縮減訓練的時間,提高AI應用的速度。

第三個,在云服務商領(lǐng)域,它可以通過可組合的基礎(chǔ)架構(gòu)(Composable infrastucture)把更多的內(nèi)存放在池子里,如此一來,閑置的內(nèi)存就會減少,整體的內(nèi)存利用率得以提升。

第四個,在高性能計算領(lǐng)域。

高性能計算領(lǐng)域,通過內(nèi)存池中的Snapshot功能實現(xiàn)斷點續(xù)算,提升整體的運算速度,也可以在多個節(jié)點中通過API的形式來共享內(nèi)存。

以上是CXL可能最先落地的一些訓練場景。

今年3月份的一篇文章里提到了一個對云廠商做的內(nèi)部調(diào)查,調(diào)查發(fā)現(xiàn),在微軟Azure,有高達25%的內(nèi)存都是閑置的,有50%的虛擬機使用的內(nèi)存占比僅為50%,大約有一半的內(nèi)存沒有被用上。

在采用了CXL共享內(nèi)存后,整體的利用率提升了10%,這意味著每年能減少數(shù)億美金的成本,對于整個成本節(jié)省非常重要。

另外一份白皮書中,谷歌也在做類似的事情,谷歌服務器集群中DRAM內(nèi)存平均利用率約為40%,可見,其內(nèi)存的利用率有很大可提升空間,池化之后可以明顯提高內(nèi)存的利用率。

剛才說的是CXL技術(shù)和它最初的應用場景。

CXL支持以內(nèi)存為中心的數(shù)據(jù)中心

接下來總結(jié)一下CXL最主要的優(yōu)點:

第一,它提高了內(nèi)存帶寬,打破了內(nèi)存墻,它可以提高3倍的內(nèi)存帶寬;

第二,它可以動態(tài)提高內(nèi)存的容量,可以有效的避免存儲和網(wǎng)絡里的IO墻;

第三,它能夠降低總成本。通過靈活的調(diào)配,可以提高整個內(nèi)存的使用率,降低整個內(nèi)存的使用成本;

第四,通過更靈活的CXL架構(gòu),它可以使得整個異構(gòu)計算的架構(gòu)更上一層樓,使得任何一個服務器可以訪問任何一種內(nèi)存;

在以上種種條件的作用下,它可以使得數(shù)據(jù)中心變成以內(nèi)存為中心的新架構(gòu),使得各種各樣的運算能夠更快的進行,能夠為終端客戶帶來更高的價值。

這就是CXL獲得大家關(guān)注的原因,希望能和各位朋友一起把CXL真正的落地到數(shù)據(jù)中心。

分享到

zhupb

相關(guān)推薦