# dmaplane [[Marco Graziano]]([[Graziano Labs Corp]])が開発した Linux カーネルモジュール。AI のホスト側データパスにおいて transport 層が暗黙に前提としているバッファの確保・配置・共有・登録・completion 安全性・ティアダウン安全性を、「バッファオーケストレーション」として明示化するカーネルレイヤーである。`/dev/dmaplane` 経由で ioctl・mmap・任意の dma-buf ファイルディスクリプタによる安定した UAPI を公開する。コード: https://github.com/marcoeg/dmaplane ## 構成 - リング型コマンドチャネル(submit ring / complete ring / worker thread) - DMA バッファのライフサイクル管理(coherent 確保・page-backed 確保・mmap) - クロスデバイス共有のための dma-buf エクスポート(importer ごとの scatter-gather テーブル構築) - カーネル空間の RDMA エンジン(verbs リソースチェーン PD→CQs→QPs→MRs の所有) - NUMA 対応の確保と配置検証(`alloc_pages_node` のサイレントフォールバックに対する明示検証) - クレジットベースのフロー制御(送信側 completion 容量と受信側通知容量の双方で in-flight 操作を境界づける) - NVIDIA peer-to-peer pinning API 経由の GPU メモリ統合(PCIe BAR ピニング) - カーネル tracepoint と debugfs による低オーバーヘッドなオブザーバビリティ ## 位置づけ(隣接システムとの比較) - **[[NCCL]]**: barrier 同期された collective 通信を対象とし、内部にバッファプール・トポロジロジックを持つ。dmaplane は point-to-point パイプラインを対象とし、collective スケジューリングの下に位置するカーネルレベルのバッファライフサイクルと completion 安全性の基盤を提供すると位置づけられる。 - **[[Mooncake]]、TransferEngine**: メモリ階層・ネットワークプロバイダをまたぐトランスポート抽象化をユーザ空間で提供するが、ピン留め済みメモリ・登録・配置の前提条件が既に満たされていることを仮定する。dmaplane はカーネル側の確保・共有・登録ステップを実装してこれらの前提条件を外部化・測定対象にする。 - **nvidia-peermem**: GPU BAR ページを RDMA スタックへブリッジする狭い GPU-to-NIC 共有パスのみを扱う。dmaplane は同等のピニング/ティアダウン規律を内包しつつ NUMA 配置・dma-buf エクスポート・フロー制御・オブザーバビリティへ拡張する。 ## 測定された特性 - NUMA クロスノードペナルティは 1 MB バッファでは 1% 未満(キャッシュに収まる)だが、64 MB では 18% 対称に現れる。 - クレジットベースのフロー制御は sustained 構成(max_credits=64)で CQ overflow ゼロを維持し、意図的にクレジットを枯渇させたストレス構成(max_credits=4)でも 5 秒間に 7270 万回のクレジットストールを生みながら CQ overflow は依然ゼロだった。 - GPU BAR アクセス手法の選択でホスト→GPU スループットが 2 桁変わる(UC BAR 44 MB/s vs WC BAR 10,097 MB/s vs cudaMemcpy 12,552 MB/s)。GPU→ホストの読み出しはいずれの手法でも PCIe non-posted read 制約で低い。 - 2 台の EC2 g5.xlarge 間で Soft-RoCE を用いた disaggregated inference デモでは、TTFT 98.2 ms のうち KV キャッシュ転送が 52.1 ms を占める。 ## 限界 - 測定は Soft-RoCE(ソフトウェア RDMA プロバイダ)上のみで行われ、ConnectX や EFA のようなハードウェア RDMA NIC 上での測定は含まれない。 - NIC の BAR DMA エンジンの読み出し階層は測定されていない。 ## 関連 - ソース: [[@2026__arXiv__The DMA Streaming Framework - Kernel-Level Buffer Orchestration for High-Performance AI Data Paths]] - 比較対象: [[NCCL]] / [[Mooncake]] - 概念: [[KVキャッシュ管理]] / [[NUMAメモリ配置]] ## 出典 - [[@2026__arXiv__The DMA Streaming Framework - Kernel-Level Buffer Orchestration for High-Performance AI Data Paths]]