# Benchmarking GPUDirect RDMA on Modern Server Platforms > [!abstract] 概要 > NVIDIA Developer Blog(旧 Parallel Forall)による、2014年時点のサーバープラットフォーム上での GPUDirect RDMA 実測ベンチマーク記事である。 > ホスト-GPU間・GPU-GPU間の各データパスについて IB Verbs レベルのバンド幅・レイテンシを測定し、PCIeトポロジ(ソケット直結か PCIeスイッチ経由か)がGPUDirect RDMAの実効性能を大きく左右することを示す。 ## 記事情報 - 媒体: NVIDIA Developer Blog(旧 Parallel Forall) - 著者: Davide Rossetti - 公開日: 2014-10-07(2023-07-05 改訂) - 対象: GPUDirect RDMA、Infiniband FDR、Ivy Bridge/Sandy Bridge Xeon、Tesla K40/K20、Mellanox Connect-IB/ConnectX-3 ## 測定方法 Infiniband(IB)はHPCで一般的な低レイテンシ相互接続網であり、QDR(40Gb/s)やFDR(56Gb/s)などのリンク速度規格を持つ。IB Verbsが提供するRDMA機構により、リモートCPUを介さずにリモートノードのメモリへ直接アクセスできる(one-sided communication)。 測定にはIB Verbsレベルのベンチマークプログラムを3種使用した。レイテンシは`libibverbs-1.1.7`の`ibv_ud_pingpong`(`IBV_WR_SEND`・UDプロトコル)、バンド幅は`perftest-1.3.0`の`ib_rdma_bw`(`IBV_WR_RDMA_WRITE`・RCプロトコル)。これらはGPUメモリを対象にGPUDirect RDMAを使うよう改造されている。さらに`perftest-2.0`の`ib_write_bw`改造版で、Connect-IB HCAのPCIe x16 Gen3リンクのピーク性能を引き出す測定も行った。 測定条件はメッセージサイズ64KB(バンド幅)・4B(レイテンシ)、1000イテレーション、2ノード間をIBスイッチ経由で単一レール接続(特記時を除く)、GPU ECCは有効。ホスト-ホスト間レイテンシの基準値は`ibv_ud_pingpong`で1.3μsである。 ## 結果 ### I) ホストメモリ→GPUメモリ 送信(TX)側はホストメモリからデータを取得し、受信(RX)側のIBカードがGPUメモリへ直接書き込む。この経路ではバンド幅がFDRピーク(56Gb/s ≒ 6.1GB/s)に達し、レイテンシは1.7μs(ホスト-ホスト比+0.5μs)であった。 ![[_attachments/benchmarking-gpudirect-rdma-on-modern-server-platforms/fig01-host-to-gpu-ivybridge.jpg]] (記事内の図。Ivy Bridge Xeon上でK40とMellanox Connect-IBを単一FDRポートで接続し、ホストメモリからGPUメモリへ書き込む経路の構成とバンド幅6.1GB/s・レイテンシ1.7μsを示す。) デュアルレールでは9.8GB/s(ホスト-ホスト間のデュアルレール性能12.3GB/sに対し約20%低い)。この差はIvy Bridge Xeonのアーキテクチャ上の制約に起因し、後述のPCIeスイッチ構成での測定がこれを裏付ける。 ### II) GPUメモリ→ホストメモリ GPUメモリからの送信(read方向)ではバンド幅が3.4GB/sに制限され、FDRピーク(6.1GB/s)から大きく乖離する。K40のGPUクロックを875MHzへブースト(`nvidia-smi -i 0 -ac 3004,875`)すると3.7GB/sまで約10%改善する。記事はCPU統合PCIeホストインターフェースがin-flightトランザクション数を制限しており、read方向がレイテンシ律速になっていると推測している。GPUクロックを上げることでパス全体のレイテンシが下がり、バンド幅が改善するという説明である。 ### III) GPUメモリ→GPUメモリ 送受信双方にGPUメモリを使う経路では、バンド幅は上記II)と同じ水準(追加のボトルネックなし)。レイテンシはやや増加し、GPUメモリの読み出しに追加レイテンシがあること、およびping-pongテストがGPUメモリへ2回アクセスすることが要因と考えられる。 ### IV) Sandy Bridge Xeonとの比較 旧世代のSandy Bridge Xeon(K20搭載)ではpeer-to-peer read方向のバンド幅がさらに制限され、約800MB/sにとどまる。より広範なSandy Bridge/Westmere計測は別論文([DOI:10.1109/IPDPSW.2013.128](http://doi.ieeecomputersociety.org/10.1109/IPDPSW.2013.128))を参照するとしている。 ### V) ソケット間トラフィック(QPIボトルネック) デュアルソケット構成でIBアダプタと一方のGPUが同一ソケットに、もう一方のGPUが別ソケットに配置される場合を検証する。送信側GPUがソケット間QPIバスを跨いでデータを読み出すケースでは、バンド幅は約1.1GB/s(レイテンシは同水準)。 ![[_attachments/benchmarking-gpudirect-rdma-on-modern-server-platforms/fig05-gpu-to-gpu-tx-qpi.jpg]] (記事内の図。送信側HCAと送信元GPUが異なるソケットに配置された構成でバンド幅1.1GB/s・レイテンシ1.9μsを示す。) 逆方向、すなわちIBカードがQPIバスを跨いでGPUへ書き込むケースでは、ピーク性能はさらに低い250MB/sにとどまる。この方向ではレイテンシもやや悪化する(2.2μs)。 ![[_attachments/benchmarking-gpudirect-rdma-on-modern-server-platforms/fig06-gpu-to-gpu-rx-qpi.jpg]] (記事内の図。受信側HCAと受信先GPUが異なるソケットに配置された構成でバンド幅0.25GB/s・レイテンシ2.2μsを示す。write方向がread方向よりはるかに深刻なボトルネックであることが分かる。) ### VI) PCIeスイッチ構成 GPUとIBアダプタをライザーカード上のPCIeスイッチ(Avago/旧PLX Technology PEX 8747)経由で接続する構成(プラットフォームN.1)を検証する。ホスト→GPU方向は6GB/s超(FDRピーク近傍)。デュアルレール`ib_write_bw`ではホスト-ホスト間ピーク12.3GB/sに対し、ホスト→GPUで11.6GB/s、GPU→GPU(両側PCIeスイッチ経由)で6.9〜7.1GB/s(ピーク7.4GB/s)を達成した。 ![[_attachments/benchmarking-gpudirect-rdma-on-modern-server-platforms/fig11-bandwidth-vs-message-size.png]] (記事内の図。K40・デュアルレールFDR HCA・PCIeスイッチ経由の2ノード構成における、メッセージサイズ別のGPU-to-GPUバンド幅(平均・ピーク)。512KB付近まで7GB/s近辺で頭打ちになり、1MB以降は4.4GB/s程度に低下する。この低下はK40のL2キャッシュ容量(1536KB)にワーキングセットが近づくことに起因すると記事は推測している。) PCIeスイッチ経由の性能はホスト側プラットフォーム(CPU統合ルートコンプレックス)を経由する場合よりも高く、ボトルネックの主因がGPU設計ではなくホストプラットフォーム側のPCIeアーキテクチャにあることを示す。 ## 結論 GPUDirect RDMAは一貫して2μs未満のレイテンシを実現し、ホストメモリへの同期/非同期ステージング(`cudaMemcpy`で8μs、`cudaMemcpyAsync`で9μs)経由でInfinibandへ送る方式より大幅に低レイテンシである。ステージング方式の推定レイテンシは2×8+1.3≒17μs(コピーコストを2回払う)であるのに対し、GPUDirect RDMAは1.9μs程度と見積もられる。単純な性能モデルでは、Ivy Bridge Xeon上でメッセージサイズ400〜500KBまではGPUDirect RDMAがステージング方式より高速である。 | Platform | Host-to-Host | Host-to-GPU | GPU-to-Host | GPU-to-GPU | | --- | --- | --- | --- | --- | | Ivy Bridge | 12.3 | 9.8 | 3.7 | 3.7 | | PCIe Switch (PLX) | 12.3 | 11.6 | 7 | 7 | (単位: GB/s。デュアルレールFDR構成での測定値。) 一方でGPUDirect RDMAのバンド幅性能はPCIeアーキテクチャのボトルネック、PCIeバストポロジ、NUMA的な効果の影響を受けやすい。Sandy Bridge Xeonは特に制限が厳しい(800MB/s)。逆にWestmere Xeonのpeer-to-peer read性能(1.5GB/s、記事内グラフなし)はSandy Bridgeより良好であり、世代間で単調な改善ではないと記事は指摘する。Ivy Bridge Xeonではwrite方向9.8GB/s(ホストメモリ12.3GB/s)に対し、read方向は3.4〜3.7GB/sとかなり低い。これらの制限は主にホストプラットフォーム側に起因し、GPUとIBアダプタをPCIeスイッチに直結する実験がそれを裏付ける(PCIeスイッチ経由では単一FDRポートのピーク6.1GB/sを上回り、write側はホスト-ホスト間ピークに近い11.6GB/s、read側も約7GB/sに達する)。 ソケット間バス(本記事ではQPI)を跨ぐ通信は可能だが、特に一方向(write: 250MB/s vs read: 1.1GB/s)で著しいボトルネックを生む。記事は`nvidia-smi topo -m`(ドライバr340以降)でシステムのPCIeトポロジとGPU-IB間の接続経路(`PIX`/`PHB`/`PXB`/`SOC`)を確認することを推奨している。 ## 実験環境 - サーバー: Super Micro 2U SYS-2027GR-TRFH(PLX Technology PEX 8747 PCIeスイッチ搭載ライザーカード)、Super Micro 1U SYS-1027GR-TRF - CPU: Ivy Bridge Xeon E5-2690 v2 @ 3.00GHz、Sandy Bridge Xeon(一部測定のみ) - GPU: NVIDIA Tesla K40m(GK110B)、NVIDIA Tesla K20(GK110、Sandy Bridge測定のみ) - Infiniband: Mellanox デュアルポートConnect-IB(PCIe Gen3 x16、FDRポート2基)、Mellanox シングルポートConnectX-3(Sandy Bridge測定のみ)、Mellanox FDRスイッチ - ソフトウェア: CUDA 6.0、NVIDIA Display Driver r331、Mellanox OFED 2.2 ## 関連 - エンティティ: [[Davide Rossetti]] / [[NVIDIA]] / [[Mellanox]] / [[MVAPICH2]] / [[Open MPI]] - concept: [[GPUDirect RDMA]] / [[RDMA]] / [[InfiniBand]] / [[非対称NUMAインターコネクト]] ## 出典 - 原文: [[.raw/articles/benchmarking-gpudirect-rdma-on-modern-server-platforms-2026-09-05.md]] - NVIDIA Developer Blog: https://developer.nvidia.com/blog/benchmarking-gpudirect-rdma-on-modern-server-platforms/