• <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>
  • 3 月 19 日下午 2 點,鎖定 NVIDIA AI 網絡中文專場。立即注冊觀看
    數據中心/云端

    利用 NVIDIA Magnum IO NVSHMEM 3.0 實現跨平臺應用程序的可移植性和兼容性增強

    NVSHMEM 是一個并行編程接口,可為 NVIDIA GPU 集群提供高效且可擴展的通信。NVSHMEM 是 NVIDIA Magnum IO 的一部分,基于 OpenSHMEM,可為跨越多個 GPU 內存的數據創建全局地址空間,并可通過細粒度的 GPU 初始化操作、CPU 初始化操作和 CUDA 流操作進行訪問。

    現有的通信模型(例如 Message Passing Interface(MPI))使用 CPU 編排數據傳輸。相比之下,NVSHMEM 使用 GPU 發起的異步數據傳輸,從而消除 CPU 和 GPU 之間的同步開銷。

    本文將詳細介紹NVSHMEM 3.0版本,包括我們在各個平臺和系統中啟用的新功能和支持

    Two workflow diagrams depict the difference between an MPI workflow and a NVSHMEM workflow. The MPI workflow depicts single in and out data streams from the GPU to the network, while the NVSHMEM workflow shows multiple (parallel) streams directly from the GPU to the network.
    圖 1.NVSHMEM 與 MPI 對比

    NVSHMEM 3.0 中的新功能和接口支持

    NVSHMEM 3.0 引入了多節點、多互連支持、主機設備 ABI 向后兼容性和 CPU 輔助 InfiniBand GPU 直接異步(IBGDA)。

    多節點、多互連支持

    以前,NVSHMEM 支持通過 P2P 互聯 (NVIDIA NVLink/PCIe) 在一個節點內連接多個 GPU,并通過 RDMA 互聯在一個節點上連接多個 GPU,例如 InfiniBand、RDMA over Converged Ethernet (RoCE) 和 Slingshot 等(圖 2)。

    This is a topological diagram with four compute nodes containing dual-GPUs connected by NVSwitch and each with a NIC, on the bottom layer, directly interconnected via the NICs in a criss-cross fashion to two Infiniband switch boxes above.
    圖 2. 通過 RDMA 網絡連接的多個節點的拓撲視圖。

    NVSHMEM 2.11 增加了對多節點 NVLink (MNNVL 或 NVIDIA GB200 NVL72) 系統的支持(圖 3)。然而,這種支持僅限于 NVLink 作為唯一的節點間互連時。

    This is an architectural diagram with 18 compute nodes arranged in a matrix format, each node containing 4 GPUs and 2 CPUs, interconnected by 9 NVLink Switch trays, each with 2 NVLink Switch chips, in the middle, to show how all 72 nodes are connected within a single NVIDIA GB200 NVL72 rack cabinet.
    圖 3. 單個 NVIDIA GB200 NVL72 機架的拓撲視圖。

    為了解決這一限制,我們添加了新的平臺支持,使多個 NVIDIA GB200 NVL72 系統的機架能夠通過 RDMA 網絡連接(圖 4)。NVSHMEM 3.0 添加了此平臺支持,當兩個 GPU 屬于同一 NVLink 結構時(例如,在同一 NVIDIA GB200 NVL72 機架內),將使用 NVLink 進行通信。

    此外,當 GPU 分布在 NVLink 架構(例如,跨 NVIDIA GB200 NVL72 機架)時,遠程網絡將用于這些 GPU 之間的通信。此版本還增強了 NVSHMEM_TEAM_SHARED 能力,可包含屬于跨越一個或多個節點的同一 NVLink 集群的所有 GPU。

    An architectural diagram showing many NVIDIA GB200 NVL72 racks (as shown in the Figure 3 diagram), all interconnected by multiple InfiniBand box switches above them.
    圖 4. 通過 RDMA 網絡連接的多個 NVIDIA GB200 NVL72 機架的拓撲視圖。

    主機設備 ABI 向后兼容性?

    過去,NVSHMEM 不支持應用程序的向后兼容性,也不支持獨立編譯的引導插件。NVSHMEM 3.0 在 NVSHMEM 次要版本之間引入了向后兼容性。一旦 ABI 發生破壞,將通過 NVSHMEM 主要版本的更改來表示。

    此功能為使用 ABI 兼容版本的 NVSHMEM 庫或應用提供以下用例:

    • 鏈接到 NVSHMEM 次要版本 3.X 的庫可以安裝在安裝較新版本 3.Y 的 NVSHMEM(Y > X)的系統上。
    • 單個較新的 NVSHMEM 版本將支持在 SDK 中一起提供的多個庫,這些庫鏈接到不同的 NVSHMEM 次要版本。
    • CUDA 二進制文件 (也稱為 cubin) 以靜態方式鏈接到舊版的 NVSHMEM 設備庫,可以由使用較新版本的 NVSHMEM 的庫加載。
    ? NVSHMEM 主機庫 2.12 NVSHMEM 主機庫 3.0+ NVSHMEM 主機庫 3.1 NVSHMEM 主機庫 3.2 NVSHMEM 主機庫 4.0
    應用程序鏈接到 NVSHMEM 3.1
    Cubin 鏈接到 NVSHMEM 3.0
    多個庫 Lib 1 NVSHMEM 3.1, Lib 2 NVSHMEM 3.2
    表 1.NVSHMEM 3.0 及其未來版本的兼容性

    CPU 輔助 InfiniBand GPU 直接異步?

    在之前的版本中,NVSHMEM 支持傳統的 InfiniBand GPU Direct Async (IBGDA),其中 GPU 直接驅動 InfiniBand 網卡,從而實現大規模并行控制平面操作。NVSHMEM 負責管理網絡接口卡(NIC)控制平面,例如在向 NIC 發布新工作請求時按門鈴。

    NVSHMEM 3.0 在 IBGDA 中增加了對一種名為 CPU-assisted IBGDA 的新模式的支持,該模式充當基于代理的網絡和傳統 IBGDA 之間的中間模式。它在 GPU 和 CPU 之間劃分控制平面的責任。GPU 生成工作請求(控制平面操作),CPU 管理已提交工作請求的 NIC 門鈴請求。它還支持在運行時動態選擇 NIC 助手為 CPU 或 GPU。

    CPU 輔助的 IBGDA 可在 IBGDA 對等映射中放松現有的管理級配置限制,從而幫助提高 IBGDA 在非一致性平臺上的采用率,因為在大規模集群部署中,管理級配置限制難以實施。

    There are two block-based diagrams showing a comparison between traditional Infiniband GPU Direct Async (IBGDA) communications versus CPU-assisted Infiniband GPU Direct Async communications. The traditional IBGDA diagram shows a green block on top and a red block below it connected together by a line. While the CPU-assisted IBGDA diagram shows the same two blocks, but this time with a blue CPU block drawn in the middle.
    圖 5. 傳統 IBGDA 與 CPU 輔助 IBGDA 的比較。

    非接口支持和次要增強功能

    NVSHMEM 3.0 還引入了一些細微的增強功能和非接口支持,如本節所述。

    面向對象的對稱堆編程框架

    過去,NVSHMEM 使用程序化編程模型支持多種對稱堆類型。這存在局限性,例如缺乏基于命名空間的數據封裝以及代碼復制和數據冗余。

    NVSHMEM 3.0 引入了對面向對象編程(OOP)框架的支持,該框架可以使用多級繼承管理不同類型的對稱堆,例如靜態設備內存和動態設備內存。這將使高級功能更容易擴展,例如在未來的版本中按需注冊應用程序緩沖區到對稱堆。

    Diagram showing five boxes: two green stacked on the left, and two red stacked on the right, with a single black box at the top middle. All five boxes have bidirectional lines between them and reach the top black box. The green and red boxes are not directly connected, but instead connect through the black box in a clockwise direction.
    圖 6.NVSHMEM 3.0 面向對象的層次結構

    性能改進和問題修復

    NVSHMEM 3.0 引入了不同組件和場景的各種性能改進和錯誤修復,包括 IBGDA 設置、塊范圍設備端歸約、系統范圍原子內存操作(AMO)、IB 隊列對(QP)映射、內存注冊、團隊管理和 PTX 構建測試。

    總結

    3.0 版 NVIDIA NVSHMEM 并行編程接口引入了多項新功能,包括多節點多互連支持、主機設備 ABI 向后兼容性、CPU 輔助 InfiniBand GPU Direct Async(IBGDA),以及用于對稱堆的面向對象編程框架。

    借助主機設備 ABI 向后兼容性,管理員可以更新到新版本的 NVSHMEM,而無需中斷已編譯的應用程序,從而無需在每次更新時修改應用程序源代碼。

    CPU 輔助 InfiniBand GPU Direct Async (IBGDA) 使用戶能夠在無法執行管理級驅動設置的集群上從 IBGDA 傳輸的高消息速率中受益。

    如需了解詳情并開始使用,請參閱以下資源:

    ?

    +2

    標簽

    人人超碰97caoporen国产