<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

內存架構演進:CXL與RDMA的協同發展

SDNLAB ? 來源:Andy730 ? 2023-08-22 09:33 ? 次閱讀

隨著第一代芯片的發布,圍繞CXL的早期炒作逐漸被現實的性能期望所取代。與此同時,關于內存分層的軟件支持正在不斷發展,借鑒了NUMA和持久內存方面的先前工作。最后,運營商已經部署了RDMA以實現存儲分離和高性能工作負載。由于這些進步,主內存分離現在已經成為可能。

分層解決內存危機

隨著近期AMDIntel服務器處理器的推出,內存分層技術正取得重大進展。無論是AMD的新EPYC(代號Genoa)還是Intel的新Xeon Scalable(代號Sapphire Rapids),都引入了CXL,標志著新的內存互連架構的開始。第一代支持CXL的處理器處理的是規范的1.1版本,然而CXL聯盟在2022年8月發布了3.0版本的規范。

當CXL推出時,關于主內存分離的夸張言論出現了,忽略了訪問和傳輸延遲的現實情況。隨著第一代CXL芯片現已發貨,客戶需要處理軟件適應分層要求的問題。運營商或供應商還必須開發編排軟件來管理池化和共享內存。與軟件同時進行的是,CXL硬件生態系統將需要數年的時間來充分發展,特別是包括CPU、GPU、交換機和內存擴展器在內的CXL 3.x組件。最終,CXL承諾將演變成一個真正的架構,可以將CPU和GPU連接到共享內存,但網絡連接的內存仍然具有一定的作用。

cdfebdee-4001-11ee-ac96-dac502259ad0.png

圖1. 內存層次結構

正如圖1所示,內存層次正在變得更加精細,以換取訪問延遲和容量以及靈活性之間的平衡。金字塔的頂部是性能層,需要將熱數據存儲以獲得最大性能。冷數據可以降級為容量層,傳統上由存儲設備提供服務。然而,在近年來,開發人員已經優化了軟件,以在多插槽服務器中不同NUMA域中以及在持久(非易失性)內存(例如Intel的Optane)中存放頁面時提高性能。雖然Intel停止了Optane的開發,但其大量的軟件投資仍然適用于CXL連接的內存。

將內存頁面交換到固態硬盤會引發嚴重的性能損失,從而為新的基于DRAM的容量層創造了機會。有時被稱為“遠程內存”,這種DRAM可以存在于另一臺服務器或內存設備中。在過去的二十年中,軟件開發人員推進了基于網絡的交換的概念,該概念使得服務器能夠訪問網絡上另一臺服務器中的遠程內存。通過使用支持遠程DMA(RDMA)的網卡,系統架構師可以將訪問網絡連接的內存的延遲降低到不到4微秒,如圖1所示。因此,與傳統的將數據交換到存儲進行交換相比,通過網絡交換可以顯著提高某些工作負載的性能。

內存擴展推動了CXL的導入

雖然CXL只有三年多的歷史,但已經取得了超過之前的相干互連標準(如CCIX、OpenCAPI和HyperTransport)的行業支持。關鍵是,盡管Intel是原始規范的開發者,但AMD仍然支持并實現了CXL。

不斷增長的CXL生態系統包括將DDR4或DDR5 DRAM連接到支持CXL的服務器(或主機)的內存控制器(或擴展器)。CXL早期導入的一個重要因素是它重新使用了PCIe物理層,實現了I/O的靈活性,同時不增加處理器引腳數。這種靈活性延伸到了插卡和模塊,這些插卡和模塊使用與PCIe設備相同的插槽。對于服務器設計者來說,添加CXL支持只需要最新的EPYC或Xeon處理器,并注意PCIe通道的分配情況。

CXL規范定義了三種不同用例所需的三種設備類型和三種協議。在這里,我們將重點放在用于內存擴展的Type 3設備上,以及用于緩存一致性內存訪問的CXL.mem協議上。所有三種設備類型都需要CXL.io協議,但Type 3設備只在配置和控制方面使用它。與CXL.io和PCIe相比,CXL.mem協議棧使用不同的鏈路和事務層。關鍵區別在于,CXL.mem(和CXL.cache)采用固定長度的消息,而CXL.io使用類似PCIe的可變長度數據包。在1.1和2.0版本中,CXL.mem使用68字節的流控單元(flit),處理64字節的緩存行。CXL 3.0采用了PCIe 6.0中引入的256字節flit,以適應前向糾錯(FEC),但還添加了一個將錯誤檢查(CRC)分成兩個128字節塊的延遲優化flit。

ce2dbe6e-4001-11ee-ac96-dac502259ad0.png

圖2. CXL 1.1/2.0 應用案例

從根本上講,CXL.mem為PCIe接口引入了加載/存儲語義,實現了內存帶寬和容量的擴展。如圖2所示,第一個CXL用例圍繞著內存擴展展開,從單主機配置開始。最簡單的示例是CXL內存模塊,例如Samsung的512GB DDR5內存擴展器,具有一個PCIe Gen5 x8接口,采用EDSFF外形尺寸。該模塊使用來自Montage Technology的CXL內存控制器,供應商聲稱支持CXL 2.0。同樣,Astera Labs提供了一個帶有CXL 2.0 x16接口的DDR5控制器芯片。該公司開發了一個PCIe插卡,將其Leo控制器芯片與四個RDIMM插槽相結合,處理高達合計2TB的DDR5 DRAM。

連接到CXL的DRAM的未加載訪問延遲應該比連接到處理器集成內存控制器的DRAM大約100納秒。內存通道顯示為單一邏輯設備(SLD),可以分配給一個單一的主機。使用單個處理器和SLD進行內存擴展代表了CXL內存性能的最佳情況,假設直接連接,沒有中間設備或層,如重定時器和交換機。

下一個用例是池化內存,它可以將內存區域靈活地分配給特定的主機。在池化中,內存只分配給并且只能被單一主機訪問,即一個內存區域不會被多個主機同時共享。當將多個處理器或服務器連接到內存池時,CXL可以采用兩種方法。原始方法是在主機和一個或多個擴展器(Type 3設備)之間添加CXL交換組件。這種方法的缺點是交換機會增加延遲,我們估計大約為80納秒。盡管客戶可以設計這樣的系統,但我們不認為這種用例會取得高量級的采用,因為增加的延遲會降低系統性能。

相反,另一種方法是使用多頭(MH)擴展器將少量主機直接連接到內存池,如圖2中央所示。例如,初創公司Tanzanite Silicon Solutions在被Marvell收購之前展示了一個基于FPGA的原型,擁有四個頭部,后來披露將推出具有8個x8主機端口的芯片。這些多頭控制器可以成為一個內存設備的核心,為少量服務器提供一池DRAM。然而,直到CXL 3.0之前,管理MH擴展器的命令接口并沒有標準化,這意味著早期的演示使用了專有的結構管理。

CXL 3.x實現了共享內存結構

盡管CXL 2.0可以實現小規模的內存池,但它有許多限制。在拓撲結構方面,它僅限于16個主機和單層交換器層次結構。對于連接GPU和其它加速器來說更重要的是,每個主機只支持一個Type 2設備,這意味著CXL 2.0不能用于構建一個一致性GPU服務器。CXL 3.0允許每個主機支持多達16個加速器,使其成為用于GPU的標準一致性互連。它還增加了點對點(P2P)通信、多級交換和最多4,096個節點的結構。

ce63633e-4001-11ee-ac96-dac502259ad0.png

圖3. CXL 3.X 共享內存

雖然內存池化可以實現將DRAM靈活分配給服務器,但CXL 3.0可以實現真正的共享內存。共享內存擴展器被稱為全局布局附加內存(G-FAM)設備,它允許多個主機或加速器共同共享內存區域。3.0規范還為更精細的內存分配添加了最多8個動態容量(DC)區域。圖3展示了一個簡單的示例,使用單個交換機將任意數量的主機連接到共享內存。在這種情況下,主機或設備可能會管理緩存一致性。

ce90e606-4001-11ee-ac96-dac502259ad0.png

圖4. 以太網上的內存交換

然而,為了使加速器可以直接訪問共享內存,擴展器必須實現帶有回收失效的一致性(HDM-DB),這是3.0規范中新增的。換句話說,要使CXL連接的GPU可以共享內存,擴展器必須實現包含性嗅探過濾器。這種方法引入了潛在的阻塞,因為規范對某些CXL.mem事務強制執行嚴格的順序。共享內存結構會出現擁塞,導致不太可預測的延遲和更大的尾延遲的可能性。盡管規范包括QoS遙測功能,基于主機的速率限制是可選的,而且這些能力在實踐中尚未得到驗證。

RDMA實現遠程內存

隨著CXL結構在規模和異構性上的增長,性能問題也在擴大。例如,在解耦式機架的每個架子上放置一個交換機是一種優雅的方法,但它會在不同資源(計算、內存、存儲和網絡)之間的每次事務中增加一個交換機跳數。擴展到集群和更大規模會增加鏈路延遲的挑戰,甚至傳輸延遲也變得有意義。當多個因素導致延遲超過600納秒時,系統可能會出現錯誤。最后,盡管對于小事務而言,加載/存儲語義很有吸引力,但對于頁面交換或虛擬機遷移等大規模數據傳輸來說,DMA通常更高效。

最終,一致性域的范圍只需要擴展到一定程度。超出CXL的實際限制,以太網可以滿足對高容量分離內存的需求。從數據中心的角度來看,以太網的覆蓋范圍是無限的,超大規模的超大規模企業已經將RDMA-over-Ethernet(RoCE)網絡擴展到數千個服務器節點。然而,運營商已經部署了這些大型RoCE網絡,用于使用SSD進行存儲分離,而不是DRAM。

圖3展示了內存RDMA交換的一個示例實現,即密歇根大學的Infiniswap設計。研究人員的目標是將閑置內存在服務器之間進行分離,解決內存未充分利用的問題,也稱為閑置。他們的方法使用現成的RDMA硬件(RNIC),避免了應用程序的修改。系統軟件使用Infiniswap塊設備,對虛擬內存管理器(VMM)而言,它類似于傳統存儲。VMM將Infiniswap設備處理為交換分區,就像使用本地SSD分區進行頁面交換一樣。

目標服務器在用戶空間運行一個Infiniswap守護進程,僅處理將本地內存映射到遠程塊設備。一旦內存被映射,讀寫請求將繞過目標服務器的CPU,使用RDMA進行傳輸,從而實現零開銷的數據平面。在研究人員的系統中,每個服務器都加載了兩個軟件組件,以便它們可以同時充當請求方和目標方,但這個概念也可以擴展到僅充當目標方的內存設備。

密歇根大學團隊使用56Gbps InfiniBand RNIC構建了一個32節點集群,盡管以太網RNIC應該可以完全運行。他們測試了幾個內存密集型應用程序,包括運行TPC-C基準測試的VoltDB和運行Facebook工作負載的Memcached。在只有50%的工作集存儲在本地DRAM中,其余由網絡交換提供支持的情況下,VoltDB和Memcached分別提供了66%和77%的性能,與完整工作集存儲在本地DRAM中的性能相比。

通往內存網絡的漫長道路

云數據中心成功地將存儲和網絡功能從CPU分離出來,但主內存的分離仍然難以實現。十年前,Intel的機架規模架構路線圖上有關于內存池化的計劃,但從未實現。Gen-Z聯盟于2016年成立,追求內存為中心的結構架構,但系統設計僅達到了原型階段。歷史告訴我們,隨著行業標準增加復雜性和可選功能,它們被大規模采用的可能性降低。CXL提供了沿著架構演進路徑的增量步驟,允許技術迅速發展,同時提供未來迭代,承諾實現真正的可組合系統。

從內存擴展中受益的工作負載包括SAP HANA和Redis等內存數據庫、Memcached等內存緩存、大型虛擬機,以及必須處理日益增長的大型語言模型的AI訓練和推斷。當這些工作負載的工作集不能完全適應本地DRAM時,它們的性能會急劇下降。內存池化可以緩解閑置內存問題,這影響了超大規模數據中心運營商的資本支出。微軟在2022年3月的一篇論文中詳細介紹的研究發現,在高度利用的Azure集群中,高達25%的服務器DRAM被閑置。該公司對不同數量的CPU插槽進行了內存池化建模,并估計它可以將整體DRAM需求減少約10%。

在目前的GPU市場動態下,純粹采用CXL 3.x結構的情況不太具有說服力,部分原因是GPU市場的動態。目前來自Nvidia、AMD和Intel的數據中心GPU在GPU與GPU之間的通信中實現了專有的一致性互連,同時還使用PCIe與主機進行連接。Nvidia的頂級Tesla GPU已經支持通過專有的NVLink接口進行內存池化,解決了高帶寬內存(HBM)的閑置內存問題。市場領導者可能會更青睞NVLink,但它也可能通過共享(serdes)的方式支持CXL。類似地,AMD和Intel未來的GPU可能會在Infinity和Xe-Link之外采用CXL。然而,由于沒有公開的GPU支持,對于CXL 3.0先進功能的采用存在不確定性,而對于現有用例轉向PCIe Gen6通道速率是無爭議的。無論如何,我們預計在2027年之前,CXL 3.x共享內存擴展器將實現大規模出貨。

與此同時,多個超大規模數據中心運營商采用RDMA來處理存儲分離以及高性能計算。盡管在大規模部署RoCE方面存在挑戰,但這些大客戶有能力解決性能和可靠性問題。他們可以將這種已部署和理解的技術擴展到新的場景,如基于網絡的內存解耦。研究已經證明,連接到網絡的容量層在將其應用于適當的工作負載時可以提供強大的性能。

我們將CXL和RDMA視為互補的技術,前者提供最大的帶寬和最低的延遲,而后者提供更大的規模。Enfabrica開發了一種稱為Accelerated Compute Fabric (ACF)的架構,將CXL/PCIe交換和RNIC功能合并為一個單一的設備。當在多太位(multi-terabit)芯片中實例化時,ACF可以連接一致性本地內存,同時使用高達800G以太網端口跨機箱和機架進行擴展。關鍵是,這種方法消除了對將來需要多年才能進入市場的高級CXL功能的依賴。

數據中心運營商將采用多種路徑來實現內存分離,因為每個運營商有不同的優先事項和獨特的工作負載。那些有明確定義內部工作負載的運營商可能會領先,而那些優先考慮公有云實例的運營商可能會更加保守。早期使用者為那些可以解決特定客戶最迫切需求的供應商創造了機會。

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    447

    文章

    48292

    瀏覽量

    411514
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10512

    瀏覽量

    207279
  • 服務器
    +關注

    關注

    12

    文章

    8271

    瀏覽量

    83064
  • 內存
    +關注

    關注

    8

    文章

    2790

    瀏覽量

    72966
  • RDMA
    +關注

    關注

    0

    文章

    68

    瀏覽量

    8866

原文標題:內存架構演進:CXL與RDMA的協同發展

文章出處:【微信號:SDNLAB,微信公眾號:SDNLAB】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    基于CXL的直接訪問高性能內存分解框架

    鑒于KAIST的HPC根源,將DirectCXL原型放在一起的研究人員專注于使用遠程直接內存訪問(RDMA)協議將CXL內存池與跨系統直接內存
    發表于 09-23 10:50 ?1150次閱讀

    利用CXL技術重構基于RDMA內存解耦合

    本文提出了一種基于RDMACXL的新型低延遲、高可擴展性的內存解耦合系統Rcmp。其顯著特點是通過CXL提高了基于RDMA系統的性能,并利
    發表于 02-29 10:05 ?988次閱讀
    利用<b class='flag-5'>CXL</b>技術重構基于<b class='flag-5'>RDMA</b>的<b class='flag-5'>內存</b>解耦合

    一窺CXL協議

    前言:CXL的全名是Compute eXpress Link。CXL是Intel在2019年提出的,希望用CXL來實現計算、內存、存儲和網絡的解耦,并在
    發表于 09-09 15:03

    一文解析CXL系統架構

    1、CXL系統架構簡析  CXL支持三種設備類型,如下圖。Type 1支持CXL.cache和CXL.io;Type2支持
    發表于 09-14 14:24

    CXL內存協議介紹

    3.3.1 介紹CXL內存協議被稱作CXL.mem。CXL.mem定義了CPU和內存之間的傳輸接口。該協議可用于多個不同的
    發表于 11-01 15:08

    DirectCXL內存分解原型設計實現

    鑒于KAIST的HPC根源,將DirectCXL原型放在一起的研究人員專注于使用遠程直接內存訪問(RDMA)協議將CXL內存池與跨系統直接內存
    發表于 11-15 11:14

    陳海波:OpenHarmony技術領先,產學研深度協同,生態蓬勃發展

    操作系統能力,從而滿足千行百業的場景需要,也便于提供開放、統一的生態能力。 2)“異構并行、全棧協同”面向后摩爾時代硬件架構演進,OpenHarmony從并發、調度、內存和存儲等性能
    發表于 11-06 14:35

    從互操作看WCDMA/GSM雙網協同發展

    從互操作看WCDMA/GSM雙網協同發展 在GSM、WCDMA均有覆蓋的地方,雙模手機優先選擇WCDMA網絡;如果3G用戶當前駐留在2G網絡,則要求能夠
    發表于 11-25 10:17 ?660次閱讀

    如何促進5G+車聯網協同發展

    日前,工業和信息化部發布《關于推動5G加快發展的通知》,提出促進“5G+車聯網”協同發展。推動將車聯網納入國家新型信息基礎設施建設工程,促進LTE-V2X規模部署。
    發表于 04-08 09:19 ?1612次閱讀

    “5G+車聯網”的車路協同發展模式促進智能汽車與智慧城市協同發展

      10月27日,智能汽車與智慧城市協同發展論壇暨聯盟年度會議在湖北武漢舉行。論壇由中國電動汽車百人會、智能汽車與智慧城市協同發展聯盟、武漢新能源與智能汽車創新中心共同舉辦,也是疫情之后中國智能網聯汽車界舉行的重量級論壇活動。
    的頭像 發表于 10-28 14:21 ?2628次閱讀

    SMART世邁科技推出首款XMM CXL內存模塊

    (CXL?)內存模塊XMM CXL內存模塊。SMART Modular的這款新型 DDR5 XMM CXL 模塊通過
    的頭像 發表于 09-01 15:38 ?1105次閱讀

    數字產業協同發展的意義和作用

    數字產業協同發展的意義在于實現不同數字產業之間的協同作用,整合資源優勢,創造新型產業鏈和生態系統,提升產業的附加值,推動數字經濟的發展。   數字產業協同發展指的是基于數字技術和
    的頭像 發表于 04-24 16:48 ?4291次閱讀

    數字產業協同發展的例子及主要內容

    數字產業協同發展的例子包括以下幾個方面:   1. 電子商務和物流產業的協同發展:電子商務和物流業是數字經濟中的兩個重要產業。電子商務企業需要物流企業提供配送服務,而物流企業也可以通過
    的頭像 發表于 04-24 16:53 ?5711次閱讀

    訪問CXL 2.0設備中的內存映射寄存器

    計算快速鏈接 (CXL) 1.1 和 CXL 2.0 規范在內存映射寄存器的放置和訪問方式上有所不同。CXL 1.1 規范將內存映射寄存器放
    的頭像 發表于 05-25 16:56 ?1324次閱讀
    訪問<b class='flag-5'>CXL</b> 2.0設備中的<b class='flag-5'>內存</b>映射寄存器

    多網協同發展探討

    電子發燒友網站提供《多網協同發展探討.pdf》資料免費下載
    發表于 11-10 14:08 ?0次下載
    多網<b class='flag-5'>協同發展</b>探討
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>