今日,OpenCAPI和CXL將發佈聯合公告,表示這兩個集團將聯手,OpenCAPI標準和財團的資產將轉移到CXL財團。通過這種集成,CXL將成為主導的CPU到設備互連標準,因為幾乎所有主要制造商現在都支持該標準,而競爭標準已經退出競爭並被CXL吸收。
比CXL 面世還早的OpenCAPI 是緩存一致 CPU 互連的早期標準之一。該標準由 AMD、Xilinx 和 IBM 等公司提供支持,是 IBM 現有的相幹加速器處理器接口 (Coherent Accelerator Processor Interface :CAPI) 技術的擴展,向業界其他公司開放,並將其控制在行業聯盟之下。在過去六年中,OpenCAPI 的使用量不大,最引人註目的是在 IBM 的 POWER9 處理器系列中實現。與類似的 CPU 到設備互連標準一樣,OpenCAPI 本質上是現有高速 I/O 標準之上的應用程序擴展,添加緩存一致性和更快(更低延遲)訪問模式等內容,以便 CPU 和加速器可以更多地協同工作盡管它們的物理分解很緊密。
但是,作為解決這個問題的幾個競爭標準之一,OpenCAPI 從未在業界引起轟動。作為一個誕生於IBM 的標準,在推進過程中,IBM 在服務器領域的份額一直在下降,但IBM 扔起是其最大的用戶。甚至像 AMD 這樣的新興聯盟成員也最終跳過這項技術,例如利用他們自己的 Infinity Fabric 架構來實現 AMD 服務器 CPU/GPU 連接。這使得 OpenCAPI 沒有強大的擁護者——也沒有龐大的用戶群來推動事情的發展。
最終,為制造商和客戶的利益,更廣泛的行業希望在單一互連標準背後進行整合,這將互連戰爭推向高潮。隨著 Compute Express Link (CXL) 迅速成為明顯的贏傢,OpenCAPI 聯盟退出並被 CXL 吸收。
根據擬議交易的條款——等待必要方的批準——OpenCAPI 聯盟的資產和標準將轉移給 CXL 聯盟。這將包括來自 OpenCAPI 的所有相關技術,以及該組織鮮為人知的開放內存接口 (OMI) 標準,該標準允許通過 OpenCAPI 的物理總線將 DRAM 連接到系統。本質上,CXL 聯盟將吸收 OpenCAPI;雖然出於顯而易見的原因他們不會繼續開發,但轉移意味著 OpenCAPI 的任何有用技術都可以集成到 CXL 的未來版本中,從而加強整個生態系統。
隨著 OpenCAPI 兼並到 CXL,這使得英特爾支持的標準成為主導的互連標準——以及行業未來的事實標準。競爭的Gen-Z 標準在今年早些時候同樣被 CXL 吸收,而 CCIX 標準已被拋在後面,其主要支持者近年來加入 CXL 聯盟。因此,即使第一批支持 CXL 的 CPU 還沒有發貨,在這一點上,CXL 已經清除障礙,可以說,成為從加速器 I/O (CXL.io) 到內存擴展的所有方面的唯一剩餘服務器 CPU 互連標準通過 PCIe 總線。
在發佈新聞稿中,雙方表示,計算行業正在經歷重大變革。特定於應用程序的硬件加速正變得司空見慣,新的內存技術正在影響計算的經濟性。為滿足對開放架構的需求,以允許全行業參與,OpenCAPI 聯盟 (OCC) 成立於 2016 年。定義的架構允許任何微處理器連接到一致的用戶級加速器、高級存儲器,並且與處理器架構。2021 年,OCC 宣佈開放內存接口 (OMI)。OMI 是基於 OpenCAPI 的串行連接近存儲器接口,可為主存儲器提供低延遲和高帶寬連接。
2019 年,Compute Express Link™ (CXL™) 聯盟成立,旨在為處理器、內存擴展和加速器提供行業支持的高速緩存一致性互連。2020 年,CXL 和 Gen-Z 聯盟宣佈在各自技術之間實施互操作性的計劃,並在 2022 年初,Gen-Z 將其規范和資產轉讓給 CXL 聯盟。
秉承這一精神,OpenCAPI 宣佈,OCC和CXL正在達成協議,如果各方批準並同意,將把 OpenCAPI 和 OMI 規范以及 OpenCAPI 聯盟資產轉讓給 CXL 聯盟。
“我們很高興看到業界圍繞一個推動開放式創新並利用 OpenCAPI 和開放式內存接口提供一致互連和低延遲、接近內存接口的價值的組織聚集在一起。我們預計這將為行業帶來最佳的業務成果,因為一個整體和財團的成員。”OpenCAPI 聯盟主席Bob Szabo指出。
“我們很高興有機會將行業重點放在一個組織下的規范上。這是我們共同成員共同努力推進標準高速相幹互連/結構以造福行業的正確時機. OCC 資產的分配將允許 CXL 聯盟自由使用 OCC 已經通過 OpenCAPI/OMI 開發的內容。”CXL 聯盟主席 Siamak Tavallaei補充說。
前情提要:CXL 吸收 GEN-Z
在2021年11月,CXL 宣佈,將吸收GEN-Z標準共同發展。
在 IT 行業中,相互競爭的團體為共同利益和各地系統的改進而共同努力,這是一個司空見慣的事情,CXL 聯盟吸收 Gen-Z 聯盟也是如此。
資料顯示,制造商 AMD、架構設計公司ARM、兩傢服務器供應商戴爾和 HPE、內存制造商美光和 FPGA 專傢賽靈思自 2016 年以來一直在開發 Gen-Z,以便通過協議處理器、PCI- Express 內存和加速器進行通信。
然而,Gen-Z 聯盟缺少兩個重要的名字:英特爾和英偉達。雖然英偉達最終在 2020 年 8 月加入該聯盟。但英特爾推出相互競爭的互連 Compute Express Link (CXL),改聯盟的支持者有阿裡巴巴、思科、戴爾 EMC、Facebook、Google、HPE、華為和微軟。
當 AMD、ARM、IBM、NVIDIA 和 Xilinx 於 2019 年夏末加入Gen-Z聯盟時,我們能明顯察覺到它們將面臨困難時期。兩個財團隨後相互合作——但自 2020 年 5 月以來沒有發佈任何新聞稿,Gen-Z也沉默。現在,Gen-Z 想要完全停止自己的開發,將這個領域留給 CXL。
從CXL支持者提供的消息可以看到,GenZ的做法是希望將所有規格和資產轉移到CXL聯盟,但這仍需要各方的同意。值得一提的是,在CXL吸收Gen-Z的時候,行業內仍有 CCIX 和 OpenCAPI與之競爭,但行業正在朝著 CXL 方向發展。現在吸收OpenCAPI之後,隻剩下CCIX最後一個在堅持。
AMD 的 Infinity Fabric 專門用於將其自己的 Eypc 處理器與 Instinct 加速器耦合,就像 NVIDIA 的 NV-Link 與 IBM 的 Power CPU 及其自己的 GPU 加速器(如 A100)一樣。
英特爾即將推出的用於服務器的處理器系列 Sapphire Rapids 是第一代能夠處理 CXL,它在第一次迭代中基於 PCI Express 5.0,但希望快速切換到 PCIe 6.0 以獲得更高的傳輸速率。AMD 緊隨其後的是 CPU 系列 Epyc 7004,別名 Genoa。三星已經宣佈 CXL 內存擴展器為 PCIe DRAM。
從某種角度看,再現上世紀80年代末和90年代初的總線大戰會很有趣。供應商之間為爭奪他們所控制的標準而進行的鬥爭最終導致PCI-X和PCI-Express總線的創建,這些總線以及分支InfiniBand interconnect在服務器領域占據20年的主導地位,以及分支InfiniBand interconnect,它最初是作為一個通用的交換結構來連接高帶寬和低延遲的所有東西。這可能要比其他情況下花費更長的時間——改寫歷史是很困難的。
CXL 將如何改變數據中心
據The Register報道,Compute Express Link (CXL) 有可能從根本上改變系統和數據中心的構建和運營方式。經過 190 多傢公司的多年聯合開發,開放標準幾乎已準備好迎接黃金時間。
對於那些不熟悉的人,CXL 定義一個通用的、緩存一致的接口,用於連接 CPU、內存、加速器和其他外圍設備。在接受The Register采訪的時候,CXL 董事長兼英特爾技術計劃總監 Jim Pappas表示,該標準對數據中心的影響是廣泛的。
因此,第一批 CXL 兼容系統預計將在今年晚些時候與英特爾的 Sapphire Rapids Xeon Scalables 和 AMD 的 Genoa 第四代 Epycs 一起推出,我們詢問Pappas,問他預計 CXL 將如何在短期內改變行業。
根據 Pappas 的說法,CXL 的首批實現之一可能涉及系統內存。他解釋說,到目前為止,隻有兩種方法可以將更多內存附加到加速器上。要麼添加更多 DDR 內存通道以支持更多模塊,要麼必須將其直接集成到加速器或 CPU 封裝中。
“你不能將內存放在 PCIe 總線上,”但使用 CXL,你可以,Pappas 說。“CXL 是為加速器設計的,但它也被設計為具有內存接口。我們從一開始就知道這可以用作內存的不同端口。”
無需使用更多或更大的內存模塊填充系統,而是可以通過使用 PCIe 和 CXL 通用接口的卡安裝額外的內存。並且由於 CXL 2.0 規范中引入的簡單交換系統,包括內存在內的資源可以被多個系統同時池化和訪問。
重要的是要註意,在這種配置中,隻有資源本身而不是內存的內容在主機之間共享,Pappas 強調。“每個內存區域最多屬於一個相幹域。我們不是要共享內存;這變得更加復雜。”
另一個用例涉及分層內存架構,其中系統利用封裝上的高帶寬內存、直接連接到 CPU 的相當大的快速 DDR5 內存池,以及通過 CXL 模塊連接的更大的慢速內存池。
根據 Pappas 的說法,內存池和分層內存對數據中心和雲運營商有影響。“雲客戶面臨的最大問題是他們的第一大支出是內存。他們大約 50%的設備支出用於內存,”他說。
通過池化這些內存,Pappas 認為運營商可以通過減少閑置的內存量來實現巨大的成本節約。Pappas 說,由於池化或分層內存的行為與連接到 CPU 的系統內存沒有任何不同,因此無需修改應用程序即可利用這些技術。如果應用程序“要求更多內存,那麼現在基本上是無限供應”。
這項技術也不是理論上的。內存池和分層內存是 CXL 初創公司 Tanzanite Silicon Solutions 在今年五月被 Marvell Technologies 收購之前正在研究的幾項技術之一。Marvell 認為,該技術將證明對實現真正可組合的基礎設施至關重要,而到目前為止,這些基礎設施在很大程度上僅限於計算和存儲。
Pappas 還希望 CXL 通過在 CPU、AI 加速器和/或 GPU 之間建立比目前通過 PCIe 實現的更密切的關系,從而使 AI/ML 工作負載受益。
在基本層面上,CPU 與外圍設備(如 GPU)交互的方式是通過 PCIe 總線來回發送加載/存儲指令。CXL 消除這個瓶頸,使指令能夠在加速器和主機之間進行流式傳輸。
“這與雙處理器系統中發生的情況非常相似,其中高速緩存在處理器之間保持一致。我們正在將其擴展到加速器,”Pappas說。
將這種緩存一致性擴展到 CPU 以外的加速器絕非易事或新想法。
他告訴我們,英特爾和其他公司過去曾嘗試過為加速器開發標準化互連,但都失敗。部分問題是與這些互連相關的復雜性在組件之間共享,這使得將它們擴展到第三方非常困難。“當我們在英特爾嘗試這樣做時,它非常復雜,幾乎沒有人,基本上沒有人能夠真正讓它發揮作用,”Pappas透露。他認為,對於 CXL,基本上所有的復雜性都包含在主機 CPU 中。
這種不對稱的復雜性並非沒有權衡,但 Pappas 認為它們非常值得。這些以應用程序親和性的形式出現,特別是哪個加速器獲得對緩存或內存的優先訪問權,哪個必須扮演次要角色。
Pappas 聲稱,這在一定程度上得到緩解,因為客戶通常會知道加速器將訪問哪些內存區域與主機訪問的內存區域。用戶將能夠通過在 BIOS 中設置偏差來適應。
CXL 標準還沒有完成。CXL 聯盟預計將在今年晚些時候發佈 3.0 規范。
該更新包括從每秒 32 千兆傳輸到 64 的提升,符合計劃向 PCIe 6.0 的遷移,以及對許多新的內存使用模型的支持,Pappas 表示。該規范還介紹一種以非對稱方式實施 CXL 互連技術的途徑。此功能將允許 GPU 或 NIC 等設備直接與其他 CXL 設備交互,從而完全消除 CPU 作為瓶頸。
“這將非常重要,因為您可以獲得多個需要持續運行的加速器,”他說。
最後,該規范暗示引入多級交換的 CXL 結構。
CXL 網絡結構將是將技術擴展到機架級別之外的關鍵。並且有理由相信這可能會出現在 Gen-Z之後的 3.0 版本中——他們在去年底將其相幹記憶結構資產捐贈給 CXL 聯盟。
盡管 CXL 對於數據中心的未來可能令人興奮,但不要指望它會在一夜之間取得成功。該技術還處於起步階段,預計將在今年晚些時候推出第一代兼容系統。
Pappas 預計配備 CXL 的系統將分階段推出,分層內存和內存池可能是第一個主流用例。
“明年,第一輪系統將主要用於概念驗證,”他說。“說實話,沒有人會采用從未嘗試過的新技術。”
在概念驗證之後,Pappas 預計在該技術最終開始在生產環境中出現之前,至少還要進行一年的實驗性部署。
關於CXL的一些基礎知識
作為一種開放式互連新標準,CXL面向 CPU 和專用加速器的密集型工作負載,這些負載都需要在主機和設備之間實現高效穩定的存儲器訪問。
PCI Express (PCIe) 已經存在多年,最近完成的 PCIe 基礎規范 5.0 版本現在能夠以高達 32GT/s 的速度實現 CPU 和外設的互連。然而,在具有大型共享內存池和許多需要高帶寬設備的環境中,PCIe 受到一些限制。PCIe 沒有指定支持一致性的機制,並且不能高效地管理隔離的內存池,因為每個 PCIe 層級都要共享一個 64 位地址空間。此外,PCIe 鏈路的延遲可能過高,無法高效管理系統中多個設備的共享內存。
CXL 標準通過提供利用 PCIe 5.0 物理層和電氣元件的接口來消除其中一些限制,同時提供極低延遲路徑,用於主機處理器和需要共享內存資源的設備(如加速器和內存擴展器)之間進行內存訪問和一致緩存。支持的 CXL 標準模式主要圍繞采用 x16 通道配置並以 32GT/s 運行的 PCIe 5.0 PHY(表 1)。x8 和 x4 通道配置也支持 32GT/s,以支持分叉。任何比 x4 通道窄或比 32GT/s 慢的模式都被稱為降級模式,這類模式在目標應用中顯然不常見。雖然 CXL 可以為許多應用帶來立竿見影的性能優勢,但是某些設備不需要與主機進行密切交互,而是主要需要在處理大型數據對象或連續流時發出工作提交和完成事件的信號。對於此類設備,在加速接口使用 PCIe 就很合適,而 CXL 沒有明顯優勢。
CXL 標準定義 3 個協議,這些協議在通過標準 PCIe 5.0 PHY 以 32 GT/s 傳輸之前一起動態復用:
CXL.io 協議本質上是經過一定改進的 PCIe 5.0 協議,用於初始化、鏈接、設備發現和列舉以及寄存器訪問。它為 I/O 設備提供非一致的加載/存儲接口。
CXL.cache 協議定義主機和設備之間的交互,允許連接的 CXL 設備使用請求和響應方法以極低的延遲高效地緩存主機內存。
CXL.mem 協議提供主機處理器,可以使用加載和存儲命令訪問設備連接的內存,此時主機 CPU 充當主設備,CXL 設備充當從屬設備,並且可以支持易失性和持久性存儲器架構。
三個協議產生的數據都通過仲裁和多路復用 (ARB/MUX) 模塊一起動態復用,然後被移交到 PCIe 5.0 PHY,進而以 32GT/s 的速度進行傳輸。ARB/MUX 在 CXL 鏈路層(CXL.io 和 CXL.cache/mem)發出的請求之間進行仲裁,並根據仲裁結果復用數據,仲裁結果使用加權循環仲裁,權重由主機設置。ARB/MUX 還處理鏈路層發出的功耗狀態轉換請求,向物理層創建實現有序降耗操作的單個請求。
CXL 通過固定寬度的 528 位微片傳輸數據,該微片由四個 16 字節時隙組成,並添加兩個字節 CRC:(4 x 16 + 2 = 66 字節= 528 位)。插槽采用多種格式定義,可專用於 CXL.cache 協議或 CXL.mem 協議。片頭定義插槽格式,並攜帶允許事務層將數據正確路由到預期協議的信息。
由於 CXL 使用 PCIe 5.0 PHY 和電氣元件,它可以有效地插入到任何可以通過 Flex Bus 使用 PCIe 5.0 的系統中。Flex Bus 是一個靈活的高速端口,可以靜態配置為支持 PCIe 或 CXL。圖 2 舉例顯示 Flex Bus 鏈路。這種方法使 CXL 系統能夠利用 PCIe 重定時器;但是,目前 CXL 僅定義為直連 CPU 鏈路,因此無法利用 PCIe 交換機。隨著標準的逐步完善,交換功能可能會被添加到標準中;如果是這樣,則需要創建新的 CXL 交換機。