# PCIe性能 ## 定義 PCIe(PCI Express)は、現代のサーバにおけるデファクトのI/O相互接続であり、物理層・データリンク層(DLL)・トランザクション層の3層からなるポイントツーポイントのシリアル相互接続として動作する。PCIe性能とは、この物理的なリンク帯域(例: Gen 3 x8で62.96Gb/s)から、DLLのフロー制御・確認応答オーバーヘッド、トランザクション層パケット(TLP)のヘッダオーバーヘッド、Maximum Payload Size(MPS)やMaximum Read Request Size(MRRS)といったネゴシエーションパラメータ、さらにホスト側のPCIeルートコンプレックス実装(NUMA配置、Intel Data Direct I/O(DDIO)によるキャッシュ統合、IOMMUによるアドレス変換とTLBミス)までを含めた、実際に end host のネットワーキングアプリケーションが得られる実効的なスループット・レイテンシを指す。(Source: [[@2018__SIGCOMM__Understanding PCIe performance for end host networking]]) ## 横断的知見 - [[@2018__SIGCOMM__Understanding PCIe performance for end host networking]] はNIC↔ホストメモリ間(end host networking)のPCIe性能を、[[@2016__SC__A PCIe Congestion-Aware Performance Model for Densely Populated Accelerator Servers]] はGPU↔GPU間(P2P、アクセラレータ間)のPCIe性能を対象としており、両者は「同じPCIeファブリック上でも、通信パターンとボトルネック要因が全く異なる」ことを示す好対照をなす。前者はTLPヘッダオーバーヘッド・DDIO・IOMMU TLBミスといった「単一フローのオーバーヘッド」を主因とするのに対し、後者は「複数フロー間のポートアービトレーション・フロー制御・HOLブロッキング」という輻輳系の要因を主因とする。単一デバイス性能モデル(前者)と複数デバイス間の輻輳モデル(後者)は、PCIe性能を理解するうえで相補的な2つのレイヤーである。 - 両ソースに共通するのは「PCIeスイッチ・ルートコンプレックスの内部実装がベンダ固有でブラックボックスであり、実測とモデリングでしか性能特性を明らかにできない」という方法論上の制約である。[[@2018__SIGCOMM__Understanding PCIe performance for end host networking]] はIntel Xeonのルートコンプレックス実装差(DDIO・IOMMU)を、[[@2016__SC__A PCIe Congestion-Aware Performance Model for Densely Populated Accelerator Servers]] はPLX製スイッチのアービトレーションポリシーを、いずれも公開仕様(PCIe Base Specification)からは導出できずに経験的パラメータ(τなど)で補っている。 - [[@2016__SC__A PCIe Congestion-Aware Performance Model for Densely Populated Accelerator Servers]] が明らかにした「ルートコンプレックスを通過する通信は、通過しない通信に比べて小さいパケットサイズを強いられ理論帯域効率が76%に低下する」という知見は、[[@2018__SIGCOMM__Understanding PCIe performance for end host networking]] が指摘するMaximum Payload Size(MPS)ネゴシエーションのオーバーヘッドと同根の現象である可能性が高い。両ソースとも「パケット/パイロードサイズが実効帯域を左右する」ことを別々の切り口(単一フローのMPS設定 vs 複数フローのルートコンプレックス通過ペナルティ)から裏付けている。 - **「近傍アクセスが遠隔アクセスより遅い」というanti-locality NUMA効果は、既存2ソースのモデルのどちらにも明示的に含まれていない第3の要因である**: [[@2020__TPDS__Evaluating Modern GPU Interconnect - PCIe, NVLink, NV-SLI, NVSwitch and GPUDirect]]はDGX-1・DGX-2でのGPU間PCIe P2P双方向帯域を実測し、同一PCIeスイッチを共有する近傍GPU間の帯域が遠隔GPU間より低いという、直感に反する「anti-locality」効果を発見した(PCIeスイッチチップセット上の不均衡な物理信号経路に起因すると推測)。この現象は、[[@2016__SC__A PCIe Congestion-Aware Performance Model for Densely Populated Accelerator Servers]]が定式化するポートアービトレーション・HOLブロッキングの輻輳モデルとも、[[@2018__SIGCOMM__Understanding PCIe performance for end host networking]]が扱う単一フローのMPS/DDIO/IOMMUオーバーヘッドモデルとも異なる第3の要因系列であり、「PCIe性能はチップセット内部の物理配線トポロジそのものにも左右される」という、両モデルでは捕捉されないハードウェア実装依存の変動要因を追加する。またこの効果は双方向帯域でのみ観測されレイテンシでは観測されない点も特徴的である。(Source: [[@2020__TPDS__Evaluating Modern GPU Interconnect - PCIe, NVLink, NV-SLI, NVSwitch and GPUDirect]]) - **GPU間P2P通信でもメッセージサイズによる効率変動は他の2ソースと定性的に一致する**: [[@2020__TPDS__Evaluating Modern GPU Interconnect - PCIe, NVLink, NV-SLI, NVSwitch and GPUDirect]]はPCIe単方向帯域が約4MBで飽和し始めると報告し、[[@2018__SIGCOMM__Understanding PCIe performance for end host networking]]のMPS/MRRSネゴシエーションによる小メッセージオーバーヘッドや[[@2016__SC__A PCIe Congestion-Aware Performance Model for Densely Populated Accelerator Servers]]のパケットサイズ依存の理論帯域効率低下(76%)と同様に、「小さいメッセージ・パケットではPCIeの実効帯域が理論値を大きく下回る」という共通パターンを示す。3ソースはいずれも独立に同じ質的傾向(小メッセージほど不利)を確認しており、原因(輻輳・単一フローオーバーヘッド・チップセット配線)は異なってもPCIeの構造的特性として収束している。(Source: [[@2020__TPDS__Evaluating Modern GPU Interconnect - PCIe, NVLink, NV-SLI, NVSwitch and GPUDirect]], [[@2018__SIGCOMM__Understanding PCIe performance for end host networking]], [[@2016__SC__A PCIe Congestion-Aware Performance Model for Densely Populated Accelerator Servers]]) - **ルートコンプレックス通過による帯域劣化は、輻輳モデルの理論値と本番RDMAサーバの実測値の両方で確認される**: [[@2016__SC__A PCIe Congestion-Aware Performance Model for Densely Populated Accelerator Servers]]は「ルートコンプレックスを通過する通信は理論帯域効率が76%に低下する」とモデル化するが、[[@2024__TON__Diagnosing End-Host Network Bottlenecks in RDMA Servers]](Hostping)は本番RDMAサーバでのGDR(GPU Direct RDMA)実測により、RNICとGPU間の通信経路がCPUルートコンプレックスを跨ぐと(単一PCIeスイッチ経由の距離❶からルートコンプレックス経由の距離❸へ)ホストレイテンシが1.0µsから2.2µsへ増加し、スループットが195.0Gbpsから125.5Gbpsへ(約36%)低下すると報告する。理論モデル(輻輳モデルによる76%効率)と本番実測(約64%まで低下)は同じ「ルートコンプレックス通過ペナルティ」という現象を、輻輳シミュレーションとエンドツーエンドのRDMA通信という異なる測定手法で裏付けている。さらにUPI/QPI越しの遠隔ソケットまで跨ぐ距離❹では116.4Gbpsまで低下し、Hostpingはこれを「わずか1.4µsの追加レイテンシが約40%のスループット低下をもたらす」と定式化しており、PCIe性能モデルにおけるレイテンシとスループットの直接的なトレードオフ関係を、RDMA固有のワークロード(outstanding read request TLP数の上限)の文脈で再確認している。(Source: [[@2024__TON__Diagnosing End-Host Network Bottlenecks in RDMA Servers]], [[@2016__SC__A PCIe Congestion-Aware Performance Model for Densely Populated Accelerator Servers]]) ## 未解決の問い - AMD・ARM64・Powerベースのサーバでは、PCIeルートコンプレックスの実装がIntel Xeonとどう異なり、NUMA/DDIO/IOMMUの影響はどう変化するか(論文が明示的に将来課題としている)。 - 単一サーバに複数の高性能PCIeデバイスを搭載した構成(データセンターで一般的)で、IOMMUのIO-TLBエントリはデバイス間で共有されるか。共有される場合、マルチテナント環境でのPCIe性能分離はどう設計すべきか。 - PCIe Gen 4/Gen 5世代でも、Gen 3で観測されたのと同様のノコギリ歯状のTLPオーバーヘッドパターンやDDIO・IOMMUの挙動は再現されるか。 - Xeon E3系で観測された、E5系に比べて著しく大きいPCIeレイテンシの分散(99.9パーセンタイルが中央値の10倍)の根本原因は何か(論文は隠れた省電力モードを疑うが未確定のまま残している)。 - [[@2016__SC__A PCIe Congestion-Aware Performance Model for Densely Populated Accelerator Servers]] の輻輳モデル(ポートアービトレーション・HOLブロッキング)と、[[@2018__SIGCOMM__Understanding PCIe performance for end host networking]] の単一フローオーバーヘッドモデル(MPS・DDIO・IOMMU)を統合した性能モデルは存在するか。NIC↔ホスト間通信とGPU↔GPU間P2P通信が同じPCIeスイッチ配下で競合する現代のGPUサーバ(NVLink非搭載構成やPCIe Gen5世代のマルチGPUノード)では、両方の要因が同時に効くはずだが、そのような統合モデルは本 concept にはまだ集約されていない。 - 本論文(2016年、K80世代・PLXスイッチ)で同定されたτ(ルートコンプレックス通過ペナルティ)やポートアービトレーションのパラメータは、PCIe Gen 4/5世代の新しいスイッチ(Broadcom PEX等)やNVSwitch併用構成でも同様の値・挙動を示すか。 - PCIeのanti-locality効果([[@2020__TPDS__Evaluating Modern GPU Interconnect - PCIe, NVLink, NV-SLI, NVSwitch and GPUDirect]])の根本原因は、[[@2016__SC__A PCIe Congestion-Aware Performance Model for Densely Populated Accelerator Servers]]のポートアービトレーションモデル(上流:均等配分、下流:重み付きラウンドロビン)で定量的に説明できるか。両者はいずれもPLX/Broadcom系スイッチのアービトレーション実装を扱っており、統合できる可能性がある。 ## 関連 - ソース: [[@2018__SIGCOMM__Understanding PCIe performance for end host networking]] / [[@2016__SC__A PCIe Congestion-Aware Performance Model for Densely Populated Accelerator Servers]] / [[@2020__TPDS__Evaluating Modern GPU Interconnect - PCIe, NVLink, NV-SLI, NVSwitch and GPUDirect]] / [[@2024__TON__Diagnosing End-Host Network Bottlenecks in RDMA Servers]] - エンティティ: [[Rolf Neugebauer]] / [[Andrew W. Moore]] / [[Gianni Antichi]] / [[Netronome]] / [[NetFPGA]] / [[Maxime Martinasso]] / [[Torsten Hoefler]] / [[Ang Li (PNNL)]] - 関連 concept: [[RDMA]] / [[ホスト内ネットワークボトルネック]] / [[カーネルバイパスネットワーキング]] / [[NUMAメモリ配置]] / [[NVLink]] ## 出典 - [[@2018__SIGCOMM__Understanding PCIe performance for end host networking]] - [[@2016__SC__A PCIe Congestion-Aware Performance Model for Densely Populated Accelerator Servers]] - [[@2020__TPDS__Evaluating Modern GPU Interconnect - PCIe, NVLink, NV-SLI, NVSwitch and GPUDirect]] - [[@2024__TON__Diagnosing End-Host Network Bottlenecks in RDMA Servers]]