CXL是什么?它是如何工作的?
CXL(Compute Express Link)可以提高數(shù)據(jù)中心內(nèi)存的性能、可擴(kuò)展性和靈活性。MemVerge 的 Steve Scargall 解釋了 CXL 是什么、它是如何工作的,以及為什么它是各種應(yīng)用程序的游戲規(guī)則改變者,例如 AI/ML、HPC、數(shù)據(jù)庫(kù)和分析。他還強(qiáng)調(diào)了采用 CXL 標(biāo)準(zhǔn)化的云計(jì)算和數(shù)據(jù)中心基礎(chǔ)設(shè)施的一些行業(yè)趨勢(shì)。
本文引用地址:http://m.butianyuan.cn/article/202306/447925.htmCXL 是一種新興的開(kāi)放式行業(yè)標(biāo)準(zhǔn)互連,徹底改變了以數(shù)據(jù)為中心的計(jì)算。憑借其在 CPU 和設(shè)備(例如加速器、內(nèi)存擴(kuò)展和持久內(nèi)存設(shè)備)之間的高帶寬和低延遲緩存一致性連接,CXL 有可能重塑數(shù)據(jù)中心內(nèi)存的性能、可擴(kuò)展性和靈活性。通過(guò)解決 AI/ML 應(yīng)用程序面臨的常見(jiàn)內(nèi)存挑戰(zhàn)并啟用新的高性能內(nèi)存架構(gòu),CXL 有望成為以數(shù)據(jù)為中心的計(jì)算的下一代互連。
什么是 CXL?
CXL 是一種行業(yè)采用的開(kāi)放標(biāo)準(zhǔn),為處理器、內(nèi)存擴(kuò)展和加速器提供高速緩存一致性互連。它基于 PCI Express (PCIe) 規(guī)范物理和電氣接口,但為 AI/ML 應(yīng)用程序提供了額外的功能和優(yōu)勢(shì)。CXL 可實(shí)現(xiàn) CPU 內(nèi)存空間與附加設(shè)備(例如加速器、GPU 或內(nèi)存設(shè)備)上的內(nèi)存之間的內(nèi)存一致性。這意味著 CPU 和設(shè)備可以共享相同的內(nèi)存視圖并訪問(wèn)它,而無(wú)需任何軟件干預(yù)或同步。CXL 還通過(guò)允許 CPU 以低延遲和高帶寬訪問(wèn)連接設(shè)備上更大的內(nèi)存池來(lái)擴(kuò)展內(nèi)存。這可以增加 AI/ML 應(yīng)用程序的內(nèi)存容量和性能。
規(guī)范的三個(gè)主要版本描述了 CXL 標(biāo)準(zhǔn)。未來(lái)計(jì)劃更多主要版本?,F(xiàn)有主要版本的更新也將根據(jù)需要公布。每個(gè)主要版本都為以前的版本添加了新功能。
CXL 1.0 :CXL 的第一個(gè)版本,于 2019 年 3 月發(fā)布,基于 PCIe 5.0。它允許主機(jī) CPU 使用緩存一致性協(xié)議 (CXL.cache) 訪問(wèn)加速器設(shè)備上的共享內(nèi)存,并使用內(nèi)存語(yǔ)義 (CXL.mem) 啟用內(nèi)存擴(kuò)展。
CXL 2.0 :CXL 的第二個(gè)版本,于 2020 年 11 月發(fā)布,基于 PCIe 5.0。它支持 CXL 交換,將多個(gè) CXL 設(shè)備連接到一個(gè)主機(jī)處理器或?qū)⒚總€(gè)設(shè)備連接到多個(gè)主機(jī)處理器。它還實(shí)現(xiàn)了設(shè)備完整性和數(shù)據(jù)加密功能。
CXL 3.0 :CXL 的第三個(gè)版本,于 2022 年 8 月發(fā)布,基于 PCIe 6.0。它支持比 CXL 2.0 更高的帶寬和更低的延遲,并增加了設(shè)備熱插拔、電源管理和錯(cuò)誤處理等新功能。
圖 1 顯示了每個(gè)主要 CXL 版本的功能比較。
圖 1:CXL 功能比較
CXL 規(guī)范描述了三種允許設(shè)備相互通信的協(xié)議。
http://CXL.io:PCIe 5.0 協(xié)議的增強(qiáng)版本,可用于初始化、鏈接、設(shè)備發(fā)現(xiàn)、枚舉和寄存器訪問(wèn)。它為 I/O 設(shè)備提供非一致性加載/存儲(chǔ)接口。
CXL.cache :一種緩存一致性協(xié)議,它定義了主機(jī)和設(shè)備之間的交互,允許連接的 CXL 設(shè)備使用請(qǐng)求和響應(yīng)方法以極低的延遲有效地緩存主機(jī)內(nèi)存。
CXL.mem :一種內(nèi)存協(xié)議,它使用加載和存儲(chǔ)命令為主機(jī)處理器提供對(duì)連接設(shè)備內(nèi)存的訪問(wèn),其中主機(jī) CPU 充當(dāng)主設(shè)備,CXL 設(shè)備充當(dāng)從屬設(shè)備。它可以支持易失性和持久性?xún)?nèi)存架構(gòu)。
至少,所有 CXL 設(shè)備都必須使用 http://CXL.io,但可以選擇支持 CXL.cache 或 CXL.mem,或同時(shí)支持兩者。
這些組合派生出三種設(shè)備類(lèi)型:
類(lèi)型 1 :沒(méi)有本地內(nèi)存的專(zhuān)用加速器(例如智能 NIC)。設(shè)備依賴(lài)于使用 http://CXL.io 和 CXL.cache 協(xié)議對(duì)主機(jī) CPU 內(nèi)存進(jìn)行一致訪問(wèn)。它們可以擴(kuò)展 PCIe 協(xié)議功能(例如原子操作),并且可能需要實(shí)現(xiàn)自定義排序模型。
類(lèi)型 2 :具有高性能本地內(nèi)存(GDDR 或 HBM)的通用加速器(GPU、ASIC 或 FPGA)。要訪問(wèn)主機(jī) CPU 和設(shè)備內(nèi)存,設(shè)備可以使用 http://CXL.io、CXL.cache 和 CXL.mem 協(xié)議。它們可以支持連貫和非連貫事務(wù)。
類(lèi)型 3 :沒(méi)有本地緩存的內(nèi)存擴(kuò)展板和持久內(nèi)存設(shè)備。設(shè)備可以使用 http://CXL.io 和 CXL.mem 協(xié)議通過(guò)加載和存儲(chǔ)命令為主機(jī) CPU 提供對(duì)內(nèi)存的訪問(wèn)。它們可以支持易失性和持久性?xún)?nèi)存架構(gòu)。
基礎(chǔ)設(shè)施用例
CXL 是云和本地?cái)?shù)據(jù)中心基礎(chǔ)設(shè)施的游戲規(guī)則改變者,預(yù)計(jì)將很快得到廣泛采用和標(biāo)準(zhǔn)化,包括:
1. 云計(jì)算
CXL 可以使云服務(wù)提供商通過(guò)利用支持 CXL 的設(shè)備(例如加速器、內(nèi)存擴(kuò)展設(shè)備和持久性?xún)?nèi)存設(shè)備)為其客戶(hù)提供更快、更高效的服務(wù)。云服務(wù)提供商每年在未使用或未充分利用的主內(nèi)存(稱(chēng)為「擱淺內(nèi)存」)上花費(fèi)數(shù)十億美元。應(yīng)用程序可以更優(yōu)化地使用集群中的計(jì)算節(jié)點(diǎn)按需訪問(wèn)的 CXL 設(shè)備池,從而優(yōu)化數(shù)據(jù)中心資源。
2. 數(shù)據(jù)中心存儲(chǔ)
與云環(huán)境類(lèi)似,雖然規(guī)模小得多,但 CXL 設(shè)備可以使數(shù)據(jù)中心運(yùn)營(yíng)商構(gòu)建可持續(xù)發(fā)展的環(huán)境,并通過(guò)使用支持 CXL 的設(shè)備顯著降低其基礎(chǔ)設(shè)施成本和使用率。CXL 可以通過(guò)啟用對(duì)內(nèi)存駐留數(shù)據(jù)的低延遲和高帶寬訪問(wèn)來(lái)提高塊存儲(chǔ)性能和可靠性。
3. 邊緣計(jì)算
CXL 可以使邊緣計(jì)算平臺(tái)通過(guò)使用支持 CXL 的設(shè)備(例如加速器、智能 NIC、內(nèi)存擴(kuò)展設(shè)備和持久內(nèi)存設(shè)備)來(lái)處理不斷增加的數(shù)據(jù)量和復(fù)雜性。在將數(shù)據(jù)發(fā)送到主數(shù)據(jù)中心之前在邊緣處理數(shù)據(jù)可以減少流量并提高邊緣計(jì)算性能、效率和安全性。
4. 網(wǎng)絡(luò)
CXL 可以使網(wǎng)絡(luò)平臺(tái)通過(guò)使用支持 CXL 的網(wǎng)絡(luò)設(shè)備(例如智能 NIC、FPGA 和 ASIC)來(lái)處理不斷增加的網(wǎng)絡(luò)流量和復(fù)雜性。CXL 可以通過(guò)實(shí)現(xiàn)對(duì)設(shè)備內(nèi)存的一致和非一致訪問(wèn)以及支持原子操作和自定義排序模型來(lái)提高網(wǎng)絡(luò)性能、可擴(kuò)展性和功能。
應(yīng)用用例
應(yīng)用程序?qū)闹С?CXL 的基礎(chǔ)架構(gòu)中受益匪淺。一些主要的興趣領(lǐng)域包括:
1.AI/ML 加速
CXL 可以為 GPU、ASIC 或 FPGA 等 AI/ML 加速器實(shí)現(xiàn)更快、更高效的 CPU 到設(shè)備和 CPU 到內(nèi)存的連接。CXL 可以支持異構(gòu)設(shè)備之間的一致性和非一致性事務(wù)、內(nèi)存擴(kuò)展和資源共享。允許應(yīng)用程序處理更大的數(shù)據(jù)集,同時(shí)減少主機(jī)之間傳輸?shù)臄?shù)據(jù)量,從而縮短獲得結(jié)果的時(shí)間。
2. 大規(guī)模內(nèi)存、分析和圖形數(shù)據(jù)庫(kù)
CXL 允許數(shù)據(jù)庫(kù)訪問(wèn)無(wú)限的低延遲和高帶寬內(nèi)存,從而使系統(tǒng)能夠在更大的數(shù)據(jù)池上工作。
3. 高性能計(jì)算
CXL 可以通過(guò)利用支持 CXL 的加速器和內(nèi)存池來(lái)提高高性能計(jì)算的性能、可擴(kuò)展性和靈活性。CXL 3.0 引入了共享內(nèi)存功能,允許許多計(jì)算節(jié)點(diǎn)就地訪問(wèn)內(nèi)存駐留數(shù)據(jù),而無(wú)需在運(yùn)行前將其復(fù)制到本地,然后再將結(jié)果復(fù)制回來(lái)。
使用 CXL 的行業(yè)標(biāo)準(zhǔn)互連加速以數(shù)據(jù)為中心的計(jì)算
CXL 是一種新興的開(kāi)放式行業(yè)標(biāo)準(zhǔn)互連,可在 CPU 和設(shè)備(如加速器、內(nèi)存擴(kuò)展和持久內(nèi)存設(shè)備)之間提供高帶寬和低延遲緩存一致性連接。CXL 可以提高數(shù)據(jù)中心資源的性能、可擴(kuò)展性和靈活性。CXL 可以幫助解決 AI/ML 應(yīng)用程序面臨的一些常見(jiàn)內(nèi)存挑戰(zhàn),例如內(nèi)存不足錯(cuò)誤、溢出到磁盤(pán)以及數(shù)據(jù)/計(jì)算偏差。
CXL 還可以支持需要大規(guī)模和高性能內(nèi)存架構(gòu)的新應(yīng)用程序和用例,例如內(nèi)存數(shù)據(jù)庫(kù)、實(shí)時(shí)分析和高性能計(jì)算。由英特爾、AMD、Arm、Astera Labs、三星、美光、X-Conn 等眾多行業(yè)領(lǐng)導(dǎo)者和創(chuàng)新者組成的不斷壯大的生態(tài)系統(tǒng)支持 CXL。作為以數(shù)據(jù)為中心的計(jì)算的下一代互連,CXL 有望在不久的將來(lái)得到廣泛接受和標(biāo)準(zhǔn)化。
評(píng)論