二十年前,英特爾開創了PCIe(PCI Express)技術,但存儲成本不斷增加、數據爆炸式增長、計算和帶寬開始失衡,PCIe逐漸乏力。2019年,英特爾又提出一種開放性互聯協議——Compute Express Link(CXL),能夠讓CPU與GPU、FPGA或其他加速器之間實現高速高效的互聯,從而滿足高性能異構計算的要求。
在異構計算大行其道的當下,CXL標準被提出之后,迅速成為服務器市場熱捧的發展趨勢之一。
為什么需要新型互連?
數據的爆炸式增長促使計算行業開始突破性的架構轉變,從根本上改變數據中心的性能、效率和成本。為了繼續提高性能,服務器正越來越多地轉向異構計算架構。在特定任務中,專用ASIC可以使用更少的晶體管提供超過10倍的性能。
服務器內的芯片連接通常是用 PCIe 完成的,該標準最大的缺點是缺乏高速緩存一致性和內存一致性。從性能和軟件的角度來看,使用 PCIe,不同設備之間通信的開銷相對較高。此外,連接多臺服務器通常意味著使用以太網或InfiniBand,這些通信方法存在著相同的問題,具有高延遲和低帶寬。
2010 年代中期,CCIX協議成為了潛在的行業標準,得到了AMD、Xilinx、華為、Arm 和 Ampere Computing 的支持,但它缺乏足夠的行業支持,并未發展起來。
2018 年,IBM 和 Nvidia 帶來了解決PCIe與NVLink缺陷的解決方案,應用在當時世界上最快的超級計算機Summit上。AMD在Frontier超級計算機中也有類似的專有解決方案,名為Infinity Fabric。但可以預想到,沒有任何的行業生態系統可以圍繞這些專有協議而發展。
之后,英特爾制定了自己的標準,并于 2019 年將其專有規范作為CXL1.0 捐贈給了新成立的 CXL 聯盟。該標準得到了半導體行業大多數買家的支持。
基于業界大多數參與者的支持,CXL 使向異構計算的過渡成為可能。
CXL 簡介:什么是 Compute Express Link?
CXL是一種開放式行業標準互連,可在主機處理器與加速器、內存緩沖區和智能 I/O 設備等設備之間提供高帶寬、低延遲連接,從而滿足高性能異構計算的要求,并且其維護CPU內存空間和連接設備內存之間的一致性。CXL優勢主要體現在極高兼容性和內存一致性兩方面上。
CXL 聯盟已經確定了將采用新互連的三類主要設備:
#
類型 1 設備
智能網卡等加速器通常缺少本地內存。通過 CXL,這些設備可以與主機處理器的 DDR 內存進行通信。
#
類型 2 設備
GPU、ASIC 和 FPGA 都配備了 DDR 或 HBM 內存,并且可以使用 CXL 使主機處理器的內存在本地可供加速器使用,并使加速器的內存在本地可供 CPU 使用。它們還位于同一個緩存一致域中,有助于提升異構工作負載。
#
類型 3 設備
可以通過 CXL 連接內存設備,為主機處理器提供額外的帶寬和容量。內存的類型獨立于主機的主內存。
CXL 協議和標準
CXL 標準通過三種協議支持各種用例:CXL.io、CXL.cache 和 CXL.memory。
#
CXL.io
該協議在功能上等同于 PCIe 協議,利用了 PCIe 的廣泛行業采用和熟悉度。作為基礎通信協議,CXL.io 用途廣泛。
#
CXL.cache
該協議專為更具體的應用程序而設計,使加速器能夠有效地訪問和緩存主機內存以優化性能。
#
CXL.memory
該協議使主機(例如處理器)能夠使用load/store命令訪問設備附加的內存。
這三個協議共同促進了計算設備(例如 CPU 主機和 AI 加速器)之間內存資源的一致共享。從本質上講,通過共享內存實現通信簡化了編程。用于設備和主機互連的協議如下:
類型 1 設備:CXL.io + CXL.cache
類型 2 設備:CXL.io + CXL.cache + CXL.memory
類型 3 設備:CXL.io + CXL.memory
| 代表的CXL用例
CXL 的特點和優勢
前面我們主要討論的是異構計算,CXL 還可以有效解決內存墻和IO墻的瓶頸。
數據中心存在著嚴重的內存問題。自 2012 年以來,核心數量迅速增長,但每個核心的內存帶寬和容量并沒有相應增加,內存帶寬反而有所下降,并且這種趨勢還在持續。此外,直連 DRAM 和 SSD 之間在延遲和成本方面存在巨大差距。
最后還有一個致命的問題,昂貴的內存資源往往利用率很低。對于資本密集型行業來說,低利用率是一個重大問題,而數據中心業務是世界上資本密集程度最高的行業之一。
微軟表示,服務器總成本的 50% 來自 DRAM,成本巨大。盡管如此,還有高達25% 的 DRAM 內存被閑置了!簡單來說,微軟 Azure 的服務器總成本中有 12.5% 是閑置的。
想象一下,如果這個內存可以駐留在連接的網絡上并跨多個 CPU 和服務器動態分配給 VM。內存帶寬可以根據工作負載的需求增加或減少,這將大大提高利用率。
總的來說,CXL 的內存緩存一致性允許在 CPU 和加速器之間共享內存資源。CXL 還支持部署新的內存層,可以彌合主內存和 SSD 存儲之間的延遲差距。這些新的內存層將增加帶寬、容量、提高效率并降低TCO (總擁有成本)。此外,CXL 內存擴展功能可在當今服務器中的直連 DIMM 插槽之上實現額外的容量和帶寬。
通過 CXL 連接設備可以向 CPU 主機處理器添加更多內存。當與持久內存配對時,低延遲 CXL 鏈路允許 CPU 主機將此額外內存與 DRAM 內存結合使用。大容量工作負載的性能取決于大內存容量,例如 AI。而這些是大多數企業和數據中心運營商正在投資的工作負載類型,因此,CXL 的優勢顯而易見。
CXL與 PCIe:這兩者有什么關系?
CXL 建立在PCIe的物理和電氣接口之上,通過協議建立了一致性、簡化了軟件堆棧,并保持與現有標準的兼容性。具體來說,CXL 利用 PCIe 5 特性,允許備用協議使用物理 PCIe 層。
CXL引入了Flex Bus端口,可以靈活的根據鏈路層協商決定是采用PCIe協議還是CXL協議。CXL具有較高的兼容性,更容易被現有支持PCIe端口的處理器(絕大部分的通用CPU、GPU 和 FPGA)所接納,因此,英特爾將CXL視為在PCIe物理層之上運行的一種可選協議,并且英特爾還計劃在第六代PCIe標準上大力推進CXL的采用。
當支持 CXL 的加速器插入 x16 插槽時,設備以默認的PCIe 1.0傳輸速率(2.5 GT/s)與主機處理器端口協商。只有雙方都支持 CXL,CXL 交易協議才會被激活。否則,它們將作為 PCIe 設備運行。
CXL 1.1 和 2.0 使用 PCIe 5.0 物理層,允許通過 16 通道鏈路在每個方向上以 32 GT/s 或高達 64 GB/s 的速度傳輸數據。
CXL 3.0 使用 PCIe 6.0 物理層將數據傳輸擴展到 64 GT/s,支持通過 x16 鏈路進行高達 128 GB/s 的雙向通信。
CXL 2.0 和 3.0 有什么新功能?
作為一項新興技術,CXL發展非常迅速,過去幾年時間CXL已經發布了1.0/1.1、2.0、3.0三個不同的版本,并且有著非常清晰的技術發展路線圖。
CXL 3.0是2022年8月份發布的新標準,在許多方面都進行了較大的革新。CXL3.0建立在PCI-Express 6.0之上(CXL1.0/1.1和2.0版本建立在PCIe5.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) 中四分之一的內存,以將其工作負載的內存需求與內存池中的可用容量完美匹配。設備 D1 和 D2 中的剩余容量可由一臺或多臺其他主機使用,最多可達 16 臺。設備 D3 和 D4 分別啟用了 CXL 1.0 和 1.1,一次只能由一臺主機使用。
| 直連的CXL內存池
CXL 3.0 引入了點對點的直接內存訪問和對內存池的增強,其中多個主機可以在CXL 3.0設備上一致地共享內存空間。這些特性支持新的使用模型并提高數據中心架構的靈活性。
Switching
通過轉向 CXL 2.0 直連架構,數據中心可以獲得主內存擴展的性能優勢,以及池內存的效率和TCO 優勢。假設所有主機和設備都支持 CXL 2.0,那么“switching”將通過 CXL 內存池芯片中的交叉開關集成到內存設備中,這樣可以保持較低的延遲。通過低延遲直接連接,附加的內存設備可以使用 DDR DRAM 來擴展主機主內存。
CXL 3.0 引入了多級交換,允許單個交換機駐留在主機和設備之間,并允許多級交換機實現多層級交換,對網絡拓撲種類和復雜性有更好的支持。即便只有兩層交換機,CXL 3.0也能夠實現非樹狀拓撲,比如環形、網狀或者其他結構,對節點中的主機或設備沒有任何限制。
按需內存
與拼車類似,CXL 2.0 和 3.0 在“按需”的基礎上為主機分配內存,從而提供更高的內存利用率和效率。該架構提供了為工作負載配置服務器主內存的選項,能夠在需要時訪問內存池以處理高容量工作負載。
CXL 內存池模型可以支持向服務器分解和可組合性的轉變。在此范例中,可以按需組合離散的計算、內存和存儲單元,以有效地滿足任何工作負載的需求。
完整性和數據加密 (IDE)
分解或分離服務器架構的組件增加了攻擊面,這也是為什么 CXL 包含了安全設計方法。具體來說,所有三個 CXL 協議都通過完整性和數據加密 (IDE) 來保護,IDE 提供機密性、完整性和重放保護。IDE 在 CXL 主機和設備芯片中實例化的硬件級安全協議引擎中實現,以滿足 CXL 的高速數據速率要求,而不會增加額外的延遲。需要注意的是,CXL 芯片和系統本身需要防止篡改和網絡攻擊的保護措施。
信令擴展到 64 GT/s
CXL 3.0 對標準的數據速率進行了階梯式的提高。如前所述,CXL 1.1 和 2.0 在其物理層使用 PCIe 5.0 電氣:32 GT/s 的 NRZ 信號。使用 PAM4 信號將 CXL 3.0 數據速率提高到 64 GT/s。
CXL標準誕生并不久,據透露,支持 CXL 的英特爾、AMD 的新一代 CPU 正在部署中,預計將在今年下半年增加。這意味著 CXL 部署將在年底開始,并在 2024 年擴大規模。總的來說,CXL協議的出現解決了CPU和設備之間的數據傳輸問題,提高了應用程序的性能、降低延遲、提供更高的數據傳輸速率。隨著不斷發展和普及,CXL協議的將成為數據中心和高性能計算領域的一個重要趨勢。
審核編輯 :李倩
-
加速器
+關注
關注
2文章
799瀏覽量
37898 -
服務器
+關注
關注
12文章
9191瀏覽量
85507 -
架構
+關注
關注
1文章
514瀏覽量
25486
原文標題:CXL 深入探討:可組合服務器架構和異構計算的未來
文章出處:【微信號:SDNLAB,微信公眾號:SDNLAB】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論