以下內(nèi)容根據(jù)現(xiàn)場(chǎng)速記整理:
CXL是一個(gè)新興的內(nèi)存接口,它對(duì)于整個(gè)數(shù)據(jù)中心架構(gòu)會(huì)產(chǎn)生非常深遠(yuǎn)的影響。
今天有幸請(qǐng)到了幾位業(yè)內(nèi)的專家,,既有硬件也有軟件方面,他們分別來自英特爾、三星、瀾起和MemVerge,給大家全方位解讀CXL技術(shù)以及它的應(yīng)用場(chǎng)景。
接下來,我簡(jiǎn)單介紹一下CXL,為什么會(huì)有CXL,它主要想解決哪些問題,它的基本定義是什么,基本的技術(shù)構(gòu)成是什么,它潛在的應(yīng)用場(chǎng)景是什么。
隨后,英特爾和三星的專家會(huì)做更詳細(xì)的介紹,瀾起是做CXL控制器的廠商,MemVerge是做大內(nèi)存軟件的廠商,也會(huì)做更詳細(xì)的介紹。
首先來看,CXL要解決的挑戰(zhàn)是內(nèi)存墻和IO墻問題,內(nèi)存墻和IO墻又是什么?
隨著需要訪問的數(shù)據(jù)越來越多,內(nèi)存墻和IO墻成為兩個(gè)不可逾越的瓶頸,阻礙應(yīng)用的性能表現(xiàn)。
上圖是去年Meta在OCP全球峰會(huì)上發(fā)表的,圖中指出一個(gè)有趣的現(xiàn)象:過去10年,CPU的內(nèi)核數(shù)有著非常快速的上升,10年里內(nèi)核數(shù)提升了大概三倍,但CPU內(nèi)核到內(nèi)存的帶寬反而下降了。
也就是說,每顆CPU核心能夠享用的內(nèi)存帶寬是在下降的,每顆核心之間能交換的數(shù)據(jù)量是減少的。不幸的是,應(yīng)用要訪問的數(shù)據(jù)是越來越多,所以說,內(nèi)存和計(jì)算之間的接口就成為一個(gè)主要的瓶頸,這就是內(nèi)存墻。
值得單獨(dú)說一句的是:內(nèi)存墻的其實(shí)就是常說的“馮諾·依曼”架構(gòu)的瓶頸。
IO墻是什么呢?
上圖來自英特爾,圖中以AI為例,AI模型的大小基本上每?jī)赡晟仙粋€(gè)數(shù)量級(jí),數(shù)據(jù)如果放在內(nèi)存里可以很快訪問到,但如果內(nèi)存里放不下的話,就需要放在外部存儲(chǔ)里,用網(wǎng)絡(luò)IO來訪問數(shù)據(jù)。
IO方式的訪問會(huì)使得訪問速度下降幾個(gè)數(shù)量級(jí),當(dāng)內(nèi)存容量不夠大時(shí),IO也不可避免地會(huì)成為應(yīng)用的瓶頸,這既是IO墻。內(nèi)存墻和IO墻是影響新一代的應(yīng)用性能的兩個(gè)障礙,如何打破這些障礙呢?這就要依靠CXL了。
廣受關(guān)注的CXL到底是什么?
CXL聯(lián)盟由業(yè)界200多家公司合作建立,CXL定義了一個(gè)標(biāo)準(zhǔn),既支持各種各樣的存儲(chǔ)器,也支持各種異構(gòu)的計(jì)算、芯片,包括CPU、GPU、DPU、各種AI加速器,甚至各種FPGA加速器。
CXL也支持各種各樣的內(nèi)存,包括DRAM、新興的內(nèi)存,甚至NAND閃存。CXL可以提高從計(jì)算到內(nèi)存的訪問的一致性,所以使得不同的XPU可以同時(shí)訪問同一塊芯片。
在過去幾年里,CXL逐漸成熟,到現(xiàn)在已經(jīng)發(fā)表了1.1、2.0、3.0三個(gè)不同的版本。CXL的定義之下,它有三種不同的設(shè)備。
第一種設(shè)備是加速器,指的是計(jì)算設(shè)備,可以是CPU,也可以是各種AI加速器;
CPU里自帶 Cache,CXL可以保持CPU Cache的一致性;
第三種設(shè)備是內(nèi)存,CXL可以連接各種各樣的內(nèi)存;
中間的第二種設(shè)備實(shí)際上是第一種和第三種的結(jié)合體,它可以既有計(jì)算,也有內(nèi)存,兩種可以同時(shí)掛載到CXL。
CXL發(fā)展簡(jiǎn)史:1.1、2.0、3.0
在2019年,CXL的第一個(gè)版本CXL 1.1問世了。它主要定義的標(biāo)準(zhǔn)是如何直接連接計(jì)算器件和內(nèi)存器件,主要指的是在一臺(tái)服務(wù)器里面能夠直接把他們連在一起。它主要的場(chǎng)景是對(duì)內(nèi)存的容量和帶寬進(jìn)行擴(kuò)展,叫Memory Expansion。
傳統(tǒng)服務(wù)器的內(nèi)存插在DDR4 DIMM接口,該接口有一定的帶寬的限制,內(nèi)存帶寬對(duì)CPU的利用率不是太高,不如PCIe總線對(duì)CPU的利用率高。
而CXL正是建立在PCIe的基礎(chǔ)之上的,在PCIe 5.0及以上標(biāo)準(zhǔn)來跑CXL的標(biāo)準(zhǔn)。這個(gè)帶寬就在DDR帶寬的基礎(chǔ)上再加上PCIe的帶寬,PCIe 5.0每一個(gè)通道的帶寬就有4個(gè)GB/s,16個(gè)通道就能達(dá)到64個(gè)GB/s,如果有128個(gè)通道,就可以增加500 GB/s多的帶寬。
所以,它可以很有效的對(duì)內(nèi)存的帶寬進(jìn)行擴(kuò)展,也可以對(duì)內(nèi)存的容量進(jìn)行擴(kuò)展。既能擴(kuò)大帶寬,也能擴(kuò)大容量,從某種意義上說,就是在解決內(nèi)存墻和IO墻的瓶頸。
CXL 1.1解決的還是單機(jī)設(shè)備的問題,在一臺(tái)服務(wù)器里對(duì)內(nèi)存進(jìn)行擴(kuò)展,而CXL 2.0就超出了單機(jī)的范疇。
上面的H1到H4到Hn指的是不同Host,它可以通過CXL Switch連接多個(gè)設(shè)備,底下的D1、D2、D3、D4指的是不同的內(nèi)存,也是通CXL Switch連到上層的主機(jī)里。
在這套框架之下,它就使得Memory Polling成為可能,你可以跨系統(tǒng)設(shè)備實(shí)現(xiàn)共享內(nèi)存池,這就增加了很多的靈活性。
比如,如果有機(jī)器內(nèi)存不夠的時(shí),就可以靈活的從這個(gè)池子里來找內(nèi)存,如果這臺(tái)機(jī)器不需要這些內(nèi)存了還可以隨時(shí)還回來。
這無疑將大大提高內(nèi)存的使用率,或者降低內(nèi)存的使用成本??紤]到效率提高,自然也會(huì)降低對(duì)于環(huán)境的影響,有助于減少碳排放。
CXL 3.0是2022年8月份發(fā)布的新標(biāo)準(zhǔn),在CXL 2.0基礎(chǔ)上增加了一些重要功能,它可以使得多個(gè)Switch互相連接,可以使得上百個(gè)服務(wù)器互聯(lián)并共享內(nèi)存。
除了多層交互以外,CXL 3.0還多了一些功能,比如Memory sharing的能力,這種能力突破了某一個(gè)物理內(nèi)存只能屬于某一臺(tái)服務(wù)器的限制,在硬件上實(shí)現(xiàn)了多機(jī)共同訪問同樣內(nèi)存地址的能力。
Memory sharing需要實(shí)現(xiàn)很強(qiáng)的內(nèi)存一致性,而此前的CXL 2.0只能通過軟件實(shí)現(xiàn),CXL 3.0開始,它可以在硬件層面來實(shí)現(xiàn)。
上圖是CXL功能的演進(jìn)變化,不少公司都宣布將支持CXL,包括AMD、英特爾下一代的服務(wù)器的芯片。內(nèi)存廠商部分,三星、海力士、美光也都宣布了支持CXL的內(nèi)存產(chǎn)品,真正的產(chǎn)品可能就要到明年了。
2024年上半年,CXL 1.1和CXL 2.0的產(chǎn)品可能會(huì)有落地產(chǎn)品,CXL 3.0的落地還需要更長(zhǎng)時(shí)間?,F(xiàn)階段,合作伙伴可以聯(lián)系這些廠商找一些工程樣品搭建環(huán)境進(jìn)行開發(fā)測(cè)試。
以史為鑒,CXL將引起一場(chǎng)技術(shù)與商業(yè)變革
CXL在業(yè)界造成了非常大的影響,堪稱是一場(chǎng)變革。上世紀(jì)90年代,存儲(chǔ)也經(jīng)歷了一場(chǎng)類似的變革。
上世紀(jì)90年代之前,存儲(chǔ)指的就是硬盤,在一臺(tái)服務(wù)器里用硬盤來做存儲(chǔ),但是在90年代初,一個(gè)叫Fiber Channel的網(wǎng)絡(luò)出現(xiàn)了,它使存儲(chǔ)從服務(wù)器里走了出來,變成一個(gè)獨(dú)立的、與計(jì)算分離的、可以獨(dú)立擴(kuò)展、獨(dú)立管理的系統(tǒng)。
這種系統(tǒng)就是人們熟知的SAN系統(tǒng),隨后又逐漸出現(xiàn)了各種各樣的網(wǎng)絡(luò)共享存儲(chǔ),這場(chǎng)技術(shù)革命,使得存儲(chǔ)從一個(gè)簡(jiǎn)單的器件行業(yè)變成了一個(gè)軟件和系統(tǒng)行業(yè)。
1990年的存儲(chǔ)只是服務(wù)器的一部分,當(dāng)時(shí)并沒有存儲(chǔ)軟件的概念。而1995年,集合了軟件和硬件的SAN系統(tǒng)開始出現(xiàn),2000年左右,第一代NAS開始落地。從2010年以來,經(jīng)過多年發(fā)展后,存儲(chǔ)軟件和存儲(chǔ)設(shè)備成為了一個(gè)500億美元以上的市場(chǎng)。
過程中也涌現(xiàn)了一大批成功的領(lǐng)導(dǎo)者公司,包括EMC、NetApp、Veritas、PureStorage等等。也有很多依靠通用硬件,在軟件上做創(chuàng)新的存儲(chǔ)公司獲得了不錯(cuò)的市場(chǎng)成績(jī)。存儲(chǔ)軟件其實(shí)很重要,500億美元的存儲(chǔ)市場(chǎng)中,主要價(jià)值都是在軟件上。
現(xiàn)在的內(nèi)存和30年前的硬盤存儲(chǔ)極為相似。
內(nèi)存是一個(gè)重要的硬件器件,但是現(xiàn)在并沒有內(nèi)存軟件或者內(nèi)存系統(tǒng)這一市場(chǎng)。這是因?yàn)椋F(xiàn)在的內(nèi)存只是服務(wù)器里的一個(gè)設(shè)備,而并不是在一個(gè)網(wǎng)絡(luò)上可以獨(dú)立擴(kuò)展,獨(dú)立管理的系統(tǒng)。
隨著CXL的出現(xiàn),內(nèi)存可以和計(jì)算進(jìn)行分離,就像90年代存儲(chǔ)和計(jì)算分離一樣,這意味著,內(nèi)存可以變成獨(dú)立的,可以擴(kuò)展,可以管理,可以增加新功能的系統(tǒng)。
我相信,未來10年,20年里,同樣也會(huì)有新的百億美元大內(nèi)存市場(chǎng),一個(gè)包含軟件和系統(tǒng)的大內(nèi)存市場(chǎng),在此期間,會(huì)涌現(xiàn)出一批新的技術(shù)公司。
這是一個(gè)對(duì)比,CXL某種程度上就像是30年前的存儲(chǔ)網(wǎng)絡(luò),使得內(nèi)存從服務(wù)器里解放出來。
CXL落地:既需要硬件,也需要軟件,還需要生態(tài)
典型的CXL方案中,需要一批內(nèi)存硬件來構(gòu)成內(nèi)存池,主機(jī)內(nèi)部有內(nèi)存,主機(jī)之外也有內(nèi)存,相互間通過CXL交換機(jī)連接,中間還需要一個(gè)軟件系統(tǒng)來進(jìn)行管理。
系統(tǒng)軟件算是一個(gè)Fabric manager,它負(fù)責(zé)管理內(nèi)存資源的分配,可以動(dòng)態(tài)的把內(nèi)存分配給任何一個(gè)Host或者也可以從任何一個(gè)Host拿回內(nèi)存,另外,系統(tǒng)軟件還會(huì)提供一些數(shù)據(jù)服務(wù)。
隨著CXL 3.0標(biāo)準(zhǔn)對(duì)于多個(gè)Switch的支持,集群規(guī)??梢赃M(jìn)一步擴(kuò)大,從10臺(tái)20臺(tái)服務(wù)器擴(kuò)展到百臺(tái)甚至千臺(tái)的服務(wù)器規(guī)模的共享內(nèi)存資源池。
大內(nèi)存時(shí)代,將會(huì)把軟件對(duì)于內(nèi)存的重要性提高到了非常高的階段。
這是因?yàn)?,?dāng)大內(nèi)存的系統(tǒng)架構(gòu)有一定的復(fù)雜性、共享性需求后,簡(jiǎn)單的操作系統(tǒng)已經(jīng)無法滿足應(yīng)用對(duì)于內(nèi)存的需求,都需要軟件來實(shí)現(xiàn)更復(fù)雜的功能。
比如,在服務(wù)器里,系統(tǒng)軟件需要考慮如何合理使用內(nèi)存,而不需要去修改應(yīng)用程序,比如,通過自動(dòng)分層技術(shù)來完成操作。此外,當(dāng)內(nèi)存容量越來越大,就需要進(jìn)行一些保護(hù)手段,就像如今的存儲(chǔ)系統(tǒng)需要數(shù)據(jù)保護(hù)一樣,比如說快照這種功能。
使用過程中,還需要對(duì)內(nèi)存的使用狀況進(jìn)行監(jiān)視,對(duì)于內(nèi)存上的應(yīng)用進(jìn)行Profiling,查看內(nèi)存訪問的模式。
大內(nèi)存時(shí)代下,可在服務(wù)器上通過軟件實(shí)現(xiàn)一定的Sharing(共享)和緩存一致性功能,使多機(jī)來共享同一個(gè)內(nèi)存地址,使得共享內(nèi)存成為高帶寬、低延遲的溝通手段。在此基礎(chǔ)上,將可以開發(fā)出新一代的應(yīng)用程序。
這只是Host(服務(wù)器)上的功能,而內(nèi)存池里還有更多功能需要實(shí)現(xiàn)。
內(nèi)存池方面,需要管理軟件來管理不同物理內(nèi)存的內(nèi)存地址,哪一塊內(nèi)存映射到哪一個(gè)Host;還可以對(duì)內(nèi)存進(jìn)行容量?jī)?yōu)化,比如壓縮和重復(fù)數(shù)據(jù)刪除功能,提升內(nèi)存的可使用空間;此外,還有數(shù)據(jù)保護(hù)、安全、全局洞察等功能。
由此可見,軟件上可以做的工作非常多。
如今,在存儲(chǔ)還是網(wǎng)絡(luò)領(lǐng)域都非常流行軟件定義的概念,當(dāng)內(nèi)存網(wǎng)絡(luò)出現(xiàn)后,軟件定義內(nèi)存的概念就會(huì)出現(xiàn),通過軟件來實(shí)現(xiàn)內(nèi)存的動(dòng)態(tài)分配,以及內(nèi)存之上的各種數(shù)據(jù)服務(wù)。
整個(gè)硬件加軟件的生態(tài)環(huán)境里,已經(jīng)涌現(xiàn)了一大批公司。
包括英特爾、AMD、NVIDIA、ARM等計(jì)算芯片公司,同時(shí)還有一大批內(nèi)存公司,比如三星、海力士、美光,也有一些相關(guān)芯片公司,比如瀾起科技。
此外,市場(chǎng)上會(huì)出現(xiàn)新一代的服務(wù)器和操作系統(tǒng),也會(huì)出現(xiàn)軟硬一體的解決方案,這些企業(yè)都將成為生態(tài)中的重要組成部分。
云服務(wù)商也非常關(guān)注CXL,如今也成了CXL領(lǐng)域的先行者,在CXL上進(jìn)行了一些研發(fā),在應(yīng)用上,內(nèi)存池化可以對(duì)他們的技術(shù)架構(gòu)帶來非常多的好處,某用戶在使用CXL技術(shù)方案后每年可以節(jié)省數(shù)億美元的費(fèi)用。
此外,我們還看到一些新興的軟件公司在CXL架構(gòu)上優(yōu)化他們的應(yīng)用,很多業(yè)內(nèi)公司在推動(dòng)CXL的落地和使用。
CXL的典型使用場(chǎng)景
最后,來看一下CXL可能的一些應(yīng)用場(chǎng)景。
第一個(gè)領(lǐng)域是金融行業(yè)(FSI)。
金融行業(yè)里可能是CXL最早落地的行業(yè)之一。因?yàn)榻鹑谛袠I(yè)對(duì)于數(shù)據(jù)的性能要求很高,越來越多的應(yīng)用成了在內(nèi)存中的應(yīng)用。金融行業(yè)對(duì)于新技術(shù)也一直非常敏感,非常具有前瞻性,會(huì)比較早的嘗試落地新興技術(shù)。
在金融行業(yè)里,共享內(nèi)存可以實(shí)現(xiàn)低延遲、高帶寬的系統(tǒng),可以使一個(gè)節(jié)點(diǎn)能快速穩(wěn)定地向多個(gè)節(jié)點(diǎn)傳發(fā)信息。比如,股市交易信息就可以很快的從一點(diǎn)轉(zhuǎn)發(fā)到各地。在信息處理的過程中,因?yàn)橛写髢?nèi)存的存在,它還可以防止內(nèi)存的溢出。
金融行業(yè)的內(nèi)存數(shù)據(jù)庫(kù)越來越多,數(shù)據(jù)分析的需求也越來越多,而大內(nèi)存可以使得更多數(shù)據(jù)放在內(nèi)存里。傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)場(chǎng)景中,可共享的大內(nèi)存可以使得關(guān)系數(shù)據(jù)庫(kù)的緩存更加高效,這意味著將出現(xiàn)新一代的關(guān)系型數(shù)據(jù)庫(kù)。
第二個(gè)是在AI和 機(jī)器學(xué)習(xí)領(lǐng)域。
CXL有更好的擴(kuò)展性和更高帶寬的內(nèi)存,它可以將更多模型放到內(nèi)存里,更高的帶寬可以縮減訓(xùn)練的時(shí)間,提高AI應(yīng)用的速度。
第三個(gè),在云服務(wù)商領(lǐng)域,它可以通過可組合的基礎(chǔ)架構(gòu)(Composable infrastucture)把更多的內(nèi)存放在池子里,如此一來,閑置的內(nèi)存就會(huì)減少,整體的內(nèi)存利用率得以提升。
第四個(gè),在高性能計(jì)算領(lǐng)域。
高性能計(jì)算領(lǐng)域,通過內(nèi)存池中的Snapshot功能實(shí)現(xiàn)斷點(diǎn)續(xù)算,提升整體的運(yùn)算速度,也可以在多個(gè)節(jié)點(diǎn)中通過API的形式來共享內(nèi)存。
以上是CXL可能最先落地的一些訓(xùn)練場(chǎng)景。
今年3月份的一篇文章里提到了一個(gè)對(duì)云廠商做的內(nèi)部調(diào)查,調(diào)查發(fā)現(xiàn),在微軟Azure,有高達(dá)25%的內(nèi)存都是閑置的,有50%的虛擬機(jī)使用的內(nèi)存占比僅為50%,大約有一半的內(nèi)存沒有被用上。
在采用了CXL共享內(nèi)存后,整體的利用率提升了10%,這意味著每年能減少數(shù)億美金的成本,對(duì)于整個(gè)成本節(jié)省非常重要。
另外一份白皮書中,谷歌也在做類似的事情,谷歌服務(wù)器集群中DRAM內(nèi)存平均利用率約為40%,可見,其內(nèi)存的利用率有很大可提升空間,池化之后可以明顯提高內(nèi)存的利用率。
剛才說的是CXL技術(shù)和它最初的應(yīng)用場(chǎng)景。
CXL支持以內(nèi)存為中心的數(shù)據(jù)中心
接下來總結(jié)一下CXL最主要的優(yōu)點(diǎn):
第一,它提高了內(nèi)存帶寬,打破了內(nèi)存墻,它可以提高3倍的內(nèi)存帶寬;
第二,它可以動(dòng)態(tài)提高內(nèi)存的容量,可以有效的避免存儲(chǔ)和網(wǎng)絡(luò)里的IO墻;
第三,它能夠降低總成本。通過靈活的調(diào)配,可以提高整個(gè)內(nèi)存的使用率,降低整個(gè)內(nèi)存的使用成本;
第四,通過更靈活的CXL架構(gòu),它可以使得整個(gè)異構(gòu)計(jì)算的架構(gòu)更上一層樓,使得任何一個(gè)服務(wù)器可以訪問任何一種內(nèi)存;
在以上種種條件的作用下,它可以使得數(shù)據(jù)中心變成以內(nèi)存為中心的新架構(gòu),使得各種各樣的運(yùn)算能夠更快的進(jìn)行,能夠?yàn)榻K端客戶帶來更高的價(jià)值。
這就是CXL獲得大家關(guān)注的原因,希望能和各位朋友一起把CXL真正的落地到數(shù)據(jù)中心。