Compute Express Link(CXL)作為一種先進的互連技術,在當今高性能計算領域引起了廣泛關注,其高帶寬、低延遲的特性使其成為連接處理器、加速器、存儲等關鍵組件的理想選擇。本文將深入探討CXL技術,從其起源、特點,到應用領域和與其他技術的比較,全面了解CXL對現代數據中心生態系統的重要性。
什么是CXL?
CXL的起源可追溯到數據中心和高性能計算領域對更快速、更高效互連技術的需求。過去,HDD磁盤和內存之間差距很多,但隨著SSD、NVMe 設備的出現逐漸彌補了中間的鴻溝。然而即使采用了NVMe設備,其與內存的差異仍然有10倍以上。傳統數據庫對于這一差異已經不再敏感,原因是因為系統的瓶頸已經來到了CPU側,因此這幾年所有人都在關注列存、向量化等技術來降低內存使用。對于許多應用而言,盡管NVMe的延遲已經足夠滿足要求,但是吞吐依然是很明顯的瓶頸,因此并不能完全替代內存,這其中模型訓練、向量數據都是非常典型的場景。
CXL的出現很好地解決了這個問題,通過將設備掛載到PCIe總線上,CXL實現了設備到CPU之間的互聯,實現了存儲計算分離。CXL 還允許 CPU 以低延遲和高帶寬訪問連接設備上更大的內存池,從而擴展內存。這可以增加 AI/ML 應用程序的內存容量和性能。
CXL利用靈活的處理器端口,可以在 PCIe 或 CXL 模式下運行。這兩種設備類別均可在 PCIe5.0 中實現 32 GT/s 的數據速率,在 PCIe6.0 中實現高達 64 GT/s 的數據速率,為 AI/ML 應用提供了額外的功能和優勢。
為什么需要 CXL?
隨著可用數據量的增長,數據中心必須適應更復雜、要求更高的工作負載。已有數十年歷史的服務器架構正在發生變化,使高性能計算系統能夠處理人工智能/機器學習應用程序產生的大量數據。
這就是 CXL 的用武之地。CXL提供有效的資源共享/池來提高性能,最大限度地減少對復雜軟件的需求,并降低系統總成本。
CXL 的好處
# CXL 為企業和數據中心運營商帶來多種優勢,包括:
實現了計算和存儲資源的分離,不再局限于CPU,GPU、FPGA都可以實現CXL協議共享內存資源并實現跟CPU的數據交互。
提供了比內存插槽所能容納的更多的容量和帶寬。
通過 CXL 連接設備,計算資源的擴展會變的更加容易。
內存變得更加彈性,按需分配、動態遷移都將變成可能。
允許 CPU 結合 DRAM 內存使用額外內存 。
CXL vs. PCIe vs. NVLink
互連技術在計算領域的進步中發揮著關鍵作用,而CXL、PCIe和NVLink則代表了當前領先的互連標準。以下是它們之間的對比:
# 帶寬和速度
CXL:CXL在帶寬方面表現卓越,CXL2.0支持32 GT/s的數據傳輸速率,CXL3.0支持64 GT/s的數據傳輸速率。這使得CXL能夠更有效地滿足處理大規模數據和高性能計算工作負載的需求。
PCIe:PCIe 4.0的速度為16 GT/s,PCIe 5.0為32 GT/s,PCIe 6.0提供了64 GT/s的速度。PCIe一直是計算系統中最廣泛使用的互連技術之一。
NVLink:NVLink同樣提供高帶寬,適用于連接NVIDIA GPU。其速度通常與PCIe 5.0相當,但在GPU之間的通信中具有更低的延遲。
# 內存共享
CXL:CXL引入了內存共享的概念,使得不同設備能夠直接訪問共享的內存。這大大提高了內存訪問的效率,尤其在大規模數據處理的場景中。
PCIe:PCIe通常需要通過額外的數據傳輸步驟實現設備之間的內存共享,這可能引入一些額外的延遲。
NVLink:NVLink也支持GPU之間的內存共享,優化了大規模并行計算的性能。
# 多用途性
CXL:CXL被設計成一種通用的互連技術,可連接處理器、加速器、存儲等多種設備。其多用途性使得CXL在構建靈活且高性能的系統時更具優勢。
PCIe:PCIe同樣是一種通用的互連技術,廣泛應用于連接圖形卡、存儲設備、網絡適配器等。
NVLink:NVLink主要用于連接NVIDIA GPU,優化了GPU之間的通信,適用于圖形處理、深度學習等對GPU性能要求較高的領域。
# 生態系統支持
CXL:CXL的生態系統正在迅速發展,越來越多的廠商開始支持CXL,并推出相應的硬件和軟件產品。
PCIe:PCIe是當前計算領域中最成熟和廣泛應用的互連技術之一,具有龐大的生態系統。
NVLink:NVLink主要由NVIDIA支持,因此在生態系統上可能相對受限。
# 應用領域
CXL:CXL廣泛適用于數據中心、人工智能、科學計算等多個領域,具有靈活性和高性能的特點。
PCIe:PCIe在各種應用場景中都有廣泛應用,從個人計算機到數據中心。
NVLink:NVLink主要用于連接NVIDIA GPU,在圖形處理和深度學習等領域表現出色。
CXL、PCIe和NVLink各自具有獨特的特點和優勢,選擇取決于特定應用的需求和硬件架構的要求。CXL以其高帶寬、內存共享和多用途性等方面的優勢,在未來有望在高性能計算領域取得更大的影響。PCIe作為成熟的互連標準在各個層面都有強大的生態系統。NVLink則在與NVIDIA GPU的協同工作方面表現突出,適用于對GPU性能要求較高的領域。
CXL協議和標準
CXL 聯盟于 2019 年第三季度成立,是一個開放的行業標準組織,旨在創建技術規范,促進數據中心加速器和其他高速改進的開放生態系統,同時為新的使用模式實現突破性的性能。目前 CXL 已經發布了三個版本。
CXL 1.0 :CXL 的第一個版本于 2019 年 3 月發布,基于 PCIe 5.0。它允許主機 CPU 通過緩存一致性協議 (CXL.cache) 訪問加速器設備上的共享內存,并通過內存語義 (CXL.mem) 實現內存擴展。
CXL 2.0 :CXL的第二個版本于2020年11月發布,基于PCIe 5.0。它支持 CXL 交換,將多個 CXL 設備連接到一個主機處理器或將每個設備匯集到多個主機處理器。它還實現了設備完整性和數據加密功能。
CXL 3.0 :CXL的第三個版本于2022年8月發布,基于PCIe 6.0。它支持比 CXL 2.0 更高的帶寬和更低的延遲,并增加了設備熱插拔、電源管理和錯誤處理等新功能。
CXL 規范描述了允許設備相互通信的三種協議。
CXL.io:PCIe 5.0 協議的增強版本,可用于初始化、鏈接、設備發現、枚舉和寄存器訪問。它為 I/O 設備提供非一致的加載/存儲接口。
CXL.cache :一種緩存一致性協議,定義主機和設備之間的交互,允許連接的 CXL 設備使用請求和響應方法以極低的延遲有效地緩存主機內存。
CXL.mem :一種內存協議,主機處理器可以使用加載和存儲命令訪問所連接設備的內存,主機 CPU 充當主設備,CXL 設備充當從設備。它可以支持易失性和持久性內存架構。
所有 CXL 設備都必須使用 CXL.io,但可以選擇支持 CXL.cache 或 CXL.mem,或兩者都支持。這些組合派生出三種設備類型:
類型 1 :沒有本地內存的專用加速器(例如智能網卡)。設備依賴于使用 CXL.io 和 CXL.cache 協議對主機 CPU 內存的一致訪問。它們可以擴展 PCIe 協議功能(例如原子操作),并且可能需要實現自定義排序模型。
類型 2 :具有高性能本地內存(GDDR 或 HBM)的通用加速器(GPU、ASIC 或 FPGA)。要訪問主機 CPU 和設備內存,設備可以使用 CXL.io、CXL.cache 和 CXL.mem 協議。它們可以支持一致和非一致事務。
類型 3 :內存擴展板和沒有本地緩存的持久內存設備。設備可以使用 CXL.io 和 CXL.mem 協議,通過加載和存儲命令為主機 CPU 提供對內存的訪問。它們可以支持易失性和持久性內存架構。
由于CXL與PCIe緊密相關,新版本的CXL依賴于新版本的PCIe,接下來我們仔細研究一下 CXL 2.0 和 CXL 3.0 的區別。
什么是 CXL 2.0
如前所述,CXL 建立在 PCIe 物理基礎之上,是一種連接標準,旨在管理比 PCIe 多得多的功能。除了充當主機和設備之間的數據傳輸之外,CXL 還支持三個分支:IO、Cache 和 Memory。
這三者構成了CXL 1.0和1.1標準中定義的連接主機和設備的新方法的核心。更新后的CXL 2.0標準對其進行了改進。
CXL 2.0 沒有帶寬或延遲升級,因為它仍然基于相同的 PCIe 5.0 物理標準,但它確實包含了某些急需的 PCIe 特定功能。
相同的 CXL.io、CXL.cache 和 CXL.mem 內在特性(處理如何處理數據以及在什么上下文中處理數據)是 CXL 2.0 的核心,同時還引入了交換功能、更多的加密以及對永久內存的支持。
CXL 2.0 特性和優點
>內存池
CXL 2.0 支持交換機啟用內存池。主機可以通過 CXL 2.0 交換機訪問池中的一臺或多臺設備。雖然主機必須支持 CXL 2.0 才能利用此功能,但可以在內存設備中使用支持 CXL 1.0、1.1 和 2.0 的硬件的組合。
在 1.0/1.1 版本下,設備只能充當單個邏輯設備,一次只能由一臺主機訪問。而一個2.0級別的設備可以被劃分為無數個邏輯設備,從而使多達16個主機能夠同時訪問內存的各個部分。
例如,為了將其工作負載的內存需求與內存池中的可用容量精確匹配,主機1 (H1)可以使用設備1 (D1)中一半的內存和設備2 (D2)中四分之一的內存。
最多16臺主機可以使用D1和D2設備的剩余空間。只有一臺主機可以使用設備D3和D4,分別兼容CXL 1.0和1.1。
>CXL 2.0交換
了解 PCIe 交換機的用戶應該知道,它們連接到具有一定數量通道(例如8個或16個通道)的主機處理器,然后支持下游大量附加通道以增加支持的設備數量。
例如,典型的 PCIe 交換機有 16 個用于 CPU 連接的通道,但下游有 48 個 PCIe 通道以支持六個鏈接的 GPU(每個通道為 x8)。
盡管存在上游瓶頸,但對于依賴 GPU 到 GPU 傳輸的工作負載來說,交換機是最佳選擇,尤其是在 CPU 通道受限的系統上。CXL 2.0 現在支持交換標準。
>CXL 2.0 持久內存
CXL 2.0持久內存幾乎與 DRAM 一樣快,同時可以像 NAND 一樣存儲數據。
長期以來,人們一直不清楚這種存儲器是通過 DRAM 接口作為慢速大容量存儲器運行,還是通過類存儲接口作為緊湊、快速存儲運行。
原始 CXL 標準的 CXL.memory 標準并不直接提供持久內存,除非已經連接了設備。但這一次,CXL 2.0 提供了額外的 PMEM 支持。
CXL 2.0 安全
CXL 鏈路的點對點安全性是最重要的功能改進。
CXL 2.0標準支持CXL控制器中的硬件加速進行任意對任意通信加密。
這是標準的一個可選組件,這意味著芯片提供商不必將其內置,如果已經內置了也可以選擇啟用或禁用它。
CXL 2.0規范
CXL 2.0 規范完全向后兼容 CXL 1.1 和 1.0,同時增加了對扇出交換的支持以連接到更多設備、內存池以提高內存利用效率、按需提供內存容量,以及對持久性內存的支持。
# CXL 2.0 規范的主要亮點
增加了交換功能,支持資源遷移、內存擴展和設備扇出。
提供對內存池的支持以增加內存并減少或消除過度配置內存的需要。
通過添加鏈路級完整性和數據加密 (CXL IDE),為通過 CXL 鏈路傳輸的數據提供機密性、完整性和重放保護。
什么是 CXL 3.0
處理器、存儲、網絡和其他加速器都可以通過 CXL 3.0 中的各種主機和加速器進行池化和動態尋址,從而進一步分解服務器的架構。這與 CXL 2.0 處理內存的方式類似。
此外,CXL 3.0 支持跨交換機或交換結構的組件/設備之間的直接通信。例如,兩個 GPU 可以在不使用主機 CPU、內存或網絡的情況下相互通信。
# CXL 3.0 規范的亮點
Fabric 功能
多頭和fabric連接設備
增強的fabric管理
可組合的分解基礎設施
更好的可擴展性和更高的資源利用率
增強的內存池
多級交換
新的增強一致性功能
改進了軟件功能
帶寬加倍至 64 GT
與 CXL 2.0 相比零延遲
完全向后兼容CXL 2.0、CXL 1.1和CXL 1.0
CXL 3.0的特點
> CXL 3.0 開關和扇出功能
新的 CXL 交換和扇出功能是 CXL 3.0 的主要特性之一。CXL 2.0 中添加了交換功能,使眾多主機和設備能夠位于單個 CXL 交換機級別上。
得益于 CXL 3.0,CXL 拓撲現在可以支持多交換層。可以添加更多設備,每個 EDSFF 機架除了連接主機的架頂式 CXL 交換機外,還可以有一個 CXL 交換機。
>CXL 3.0 設備到設備通信
CXL 還將 P2P 設備添加到設備通信中。P2P 允許設備直接通信,無需通過主機進行通信。
>CXL 3.0 一致性內存共享
CXL 3.0 支持一致內存共享。這很重要,CXL 2.0 只允許在各種主機和加速器之間劃分內存設備。CXL 3.0 允許一致性域中的所有主機共享內存,內存得到了更有效的利用。
>CXL 3.0:每個根端口支持多個設備
CXL 3.0 中消除了先前對單個 CXL 根端口下行連接的 Type-1/Type-2 設備數量的限制。CXL 2.0 只允許這些處理設備中的一個出現在根端口的下游。CXL 根端口現在可以實現 Type-1/2/3 設備的完整混合搭配設置。
這尤其需要增加密度(每個主機有更多加速器)以及通過將多個加速器連接到單個交換機來使用新的點對點傳輸功能。
>CXL 3.0:Fabric
CXL 3.0允許非樹形拓撲,例如環形、網狀和其他結構,即使只有兩層交換機也是如此。各個節點的類型沒有限制,可以是主機,也可以是設備。
CXL 3.0 甚至可以處理spine/leaf設計,其中流量通過頂部spine節點進行路由,將流量進一步路由回較低級別(leaf)節點,而這些節點又包含實際的主機/設備。
>CXL 3.0:全局結構附加內存(Global Fabric Attached Memory)
全局結構附加內存 (GFAM)支持使用新的內存、拓撲和結構功能,通過進一步分解特定主機的內存,推進了 CXL 的Type-3概念。
從這個意義上說,GFAM 設備本質上是主機和其他設備可以根據需要訪問的共享內存池。此外,易失性和非易失性存儲器(例如 DRAM 和閃存)可以組合在 GFAM 器件中。
CXL 3.0 如何工作?
CXL 3.0 與早期版本相比提供了多項升級。最重要的是引入了一種稱為混合模式的新模式,它結合了批處理和實時方法的最佳元素。CXL 3.0 中包含的其他改進包括對更大數據集的支持、增強的性能等等。
>CXL 3.0的優勢
CXL 3.0 具有多項優勢,跨對等點的直接內存訪問是最有趣的特性之一(P2P DMA)。借助此功能,許多主機可以共享相同的內存空間和資源。因此,模型靈活性和可擴展性的使用以及性能也可以得到改善。
CXL 3.0 的另一個優勢是支持更快的速度和更高的電源效率,從而更好地利用資源并提高性能。
此外,CXL 3.0 使設備能夠更快地相互交互,提高系統吞吐量。
CXL 3.1發布
近日,CXL最新發布了3.1版,提供了更快、更安全的計算環境和更強大的技術基礎,可將數據中心轉變為巨型服務器。
新規范將支持 DDR6 內存,該內存仍在開發中。DDR 標準制定組織 JEDEC 尚未廣泛討論 DDR6。
CXL 3.1 協議可以打開更多的點對點通信,將內存和存儲分解到單獨的機箱中。CXL 3.1 規范提供了一個支持新型內存的開放標準,可以更有效地將數據重新路由到內存和加速器。一項重要的改進是將結構上的內存資源匯集到一個全局地址下,該功能稱為全局集成內存,對于在內存和其它資源之間建立更快的連接非常重要。加速器還將能夠直接與內存資源通信,基于端口的路由的新功能有助于更快地訪問內存資源。
CXL 3.1 還提供了在受保護環境中執行數據的指令,引入這項技術是為了支持機密計算。新規范定義了一種安全協議,該協議可保證數據在內存、處理器和存儲之間移動時擴展安全環境。該協議將檢測需要對連接進行身份驗證以打開硬件保險庫,以訪問代碼或信息的環境。這些信息可能位于處理器、內存或存儲上。
總 結
總的來說,CXL作為一項創新性的互連技術,為未來計算的發展描繪了令人興奮的前景。其高性能、高帶寬、內存共享和多用途性等特征,使其在處理大規模數據、高性能計算和人工智能等領域具有獨特的優勢。
隨著CXL的逐步成熟和生態系統的不斷擴大,我們可以期待看到更多的廠商加入支持CXL的行列,推動其在不同行業和應用場景中的廣泛應用。未來,CXL的發展將不僅僅局限于數據中心,還可以擴展到邊緣計算、量子計算等領域,并帶來更大的創新和突破。
審核編輯:劉清
-
處理器
+關注
關注
68文章
19409瀏覽量
231207 -
加速器
+關注
關注
2文章
807瀏覽量
38093 -
SSD
+關注
關注
21文章
2889瀏覽量
117870
原文標題:一文了解高速互聯技術CXL
文章出處:【微信號:SDNLAB,微信公眾號:SDNLAB】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論