新聞中心

        EEPW首頁 > 網絡與存儲 > 業界動態 > 使用PCIe交換網結構在多主機系統中優化資源部署

        使用PCIe交換網結構在多主機系統中優化資源部署

        作者:Microchip Technology Inc. 固件工程技術顧問 Vincent Haché 時間:2020-10-26 來源:電子產品世界 收藏

        越來越多的數據中心和其他高性能計算環境開始使用GPU,因為GPU能夠快速處理深度學習和機器學習應用中生成的大量數據。不過,就像許多可提高應用性能的新型數據中心創新一樣,這項創新也暴露出新的系統瓶頸。在這些應用中,用于提高系統性能的新興架構涉及通過一個PCIe?結構在多個主機之間共享系統資源。

        本文引用地址:http://www.104case.com/article/202010/419640.htm

        PCIe標準(特別是其基于樹的傳統層級)會限制資源共享的實現方式(和實現程度)。不過,可以實現一種低延時的高速結構方法,這種方法允許在多個主機之間共享大量GPU和NVMe SSD,同時仍支持標準系統驅動程序。

        PCIe結構方法采用動態分區和多主機單根I/O虛擬化(SR-IOV)共享。各PCIe結構之間可直接路由點對點傳輸。這樣便可為點對點傳輸提供最佳路由,減少根端口擁塞,并且更有效地平衡CPU資源的負載。

        傳統上,GPU傳輸必須訪問CPU的系統存儲器,這會導致端點之間發生存儲器共享爭用。  當GPU使用其共享的存儲器映射資源而不是CPU存儲器時,它可以在本地提取數據,無需先通過CPU傳遞數據。這消除了跳線和鏈路以及由此產生的延時,從而使GPU能夠更高效地處理數據。

        image.png

        圖1 — 多主機拓撲

        PCIe的固有限制

        PCIe主層級是一個樹形結構,其中的每個域都有一個根聯合體,從該點可擴展到“葉子”,這些“葉子”通過交換網和橋接器到達端點。鏈路的嚴格層級和方向性給多主機、多交換網系統帶來了成本高昂的設計要求。

        以圖1所示的系統為例。要符合PCIe的層級,主機1必須在交換網1中有一個專用的下行端口,該端口連接到交換網2中的專用上行端口。它還需要在交換網2中有一個專用的下行端口,該端口連接到交換網3中的專用上行端口,依此類推。主機2和主機3也有類似的要求,如圖2所示。

        即使是基于PCIe樹形結構的最基本系統,也需要各交換網之間有三個鏈路專用于每個主機的PCIe拓撲。而且,由于主機之間無法共享這些鏈路,因此系統會很快變得極為低效。

        此外,符合PCIe的典型層級只有一個根端口,而且盡管“多根I/O虛擬化和共享”規范中支持多個根,但它會使設計更復雜,并且當前不受主流CPU支持。結果會造成未使用的PCIe設備(即端點)滯留在其分配到的主機中。不難想象,這在采用多個GPU、存儲設備及其控制器以及交換網的大型系統中會變得多么低效。

        例如,如果第一個主機(主機1)已經消耗了所有計算資源,而主機2和3未充分利用資源,則顯然希望主機1訪問這些資源。但主機1無法這樣做,因為這些資源在它的層級域之外,因此會發生滯留。非透明橋接(NTB)是這種問題的一個潛在解決方案,但由于每種類型的共享PCIe設備都需要非標準驅動程序和軟件,因此這同樣會使系統變得復雜。更好的方法是使用PCIe結構,這種結構允許標準PCIe拓撲容納多個可訪問每個端點的主機。

        image.png

        圖2 — 每個主機的層級要求

        實施方法

        系統使用一個PCIe結構交換網(本例中為Microchip Switchtec? PAX系列的成員)在兩個獨立但可透明互操作的域中實現:即包含所有端點和結構鏈路的結構域以及每個主機專用的主機域(圖3)。主機通過在嵌入式CPU上運行的PAX交換網固件保留在單獨的虛擬域中,因此,交換網將始終顯示為具有直連端點的標準單層PCIe設備,而與這些端點出現在結構中的位置無關。

        來自主機域的事務會在結構域中轉換為ID和地址,反之,結構域中通信的非分層路由也是如此。這樣,系統中的所有主機便可共享連接交換網和端點的結構鏈路。交換網固件會攔截來自主機的所有配置平面通信(包括PCIe枚舉過程),并使用數量可配置的下行端口虛擬化一個符合PCIe規范的簡單交換網。

        當所有控制平面通信都路由到交換網固件進行處理時,數據平面通信直接路由到端點。其他主機域中未使用的GPU不再滯留,因為它們可以根據每個主機的需求動態分配。結構內支持點對點通信,這使其能夠適應機器學習應用。當以符合PCIe規范的方式向每個主機提供功能時,可以使用標準驅動程序。

        image.png

        圖3 — 每個結構的獨立域

        操作方法

        為了解這種方法的工作原理,我們以圖4中的系統為例,該系統由兩個主機(主機1采用Windows?系統,主機2采用Linux?系統)、四個PAX PCIe結構交換網、四個Nvidia M40 GPGPU和一個支持SR-IOV的Samsung NVMe SSD組成。在本實驗中,主機運行代表實際機器學習工作負載的通信,包括Nvidia的CUDA點對點通信基準測試實用程序和訓練cifar10圖像分類的TensorFlow模型。嵌入式交換網固件處理交換網的低級配置和管理,系統由Microchip的ChipLink調試和診斷實用程序管理。     



        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 杭锦后旗| 繁峙县| 宁南县| 金湖县| 大埔区| 绥中县| 安达市| 嵊泗县| 巴彦县| 综艺| 河津市| 美姑县| 开平市| 盐山县| 长顺县| 伊川县| 且末县| 涡阳县| 高阳县| 江门市| 班戈县| 土默特左旗| 东安县| 金塔县| 淅川县| 梁平县| 安康市| 彭水| 高尔夫| 保德县| 镇赉县| 葫芦岛市| 汾西县| 固安县| 花莲市| 钟山县| 平邑县| 寿阳县| 纳雍县| 兴化市| 榆中县|