在 MLPerf Inference v3.0 中,NVIDIA 首次向新推出的 網絡分割 投入,現在是 MLPerf 推理數據中心套件的一部分。網絡分割旨在模擬真實的數據中心設置,努力將包括硬件和軟件在內的網絡效果納入端到端推理性能。
網絡部門中有兩種類型的節點:前端節點生成查詢,這些查詢通過標準網絡結構(如以太網或InfiniBand)發送,由加速器節點處理,加速器節點執行推理。
圖 1 顯示了 Closed 分區完全在單個節點上運行。在“網絡”部分中,查詢在“前端”節點上生成,并傳輸到“加速器”節點進行推理。
在網絡部分,加速器節點包含推理加速器以及所有網絡組件。這包括網絡接口控制器( NIC )、網絡交換機和網絡結構。因此,雖然網絡部門試圖衡量加速器節點和網絡的性能,但它排除了前端節點的影響,因為后者在基準測試中的作用有限。
NVIDIA 在 MLPerf 推理 v3.0 網絡部門的表現
在 MLPerf 推理 v3.0 中,NVIDIA 對 ResNet-50 和 BERT 工作負載進行了網絡部門提交。NVIDIA 提交的文件通過使用極高的網絡帶寬和低延遲,利用GPUDirect RDMA技術和NVIDIA ConnectX-6 InfiniBand smart adapter cards,在 ResNet-50 上實現了 100% 的單節點性能。
基準 | DGX A100 ( 8x A100 80GB ) | 網絡部門與封閉部門的績效比較 |
ResNet-50 (低精度) | 脫機 | 100% |
服務器 | 100% | |
BERT (低精度) | 脫機 | 94% |
服務器 | 96% | |
BERT (高精度) | 脫機 | 90% |
服務器 | 96% |
NVIDIA 平臺在 BERT 工作負載方面也表現出了出色的性能,由于主機端的批處理開銷,與相應的封閉部門提交相比,僅對性能產生了輕微影響。
NVIDIA 網絡部門提交中使用的技術
大量的全棧技術使 NVIDIA 網絡部門的強大性能得以實現:
- A. NVIDIA TensorRT 優化推理引擎的后端。
- InfiniBand RDMA 是一種基于低延遲、高通量張量通信的網絡傳輸,其中使用 IBV verbs,并在 Mellanox OFED 軟件堆棧中實現。
- 用于配置交換、運行狀態同步和檢測信號監控的以太網 TCP 套接字
- A. 使用 NUMA-aware 實現,以利用 CPU 、 GPU 和 NIC 資源獲得最佳性能。
網絡劃分實施細節
以下是 MLPerf 推理網絡部門的實現細節:
- 用于高吞吐量、低延遲通信的 InfiniBand
- 網絡劃分推理流程
- 性能優化
用于高吞吐量、低延遲通信的 InfiniBand
網絡部門要求提交者實現查詢調度庫( QDL ),該庫從負載生成器獲取查詢,并以適合提交者設置的方式將查詢調度到加速器節點。
- 在生成輸入張量序列的前端節點中, QDL 提取測試( SUT ) API 下的 LoadGen 系統,使 MLPerf Inference LoadGener 看到加速器可用于本地測試。
- 在 Accelerator 節點中, QDL 顯示它與 LoadGen 直接交互以獲取推理請求和響應。在 NVIDIA 的 QDL 實現中,我們使用 InfiniBand IBV 謂詞和以太網 TCP 套接字實現了無縫數據通信和同步。

圖 2 顯示了使用 InfiniBand 技術構建在 QDL 中的數據交換組件。

圖 3 顯示了如何使用該數據交換組件在兩個節點之間建立連接。
無限帶寬的 隊列對(QPs) 是節點之間的基本連接點。NVIDIA 實現使用無損的 可靠連接(RC) 和傳輸模式,并利用 InfiniBand HDR 光纖結構解決方案來維持高達 200 Gbits/sec 的吞吐量。
基準測試開始時, QDL 初始化會發現系統中可用的 InfiniBand NIC 。根據存儲在 IBCfgs 中的配置,指定使用的 NIC 將填充為 IBDevice 實例。在這個填充過程中,用于 RDMA 傳輸的內存區域被分配、固定和注冊為 RDMA 緩沖區,并與適當的句柄一起保存在 IBResources 中。
加速器節點的 RDMA 緩沖區位于 GPU 內存中,利用 GPUDirect RDMA,將 RDMA 緩沖區信息以及適當的保護密鑰通過以太網上的 TCP 套接字與對等節點通信,從而為 QDL 創建 IBConnection 實例。
QDL 實現支持 NUMA ,并將最近的 NUMA 主機內存 CPU 和 GPU 映射到每個 NIC 。每個 NIC 都使用 IBConnection 與對等 NIC 進行通信。
網絡劃分推理流程
圖 4 顯示了推理請求是如何從 Frontend 節點發送并在 Accelerator 節點處理的:
- LoadGen 生成一個查詢(推理請求),其中包含輸入張量。
- QDL 基于仲裁方案將該查詢重定向到適當的 IBConnection 。
- 查詢樣本庫( QSL )可能已經注冊在 RDMA 緩沖區內。如果沒有,則 QDL 將查詢暫存(復制)到 RDMA 緩沖區。
- QDL 啟動具有相關聯的 QP 的 RDMA 傳輸。
- InfiniBand 網絡傳輸通過網絡交換機進行。
- 查詢到達對等方的 QP 。
- 然后通過直接存儲器訪問將查詢傳輸到目的地 RDMA 緩沖區。
- 在加速器節點 QDL 中確認 RDMA 完成。
- QDL 使 Accelerator 節點能夠批處理此查詢。 QDL 標記要發布到 Accelerator 節點的某個加速器的一批查詢。
- 加速器節點的加速器使用 CUDA 和 TensorRT 執行推斷,并在 RDMA 緩沖器中產生響應。
當最終如步驟 10 中那樣執行推斷時,生成輸出張量并將其填充在 RDMA 緩沖器中。然后加速器節點開始以類似的方式但以相反的方向將響應張量傳輸到前端節點。
性能優化
NVIDIA 實現使用 InfiniBand RDMA 寫入,并利用最短的延遲。要使 RDMA 寫入成功,發送方必須顯式管理目標內存緩沖區。
Frontend 和 Accelerator 節點都管理緩沖區跟蹤器,以確保每個查詢和響應都保存在內存中,直到用完為止。例如, ResNet-50 要求每個連接( QP )管理多達 8K 個事務,以維持性能。
以下一些關鍵優化包含在 NVIDIA 實現中。
以下關鍵優化支持更好的可擴展性:
- 每個 IBConnection ( QP )的事務跟蹤器:每個 IBConnection 都有一個獨立的事務跟蹤器,從而實現無鎖、連接內事務記賬。
- 每個 NIC 支持多個 QP :任意數量的 IBConnections 可以在任何 NIC 上實例化,從而可以輕松地自發支持大量事務。
以下關鍵優化提高了 InfiniBand 的資源效率:
- 使用 INLINE 傳輸小消息:通過 INLINE 傳輸傳輸小消息(通常小于 64 字節)可避免 PCIe 傳輸,從而顯著提高性能和效率。
- 使用屬于未被忽略的 RDMA 寫入:由于未簽名的事務在 CQ 中等待,直到簽名的事務發生,從而觸發到目前為止在同一節點中排隊的所有事務的完成處理(批量完成),因此 CQ 維護變得更加高效。
- 申請 IB 轉讓的使用:未經請求的 RDAM 事務可能會在遠程節點中排隊,直到發生請求的 RDMA 事務,從而觸發遠程節點中的批量完成。
- 基于事件的 CQ 管理:避免忙于等待 CQ 管理釋放 CPU 個周期。
以下關鍵優化提高了內存系統的效率:
- 在前端節點中不分段的 RDMA 傳輸:發送輸入張量時,通過在 RDMA 注冊的內存中填充輸入張量來避免主機內存副本。
- 正在 Accelerator 節點中聚合( CUDA )個 memcpys :通過盡可能多地收集連續內存中的張量,提高 GPU 內存復制和 PCIe 傳輸的效率。
每個供應商的 QP 實現詳細說明了支持的最大完成隊列條目數( CQE ),以及支持的最大 QP 條目大小。擴展每個 NIC 的 QP 數量以覆蓋延遲,同時保持足夠的事務以實現最大吞吐量,這一點很重要。
如果通過輪詢在短時間內從 CQ 處理大量事務,那么主機 CPU 也可能受到顯著的壓力。在這種情況下,基于事件的 CQ 管理以及通知數量的減少非常有幫助。通過盡可能多地聚集連續空間中的數據,并在可能的情況下,聚集 RDMA 注冊的內存空間中,最大限度地提高內存訪問效率。這對于實現最大性能至關重要。
總結
NVIDIA 平臺在其首次提交的網絡部門報告中表現出色,而我們在 MLPerf 推理:數據中心封閉部門的表現一直處于領先地位。這些結果是使用許多 NVIDIA 平臺功能實現的:
- NVIDIA A100 Tensor Core GPU
- NVIDIA DGX A100
- NVIDIA ConnectX-6 InfiniBand 網絡
- NVIDIA TensorRT
- GPUDirect RDMA
結果進一步證明了 NVIDIA AI 平臺 在基于行業標準、同行評審基準的真實數據中心部署中的有效性。
?