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