# RDMAネットワークアーキテクチャ基礎 - IB/RoCE 編 -
Navigation: [[../index|index]] | [[../overview|overview]]
## 概要
[[Yahoo Japan Corporation]] の社内勉強会資料を一部編集して公開した、RDMA・InfiniBand・RoCE の基礎技術解説資料(2023-06-02 公開)。Disclaimer(p.2)で「AI/ML インフラの背景となる大規模言語モデルの詳細や特定機器の configuration は扱わない」と明言し、DMA/RDMA の基本概念から InfiniBand Architecture(IBA)のサブネット・トランスポート・パケット構造、RoCEv1/v2、輻輳制御(PFC/ECN/DCQCN)、ロスレス構成の設計パターンまでを体系的に解説する。全57ページ中、Appendix(p.49-57)は Qingchun Song 氏の資料からの引用と明記されている(p.49)。
## 主要メッセージ
- **RDMA は DMA をリモートホストへ拡張した技術**であり、CPU を介さず NIC(RDMA Engine)がリモートメモリを直接読み書きすることでシステムスループット向上とネットワーク遅延削減を実現する(p.10)。従来の Socket Based TCP/IP スタックがカーネルを介したメモリコピーを要するのに対し、RDMA Based はカーネルバイパス・ゼロコピー・プロトコルオフロード・ワンサイドオペレーションの4点を価値として持つ(p.11-12)。
- **RDMA の物理・リンク層実装は InfiniBand・RoCE・iWARP の3種類**であり、InfiniBand は RDMA のために作られたプロトコルで最高性能だが専用HCA・専用スイッチが必要。RoCE は標準イーサネット上でRDMAを実現するがロスレスイーサネットを要する。iWARP はTCP/IPベースでロスレスイーサネットを要しないが、TCPをトランスポートに使う分RoCEよりやや低性能(p.14)。
- **InfiniBand は RDMA の基礎にあるプロトコルスタック**であり、RoCEv2 は InfiniBand Transport Protocol を UDP/IP の上に載せる形で構成される。RoCEv2 vs InfiniBand の違いは「IBファブリック要件の排除」「最小限の輻輳制御能力」である一方、RoCEv2 vs RoCEv1 は「L3フォワーディング対応」「ロスレスL2(PFC/ETS+ECN)の必須化」という違いを持つ(p.15)。
- **IBA はサブネット単位で構成され、Subnet Manager(SM)がトポロジ検知・アドレス割当・転送テーブル作成を一元的に担う**。Active な SM は1台のみで、停止時はプライオリティ順に引き継がれる(p.16-18)。IB は Fat-tree(Clos)・Dragonfly・Torus 等の多様なトポロジをサポートし、L4までハードウェア実装のカットスルー伝送を行う(p.19)。
- **IBA のパケットは LRH/GRH/BTH/ETH/Payload/ICRC/VCRC で構成**され、LRH(Local Routing Header)はサブネット内転送に必須、GRH(Global Routing Header)はサブネット間ルーティングにのみ使用される。ETH(Extended Transport Header)がRDMA操作に使用される(p.24-25)。通信相手の特定は、サブネット内ではLID(16bit、電源投入時にSMが揮発的に割当)、サブネット越えでは GID(128bit、IPv6アドレス体系を踏襲)を用いる(p.27-28)。
- **RDMA メモリモデルの中核は Queue Pair(QP)**であり、送信キュー(SQ)・受信キュー(RQ)・完了キュー(CQ)の3キューから構成される。QPはソケットのリングバッファモデルと異なりデータ自体を格納せず、HCAがアクセスするためのメタデータ(WQE: Work Queue Element)のみを保持する(p.32)。RDMA オペレーションは One-Side Operation(Write/Read、リモートOSに検知されない)と Atomic Operation(Fetch and Add/Compare and Swap)に分類され、RC(Reliable Connected)とRD(Reliable Datagram)のみが全操作をサポートする(p.33-34)。
- **RDMA の再送はハードウェア実装であり Go-Back-N が基本**。RoCEv2 は基本的に自動再送信(Go-Back-N)を採用するため、ロスレスネットワークが前提となる。ドロップが発生するとパフォーマンスが極度に低下するため、最近のRoCEv2では選択的再送信が実装された(p.38)。
- **ロスレスイーサネットは ETS(802.1Qaz)+ PFC(802.1Qbb)+ CN(802.1Qau) の3技術で実現**される。PFC は優先キュー単位のPAUSE(XOFF/XON)フレームでバッファ溢れを防ぐが、トラフィッククラス単位の停止のためHead-of-Line Blockingを生じ、輻輳が上流スイッチへ伝播する「輻輳ツリー」を形成しうる(p.39-43)。RDMAはパケットロスの影響がTCPよりはるかに大きいため、TCPのようにロス発生後に輻輳検出する方式が取れず、DCQCN(Microsoft・Mellanox共同開発)という専用の輻輳制御アルゴリズムを用いる(p.44-45)。
- **PFCとECNを全switch/NICで有効化する Lossless Configuration には、NIC受信輻輳・スイッチ輻輳・PFCの伝播という3つのリスクが伴う**。これに対し、NIC-スイッチ間のみ単方向PFCを使うSemi-lossless、PFCを排してEnd-to-End ECNのみとするLossy-1、PFC/ECNいずれも使わないLossy-2という段階的な緩和構成が並置される(p.49-52)。DSCP 26/PCP 3 を RoCE、DSCP 48/PCP 6(最高優先度)を CNP に割り当てる分類が推奨構成として示される(p.55)。
## 視覚的に重要な図表
**p.10 DMAとRDMAの基本概念**
![[_attachments/markunet-rdma-ib-roce/page-010.png]]
DMA(ローカルホスト内でCPUを介さずBuffer間コピー)を、RDMA では NIC(RDMA Engine)同士がネットワーク越しに直接メモリを読み書きする形へ拡張する対比を示す。
**p.14 RDMAの実装(Infiniband/RoCE/iWARP)**
![[_attachments/markunet-rdma-ib-roce/page-014.png]]
RDMA のハードウェア実装3種の特性(専用HCA要否、ロスレスイーサネット要否、性能)を対比する。
**p.15 RDMAの実装 - RDMA Software Stack**
![[_attachments/markunet-rdma-ib-roce/page-015.png]]
IBTA(青)とIEEE/IETF(緑)がそれぞれ定義する層を色分けし、InfiniBand/RoCEv1/RoCEv2/iWARPが共通のRDMA API(Verbs)の下でどの層を共有・分岐するかを示す。
**p.25 Infiniband Architecture - Packet Header**
![[_attachments/markunet-rdma-ib-roce/page-025.png]]
IBAパケットフォーマット(Start/End Delimiter, LRH, GRH, BTH, ETH, Payload, ICRC, VCRC)と各ヘッダの役割(必須/オプション)を対応付ける。
**p.30 Infiniband Architecture - トランスポート層(Transport Service)**
![[_attachments/markunet-rdma-ib-roce/page-030.png]]
Reliable/Unreliable × Connected/Datagram の2軸4象限でRC・UC・RD・UDを分類し、実運用で使われるのはRC(★)とUD(★)のみであることを示す。
**p.36 RoCEv1 vs RoCEv2**
![[_attachments/markunet-rdma-ib-roce/page-036.png]]
RoCE(v1)がEthernet上に直接IB GRHを載せるのに対し、RoCEv2はIP Header + UDP Headerを追加しL3ルーティング可能にする構造差を示す。
**p.45 Explicit Congestion Notification (ECN)**
![[_attachments/markunet-rdma-ib-roce/page-045.png]]
DCQCNのFast Recovery(1/2→1/4→1/8とレートを段階復帰)とECNマーキング確率(Kmin/Kmax/Pmax)、L2 PFC(Fast Brakes)とL3 ECN(Source Quench)がトラフィッククラスごとにトリガーされる関係を示す。
**p.50 Lossless Configuration**
![[_attachments/markunet-rdma-ib-roce/page-050.png]]
全switch/NICでECN+PFCを有効化した構成で、NIC受信輻輳・スイッチ輻輳・PFCの他スイッチ/NIC送信側への伝播という3つのリスクを列挙する。
## 概念・実体への接続
- [[RDMA]] — DMA/RDMAの基本概念、RDMA実装3種(IB/RoCE/iWARP)の比較、QP/WQEメモリモデル、One-Side/Atomic Operationの体系的解説
- [[InfiniBand]] — IBA(サブネット・Subnet Manager・HCA・LID/GID・パケットヘッダ・トランスポートサービス)の詳細
- [[RoCE設計課題]] — RoCEv1/v2の構造差、DCB(ETS+PFC+CN)、PFCのHead-of-Line Blocking、Lossless/Semi-lossless/Lossy構成の設計スペクトラム
- [[データセンター輻輳制御]] — TCP Incast、デバイスのオーバーサブスクリプションレート、ECMP不均衡というデータセンター輻輳要因の整理、DCQCNアルゴリズム
- [[Masayuki Kobayashi]] — 発表者
- [[Yahoo Japan Corporation]] — 公開元組織
## 限界・不確実点
- 発表イベント名は資料中に明記がない。p.2 のDisclaimerに「社内勉強会のスライドを一部編集して公開したもの」とのみ記載される。
- Appendix(p.49-57)は「Qingchun Song氏の資料より引用」(p.49)と明記されるが、引用元資料自体の書誌情報(発表年・発表媒体)はスライド内に記載がなく特定できない。
- 音声・動画・文字起こしは取得できず、口頭説明・質疑応答の内容は本ページに反映されていない。
- p.21 の HCA 図中の "FSB"(Front Side Bus)や p.9 の帯域幅・遅延計算式の出典は SNIA 2013 講演資料(David A. Deming)の引用であり、スライド上の値そのものは検証済みだが、原資料への遡及はしていない。
- p.46 の ETS 実験グラフ(Transmit Ratio 5:5 / 1:9 の Total Throughput)は具体的な実験環境(帯域・スイッチ機種等)の記載がなく、定性的な傾向(TCP/UDPがRoCEを preempt しうる)の提示にとどまる。