# nvidia-peermem ## 定義 `nvidia-peermem` は、[[NVIDIA]] GPUドライバパッケージが提供するLinuxカーネルモジュールであり、Mellanox/[[NVIDIA]] InfiniBand系HCA(Host Channel Adapter)に対してGPUビデオメモリへの直接peer-to-peer read/writeアクセスを付与する。ConnectX-3 VPI以降のアダプタで動作し、InfiniBandとRoCE(RDMA over Converged Ethernet)の双方をサポートする。CUDA 11.4で導入された。[[GPUDirect RDMA]] を実際にInfiniBandファブリック上で有効化する、カーネル空間側の実装コンポーネントに当たる。 ## GPUDirect RDMAとの位置付け - NVIDIA OFED(MLNX_OFED)がInfiniBand CoreとPeer Memory Client(GPU等)向けのAPIを提供し、`nvidia-peermem` はこのAPIを介してGPUをInfiniBandサブシステムへ登録する。 - ロードには `modprobe nvidia-peermem`(root権限)を用いる。カーネル側にRDMA peer memoryサポート(カーネルパッチまたはMLNX_OFED)が前提条件。 - GPUドライバがMLNX_OFEDより先にインストールされている場合、`nvidia-peermem` がMLNX_OFED提供のRDMA APIでコンパイルされないため、GPUドライバの再インストールが必要になる。 ## 前身 nv_peer_mem との関係 GitHubコミュニティが提供していた `nv_peer_mem` モジュールと機能が重複する。両者は同時ロードを想定しておらず、`nvidia-peermem` を使う場合は `nv_peer_mem` サービスの停止(`service nv_peer_mem stop`)・モジュールのアンロード(`rmmod nv_peer_mem`)・パッケージのアンインストール(`dpkg -P nvidia-peer-memory` 等)が必要になる。 ## 未編纂の観察 - CUDA 11.4時点では `nvidia-peermem` を自動ロードするサービスが存在せず、手動での `modprobe` が必要という既知の制約がある([[@2026__NVIDIA__GPUDirect RDMA]])。 ## 未解決の問い - `nvidia-peermem` は [[@2023__NSDI__SRNIC - A Scalable Architecture for RDMA NICs|SRNIC]] のような独自RDMA NICアーキテクチャや、Broadcom/AMD等の非Mellanox系HCAとどう関係するか(peer memory client APIの一般性の範囲)。 ## 関連 - 概念: [[GPUDirect RDMA]]、[[RDMA]] - エンティティ: [[NVIDIA]] ## 出典 - [[@2026__NVIDIA__GPUDirect RDMA]]