RDMA的memory registration开销?RDMA的memory registration开销?
RDMA 要求参与传输的内存必须先注册(Memory Registration):把用户态 buffer 的物理页固定并告知网卡,网卡才能直接 DMA 读写。MR 创建时内核/驱动会 pin 页、建立虚拟地址到物理地址的映射供 HCA 使用,并可能注册到设备 TPT(Translation and Protection Table)等,有** CPU、TLB、内核元数据**开销。
Pin 页:物理页不可 swap、占用常驻内存。建立映射:大量 MR 时 TLB 与设备侧 TPT 压力大。注册/注销本身:cudaMalloc 等分配的内存若要做 RDMA,需再注册为 MR;注册与注销是同步、相对重的操作,频繁 reg/dereg 会明显拉高延迟与 CPU。大块、长生命周期的 buffer 注册一次、复用可摊薄开销;小块、短生命周期则可能成为瓶颈。
池化 MR:预注册大块、应用内按需切分或复用,避免每次分配都 reg。On-demand pin:部分驱动/库支持按需 pin 或 lazy registration。GPU:GPUDirect RDMA 时 GPU 内存也需注册,同样注意注册范围与生命周期;减少注册次数、扩大单次注册块有利于性能。
| 返回模块 | 返回总览 |