【リモートダイレクトメモリアクセス】

RDMA(Remote Direct Memory Access) とは?

💡 受付を通らずに直接相手のデスクに書類を置く宅配便
📌 このページのポイント
RDMAの仕組み:CPUを介さないメモリ転送 従来のTCP/IP(4回のコピー発生) メモリA CPU/OS コピー×2 NIC ネット NIC CPU/OS コピー×2 Mem B RDMA(CPUをバイパス・ゼロコピー) メモリA CPU/OS RDMA NIC ネット RDMA NIC CPU/OS Mem B 従来TCP/IP 遅延: 数百μ秒 / CPUコピー: 4回 RDMA 遅延: 1〜2μ秒以下 / コピー: 0回
RDMAとTCP/IPの比較:CPUをバイパスしてゼロコピー転送を実現
ひよこ ひよこ

ペンギン先生、RDMAって何?CPUを通らないってどういうこと?

ペンギン先生 ペンギン先生

普通のデータ転送は「アプリ → CPU/OS → NIC → ネットワーク → NIC → CPU/OS → アプリ」って何段階もコピーが発生するんだ。RDMAはNIC(ネットワークカード)が直接メモリにアクセスするから、CPUやOSを一切通らなくていいんだよ。

ひよこ ひよこ

CPUを通らないと何がいいの?

ペンギン先生 ペンギン先生

2つのメリットがあるよ。ひとつは「速さ」で、CPUの処理待ちがなくなって遅延が1〜2マイクロ秒以下になる。もうひとつは「CPU負荷の軽減」で、CPUがデータ転送に使われない分、他の計算に使えるんだ。普通のEthernetが数百マイクロ秒かかるのと比べると、約100〜200倍速いよ。

ひよこ ひよこ

どんな場面で使われてるの?

ペンギン先生 ペンギン先生

大きく2つの分野で使われているよ。ひとつはAI分散学習。GPT-4クラスのモデルを何百台ものGPUで学習させるとき、RDMAで1秒間に何百回もパラメータ同期させるんだ。もうひとつは高頻度取引(HFT)で、マイクロ秒単位の価格差を狙う金融システムでも使われているよ。

ひよこ ひよこ

InfiniBandとかRoCEってよく一緒に聞くけど、関係あるの?

ペンギン先生 ペンギン先生

RDMAは「仕組み」で、InfiniBandとRoCEv2(ロキーv2)はRDMAを実装するための「プロトコル」だよ。InfiniBandは専用ハードウェアが必要で超高性能、RoCEv2は普通のEthernetインフラの上でRDMAを実現できるのが特徴なんだ。最近はRoCEv2を採用するデータセンターが増えてきているよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「RDMA」って出てきたら「CPUを通さず直接メモリにデータを届ける超高速転送」と思えればだいたいOK!
📖 おまけ:英語の意味
「Remote Direct Memory Access」 = リモート直接メモリアクセス
💬 「リモート(遠隔)のメモリに直接(Direct)アクセスする」という機能をそのまま名前にしたんだよ
← 用語集にもどる