## Transcript
9. ### [©2022 Yahoo Japan Corporation All rights reserved. RTT = 伝送遅延](https://files.speakerdeck.com/presentations/2d57a8820e654bde886eed030fc3cd44/slide_8.jpg "HPCネットワーク基礎(RDMA/Infiniband/RoCE編) ©2022 Yahoo Japan Corporation All rights reserv...")
\+ 伝搬遅延 + キューイング遅延 + 処理遅延 伝送遅延 出⼒ポートからパケットを送出するのにかかる時間(広帯域IFほど遅延が短い) 𝐷𝑒𝑙𝑎𝑦=𝐿/𝐵𝑎𝑛𝑑𝑤𝑖𝑑𝑡h : Lは送信するパケットのビット数 伝搬遅延 パケットが通信経路上を伝わるのにかかる時間 𝐷𝑒𝑙𝑎𝑦=𝐷𝑖𝑠𝑡𝑎𝑛𝑐𝑒/𝑉𝑒𝑙𝑜𝑐𝑖𝑡𝑦 : Distanceは伝送距離, Velocityは伝送媒体の速度(光ファイバは2.1\*10^8 m/s) キューイング遅延 パケットをバッファに保持している時間(公式がないため計算困難) 処理遅延 パケットの送受信処理にかかる時間、パケットをTCP/IP層に⼿渡す時のメモリコピーなどで発⽣する遅延 帯域幅と遅延 – コンピュータネットワークにおける性能指標 - 9
13. ### [©2022 Yahoo Japan Corporation All rights reserved. RDMA Architecture 13](https://files.speakerdeck.com/presentations/2d57a8820e654bde886eed030fc3cd44/slide_12.jpg "HPCネットワーク基礎(RDMA/Infiniband/RoCE編) ©2022 Yahoo Japan Corporation All rights reserv...")
18. ### [©2022 Yahoo Japan Corporation All rights reserved. Infiniband Architecture –](https://files.speakerdeck.com/presentations/2d57a8820e654bde886eed030fc3cd44/slide_17.jpg "HPCネットワーク基礎(RDMA/Infiniband/RoCE編) ©2022 Yahoo Japan Corporation All rights reserv...")
Subnet Manager - 18 IBA Networkには最低1台のSubnet Manager(SM)が必要 トポロジ検知、アドレス割当、転送テーブル作成などの管理機能全般はSubnet Managerが担う エンドノードとスイッチでどれがSMになっても良いが、複数設定してもActiveになれるのは1台のみ ActiveなSMが停⽌すると、プライオリティ順にSMが引き継がれる 最も信頼性の⾼いデバイスをSMに設定することが望ましい SMの機能があるスイッチがManagedスイッチと呼ばれる Unmanagedスイッチには物理管理ポートも存在しない IUUQTXXXTOJBPSHTJUFTEFGBVMUGJMFTGJMFTGJMFT4%$QSFTFOUBUJPOT)BSEXBSF%BWJE%FNJOH@\*OGJOJCBOE@"SDIJUFDUVSBM@0WFSWJFXQEG
25. ### [©2022 Yahoo Japan Corporation All rights reserved. Infiniband Architecture -](https://files.speakerdeck.com/presentations/2d57a8820e654bde886eed030fc3cd44/slide_24.jpg "HPCネットワーク基礎(RDMA/Infiniband/RoCE編) ©2022 Yahoo Japan Corporation All rights reserv...")
Packet Header - 25 Infiniband パケットフォーマット Start/End Delimiter パケットの開始/終了を識別する特殊⽂字 LRH (Local Routing Header) 必須、サブネット内転送に使⽤ GRH (Global Routing Header) オプション、サブネット間ルーティングに使⽤ サブネット内転送では付与されない BTH (Base Transport Header) 必須、QPの制御に使⽤ ETH (Extended Transport Header) RDMA操作に使⽤ ICRC/VCRC エラー訂正に使⽤ IUUQTXXXJOpOJCBOEUBPSHJOpOJCBOESPBENBQ
26. ### [©2022 Yahoo Japan Corporation All rights reserved. Infiniband Architecture –](https://files.speakerdeck.com/presentations/2d57a8820e654bde886eed030fc3cd44/slide_25.jpg "HPCネットワーク基礎(RDMA/Infiniband/RoCE編) ©2022 Yahoo Japan Corporation All rights reserv...")
リンク層 - 26 Virtual Lane(VL) 単⼀の物理リンク上で複数の独⽴したデータストリームを個別に制御 異なるアプリケーションのトラフィックが相互に影響を与えることは避けたい 各チャネルに個別のService Level(SL)が設定され、相互に影響を受けない VLは最⼤16本: データ⽤15本 + 管理⽤1本 16段階のSLをVL毎にマッピングする IUUQTXXXTOJBPSHTJUFTEFGBVMUGJMFTGJMFTGJMFT4%$QSFTFOUBUJPOT)BSEXBSF%BWJE%FNJOH@\*OGJOJCBOE@"SDIJUFDUVSBM@0WFSWJFXQEG
27. ### [©2022 Yahoo Japan Corporation All rights reserved. Infiniband Architecture –](https://files.speakerdeck.com/presentations/2d57a8820e654bde886eed030fc3cd44/slide_26.jpg "HPCネットワーク基礎(RDMA/Infiniband/RoCE編) ©2022 Yahoo Japan Corporation All rights reserv...")
リンク層 - 27 Local ID (LID) IBはLIDと呼ばれる16bitの識別⼦で通信相⼿を特定する(サブネット内でのみ有効) LIDは必須で電源を⼊れるとSubnet Managerが⾃動で割り当て(揮発性) HCAには各ポートに、スイッチにはポート0(内部の特殊ポート)にのみLIDが割り当てられる 送信元LID(SLID)/宛先LID(DLID)はLRHに格納されサブネット内ルーティングに使⽤される 通常のパケット転送ではスイッチノードのLIDが使⽤されるためポートのLIDは重要ではない スイッチの各ポートのLIDはトポロジの観点で重要 IUUQTEMBDNPSHEPJ
29. ### [©2022 Yahoo Japan Corporation All rights reserved. Infiniband Architecture –](https://files.speakerdeck.com/presentations/2d57a8820e654bde886eed030fc3cd44/slide_28.jpg "HPCネットワーク基礎(RDMA/Infiniband/RoCE編) ©2022 Yahoo Japan Corporation All rights reserv...")
トランスポート層 - 29 MTU IBは最⼤2GBのメッセージをMTUサイズに分割して送信 パス上の最⼩値が採⽤される 256(最⼩), 512, 1024, 2048, 4096(最⼤)Bytesをサポート ジッタの安定性や効率の経験則から最適値を設定する Transport Service (信頼性) TCP/UDPに相当する4つのサービスタイプが、信頼性と通信⽅式の組み合わせで規定されている 再送制御・順序制御のある Reliable と信頼性の無い Unreliable 1対1通信の Connection と 多対多の Datagram IUUQTEMBDNPSHEPJ
32. ### [©2022 Yahoo Japan Corporation All rights reserved. RDMA メモリモデル 32](https://files.speakerdeck.com/presentations/2d57a8820e654bde886eed030fc3cd44/slide_31.jpg "HPCネットワーク基礎(RDMA/Infiniband/RoCE編) ©2022 Yahoo Japan Corporation All rights reserv...")
QP (Queue Pair) TCP/UDPのソケットに相当するもので、IB RDMAの中核となるメモリモデル RMDAは3つのキュー 送信キュー(SQ), 受信キュー(RQ), 完了キュー(CQ) に基づいている SQとRQは常にペアで作成されるため Queue Pair と呼ばれる QPはソケットのリングバッファモデルと異なり、データそのものを格納しない HCAが直接アクセスするためのデータの位置やサイズなどの情報が⼊ったメタデータ(WQE)格納される CQはメッセージが処理されたことをユーザーに通知するために使⽤される
33. ### [©2022 Yahoo Japan Corporation All rights reserved. RDMA Operations 33](https://files.speakerdeck.com/presentations/2d57a8820e654bde886eed030fc3cd44/slide_32.jpg "HPCネットワーク基礎(RDMA/Infiniband/RoCE編) ©2022 Yahoo Japan Corporation All rights reserv...")
One-Side Operation (⼀⽅向性操作) リモートデバイスのOSに操作を検知されない RDMA Write: リモートメモリへの書き込み、ターゲットCPUの介⼊なし RDMA Read: リモートメモリからの読み込み、ターゲットCPUの介⼊なし Push Pull Atomic Operation (不可分操作) Fetch and Add: リモートメモリの位置を更新する Compare and Swap:リモートメモリの内容⽐較と値の⼊れ替え Fetch and Add Compare and Swap IUUQTXXXTOJBPSHTJUFTEFGBVMUpMFTpMFTpMFT4%$QSFTFOUBUJPOT)BSEXBSF%BWJE%FNJOH@\*OpOJCBOE@"SDIJUFDUVSBM@0WFSWJFXQEG
39. ### [©2022 Yahoo Japan Corporation All rights reserved. Data Center Bridging](https://files.speakerdeck.com/presentations/2d57a8820e654bde886eed030fc3cd44/slide_38.jpg "HPCネットワーク基礎(RDMA/Infiniband/RoCE編) ©2022 Yahoo Japan Corporation All rights reserv...")
(DCB) 39 ロスレスイーサネットは Data Center Bridging(DCB) と呼ばれる3つの技術で実現される Lossless Configuration = ETS + PFC + CN 802.1Qaz Enhanced Transmission Selection (ETS) Priority Group単位の帯域保証付き優先キューイングと情報交換プロトコル(DCBX) 802.1Qbb Priority-based Flow Control (PFC)︓ 優先キューごとに PAUSE(XOFF/XON) フレームの送信でバッファ溢れを防⽌ 802.1Qau Congestion Notification (CN) IPヘッダのECN (Explicit Congestion Notification)と、 BTヘッダのCNP (Congestion Notification Packet)を組み合わせて送信元に輻輳を通知 輻輳を発⽣元から緩和
40. ### [©2022 Yahoo Japan Corporation All rights reserved. Priority-based Flow Control](https://files.speakerdeck.com/presentations/2d57a8820e654bde886eed030fc3cd44/slide_39.jpg "HPCネットワーク基礎(RDMA/Infiniband/RoCE編) ©2022 Yahoo Japan Corporation All rights reserv...")
(PFC) 40 Global Pause Frame 最古のイーサネットフロー制御機構(IEEE 802.3X) 受信キューの深さが閾値を超えると、XOFF を送信側に送信 送信側は XON を受信するまですべての送信を⼀時停⽌ トラフィックフローを区別しないため、⾼優先度フローも停⽌ PFC Pause Frame パケットを0~7の優先度に分類(IEEE 802.1Qbb) 各ポートにには優先度に対応する8個のキューが存在 異なる優先度のパケットは異なるキューに格納 キュー毎に XOFF/XON を⾏う IUUQTQDOBOPHPSHTUBUJDQVCMJTIFENFFUJOHT/"/0(@$BSEPOB@5PXBSET@)ZQFSTDBMF@)JHI@WQEG
47. ### [©2022 Yahoo Japan Corporation All rights reserved. まとめ 47 •](https://files.speakerdeck.com/presentations/2d57a8820e654bde886eed030fc3cd44/slide_46.jpg "HPCネットワーク基礎(RDMA/Infiniband/RoCE編) ©2022 Yahoo Japan Corporation All rights reserv...")
これからの未来、データセンターがHPCインフラとして構築されるようになる • RDMAがHPCネットワークの要素技術であり、Infinibandが⽣まれた • Infinibandはトランスポート層までハードウェア処理のため圧倒的に⾼いパフォーマンスを出す • RDMAをイーサネット上で実現する技術としてRoCEがある • RoCEではロスレスイーサネットに依存するため、⾼度で複雑な輻輳・フロー制御・QoSが必要 • ⾃分たちの運⽤にあったパラメータチューニングを⾏う必要がある(極めて難しい)
50. ### [Lossless Configura.on Enable ECN and PFC in all switch and](https://files.speakerdeck.com/presentations/2d57a8820e654bde886eed030fc3cd44/slide_49.jpg "HPCネットワーク基礎(RDMA/Infiniband/RoCE編) Lossless Configura.on
Enable ECN and PFC in all ...")
NIC • NIC receive (Rx) congestion may occur 1. NIC cache misses 2. PCI bottleneck • Switch congestion may occur • Many to one communication • PFC may spread congestion to other switches • PFC may spread congestion to NIC transmit(Tx) side • PCIe congestion control • Use and optimize ECN to avoid the PFC • Buffer optimization in en-gress port • Faster ECN mark in switch and faster response for CNP in NIC PFC + ECN switch NIC PFC + ECN PFC + ECN PFC + ECN
51. ### [Semi-lossless Configura.on Address The Problem In Lossless: • NIC receive](https://files.speakerdeck.com/presentations/2d57a8820e654bde886eed030fc3cd44/slide_50.jpg "HPCネットワーク基礎(RDMA/Infiniband/RoCE編) Semi-lossless Configura.on
Address The Problem I...")
(Rx) congestion may occur • NIC cache misses • PCI bottleneck • PFC for NIC Congestion • NIC Rx congestion is propagated to the switch • Switch buffer absorbs the backpressure, congestion marked with ECN • PFC may spread congestion to other switches • Semi-Lossless network solves NIC congestion and prevents congestion spreading • NIC to switch: Uni-directional PFC • Switch to switch: no PFC No PFC No PFC PFC from NIC to switch No PFC from switch to NIC PFC from NIC to switch No PFC from switch to NIC switch NIC
52. ### [Lossy-1 Configura.on No PFC, End to End ECN only: •](https://files.speakerdeck.com/presentations/2d57a8820e654bde886eed030fc3cd44/slide_51.jpg "HPCネットワーク基礎(RDMA/Infiniband/RoCE編) Lossy-1 Configura.on
No PFC, End to End ECN only...")
No PFC spread • Packet drop may happen • Selective Repeat • Optimize ECN • Buffer optimization in en-gress port • Fast Congestion Notification o Packets marked as they leave queue o Reduces average queue depth • Faster CNP creation in NIC receive • Give the highest priority for CNP • Faster reaction for CNP in NIC transmit No PFC, ECN Only switch NIC No PFC, ECN Only No PFC, ECN Only No PFC, ECN Only
54. ### [Traffic Classifica.on • Required for setting: • QoS • Buffer](https://files.speakerdeck.com/presentations/2d57a8820e654bde886eed030fc3cd44/slide_53.jpg "HPCネットワーク基礎(RDMA/Infiniband/RoCE編) Traffic Classifica.on
• Required for setting:
• Qo...")
management • PFC • Indicated by • DSCP (Differentiated Service Code Point, layer 3, in IP header). • PCP (Priority Code Point, layer2, in Vlan tag). • DSCP is the recommended method. • Set by trust command. TOS (RF791) DSCP (RFC 2474) Precedence delay Throu ghput Reliabi lity Spare TOS: Class selector ECN DSCP: 0b000 payload IP header IP header Ether Type CRC PCP .1Q S. MAC VLAD TPID VLAN CFI & VID 1 Byte 3 bits Priority 3 bits D. MAC Layer2 Layer3
56. ### [Host Ingress QoS Model • Packets are classified into internal](https://files.speakerdeck.com/presentations/2d57a8820e654bde886eed030fc3cd44/slide_55.jpg "HPCネットワーク基礎(RDMA/Infiniband/RoCE編) Host Ingress QoS Model
• Packets are classified ...")
priority according to the packets priority: • PCP – Priority Code Point, layer 2 priority, located in the VLAN tag • DSCP – DifferenNated Service Code Point, layer 3 priority, located in the IP header • Internal prioriNes are mapped to buffer(s) • Buffer and prioriNes can be configured as • lossy – when buffer is full, packets will be dropped • Lossless – when buffer is almost full, a pause will be sent to the transmiSer to stop transmission • Can be either based on global pause or priority flow control (PFC) • In egress direcNon the device conform the packet priority • Ethernet • Trust PCP – according to WQE • Trust DSCP – according to TCLASS • UD • Trust PCP – according to WQE • Trust DSCP – according to TCLASS • RC • Trust PCP – according to QP’s eth prio • Trust DSCP – according to QP’s TCLASS
57. ### [Switch Priority Classifica.on DSCP (IP header) (0-63) PCP (VLAN header)](https://files.speakerdeck.com/presentations/2d57a8820e654bde886eed030fc3cd44/slide_56.jpg "HPCネットワーク基礎(RDMA/Infiniband/RoCE編) Switch Priority Classifica.on
DSCP (IP header)
(...")
(0-7) Switch-priority (0-7) Priority Group (PG) (Ingress Buffer) (0-7) Traffic Class (TC) (Egress Queue) (0-7) Default mapping: All to 0 Default mapping: 3 MSB = priority Default mapping: PCP = priority Default mapping: priority = traffic class Used for: ETS ConfiguraNon: WRR, strict ECN: min/max threshold Shared buffer: alpha, reserved Used for: Flow Control: xoff, xon Shared buffer: alpha, reserved