前幾天寫了一個關(guān)于新協(xié)議技術(shù)的文章,大家反響不錯,那今天再寫一個新協(xié)議。
協(xié)議技術(shù)的本質(zhì),其實是翻譯。舉一個極端情況,如果所有設(shè)備都說同樣的「語言」,那就壓根不需要這么多復(fù)雜的協(xié)議了。
從這個角度來看,對協(xié)議的定義,其實是對話語權(quán)的定義。
之前文章里介紹的協(xié)議,更多應(yīng)用在我們?nèi)粘I钪校?strong>但其實真正「諸侯割據(jù)」的大戰(zhàn)場,在數(shù)據(jù)中心。你聽過的幾乎所有最先進的技術(shù),比如AI訓(xùn)練、云計算、大數(shù)據(jù)分析等等,都發(fā)生(或首先發(fā)生)在數(shù)據(jù)中心里。
AI領(lǐng)域有算力、算法、數(shù)據(jù)三個要素,但它們本質(zhì)上都是對「數(shù)據(jù)」本身的處理:算力意味著數(shù)據(jù)處理性能更高、算法代表處理數(shù)據(jù)更加智能和高效,而數(shù)據(jù)其實指的是對更多更高質(zhì)量數(shù)據(jù)的需求。
所以還有這樣一句話:數(shù)據(jù)是新時代的石油。
然而,硬件又一次成功「拉胯」:雖然存儲數(shù)據(jù)的介質(zhì)有了進步,但面對不斷增長的海量數(shù)據(jù),內(nèi)存容量有限、存儲帶寬瓶頸、算存分離帶來的效率低下等問題,就成為制約數(shù)據(jù)中心里系統(tǒng)性能提升的瓶頸。當(dāng)然,本質(zhì)上的原因,是因為數(shù)據(jù)中心里巨頭太多,有的做計算、有的做存儲、有的做網(wǎng)絡(luò)、有的做應(yīng)用,大家在不同領(lǐng)域,由于各種各樣的原因很難好好協(xié)作。
在這個背景下,一個名叫CXL(Compute Express Link)的技術(shù)出現(xiàn)了。
和傳統(tǒng)的小修小補不同,CXL不是簡單的加內(nèi)存條數(shù)量或升級接口帶寬,而是提供了一種跨CPU、內(nèi)存、存儲的新連接標(biāo)準(zhǔn)。這不僅讓服務(wù)器架構(gòu)發(fā)生了根本性變化,也為傳統(tǒng)存儲與計算資源的使用方式帶來了重構(gòu)機會。
CXL:集團軍作戰(zhàn),想卷死誰?
想理解CXL的核心價值,我們可以打個比方:在傳統(tǒng)的計算架構(gòu)里,CPU像是一位將軍,帶著自己麾下的一群士兵(內(nèi)存、存儲)單打獨斗。而CXL的出現(xiàn),就像讓來自各個軍團的所有將軍之間可以調(diào)兵遣將、共享糧草、統(tǒng)一調(diào)度,從而形成一支集團軍。
這樣你不需要是韓信,帶兵多多益善;只要你是良將,就能靠CXL「對齊顆粒度,拉通上下游,形成組合拳」。
值得注意的是,CXL不是一個協(xié)議,而是一個協(xié)議家族,主要包含三個關(guān)鍵點:
1. CXL.io:基于PCIe的I/O協(xié)議,用于設(shè)備發(fā)現(xiàn)、配置、管理和傳統(tǒng)的I/O操作,確保了與現(xiàn)有PCIe生態(tài)系統(tǒng)的兼容性。
2. CXL.cache:允許加速器等設(shè)備與CPU共享緩存,實現(xiàn)對CPU內(nèi)存的一致性訪問。這對于需要低延遲訪問共享數(shù)據(jù)的應(yīng)用至關(guān)重要,比如現(xiàn)在的各種AI訓(xùn)練和推理任務(wù)。
3. CXL.mem:允許CPU訪問連接在CXL設(shè)備上的內(nèi)存,從而實現(xiàn)內(nèi)存的擴展和池化。這是CXL最具革命性的部分,使得內(nèi)存不再僅僅局限于主板上的DIMM插槽,也是我們今天要說的重點。
這意味著在基于CXL構(gòu)建的系統(tǒng)中,可以有一個“內(nèi)存池”,由多個CXL內(nèi)存設(shè)備構(gòu)成,不同CPU和加速器根據(jù)任務(wù)需求動態(tài)調(diào)用,而不再局限于本地內(nèi)存。這種分布式共享內(nèi)存的架構(gòu),不僅極大地提升了資源利用率,也為AI等吞吐密集型任務(wù)提供了理想平臺。
從宏觀層面來看,CXL所推動的是一個「軟硬解耦、統(tǒng)一抽象」的未來,它將系統(tǒng)架構(gòu)拉向一個更加靈活、模塊化、資源池化的方向。而這正是下一代數(shù)據(jù)中心、云計算架構(gòu)的剛需。
不過有人會問了,CXL到底是不是重復(fù)造輪子?
比如,NVMe已經(jīng)是一個非常成熟且高速的存儲接口標(biāo)準(zhǔn)。為什么還需要CXL、或者CXL能否取代NVMe?
答案是否定的。NVMe主要解決的是低延遲高并發(fā)的存儲訪問問題,而CXL則是要解決跨節(jié)點算力協(xié)同與內(nèi)存資源共享問題。兩者在物理接口層(都是基于PCIe)可能相似,但在協(xié)議、架構(gòu)和目標(biāo)場景上則完全不同。
NVMe強調(diào)“更快地用SSD”,而CXL強調(diào)“更聰明地用內(nèi)存”。在未來的數(shù)據(jù)中心中,NVMe繼續(xù)擔(dān)任高速塊存儲的角色,而CXL將成為跨計算節(jié)點的“記憶網(wǎng)絡(luò)”。所以兩者并非你死我活,而是強強聯(lián)合。
新機會,到底在哪里?
回到這篇文章的主題,那就是在這波CXL的浪潮中,大廠們看到了怎樣的機會?
例如,三星已大大加快了基于CXL解決方案的研發(fā)進程。在2021年,他們推出了全球首款支持CXL的內(nèi)存原型,2022年推出了第二代并支持512GB內(nèi)存模塊,并在后續(xù)幾屆技術(shù)大會上持續(xù)披露新產(chǎn)品。
比如,CMM-D(CXL Memory Module – DRAM)本質(zhì)上是基于CXL標(biāo)準(zhǔn)封裝的DDR內(nèi)存擴展模塊。CMM-D通過CXL接口連接到CPU,可以直接作為系統(tǒng)內(nèi)存使用,具有熱插拔、遠程訪問、跨節(jié)點共享等特性。相當(dāng)于在不改變主CPU內(nèi)存通道數(shù)量的前提下,實現(xiàn)內(nèi)存容量和帶寬的擴展。比如,這些模塊可以直接插入支持CXL的服務(wù)器中,即時擴展系統(tǒng)內(nèi)存,滿足AI/ML、內(nèi)存數(shù)據(jù)庫等應(yīng)用對大容量內(nèi)存的需求。
此外,CMM-D原生支持CXL特有的內(nèi)存一致性,即CPU內(nèi)存和CXL設(shè)備內(nèi)存之間可以無縫共享相同的數(shù)據(jù)。從技術(shù)上看,這是因為CXL主機有一個作為管理器的主代理,并使用CXL.cache和CXL.mem來一致地訪問所連接的內(nèi)存,并保證主機和CXL設(shè)備能看到內(nèi)存位置的相同副本。
基于CXL的內(nèi)存池擴展
從各自為戰(zhàn),到聯(lián)合作戰(zhàn)
現(xiàn)代技術(shù)早就不是各個廠商單打獨斗就能闖出一片天的時候了,一個技術(shù)的成熟和破圈,離不開整個產(chǎn)業(yè)鏈的協(xié)同努力。在CXL領(lǐng)域,各家CPU廠商、存儲廠商、操作系統(tǒng)廠商、服務(wù)器OEM等廠商都在一起合作,構(gòu)建數(shù)據(jù)中心的CXL生態(tài)。
比如,在CPU方面,英特爾、AMD這些數(shù)據(jù)中心CPU的巨頭廠商,都在擴展自家的服務(wù)器CPU平臺以無縫兼容CXL內(nèi)存產(chǎn)品,并實現(xiàn)最優(yōu)性能。在擴展控制器方面,瀾起科技將自家的CXL內(nèi)存擴展控制器 (MXC) 與三星的CXL內(nèi)存模塊配合,為服務(wù)器提供高效的內(nèi)存擴展能力。在操作系統(tǒng)和軟件層面,紅帽等OS大廠也在開發(fā)和優(yōu)化支持CXL的軟件棧,包括在Linux內(nèi)核中添加對CXL設(shè)備發(fā)現(xiàn)、內(nèi)存管理、錯誤處理等功能的支持,以及開發(fā)相應(yīng)的管理工具和API,使應(yīng)用程序能夠充分利用CXL帶來的內(nèi)存擴展和共享能力。
未來已來?
對協(xié)議的定義,其實就是對話語權(quán)的定義,但這絕對不是一蹴而就的過程。三星在CXL領(lǐng)域的投入就是一個很好的例子,不管是標(biāo)準(zhǔn)制定、產(chǎn)品研發(fā)、還是生態(tài)建設(shè),都需要長期大量持續(xù)的投入。當(dāng)然也只有這樣,才能保證在新技術(shù)的浪潮中占領(lǐng)先機。
看到機會、解決困難的問題,并長期堅持做下去,這或許是硬科技最吸引人的地方。
(注:本文不代表老石任職單位的觀點。)