LLM Infer Infra 学习资料库

05 数据传输:搬得动、搬得快,还要搬得安全

总目录 · 前置:存储 · 下一主题:Serving 与性能

传输层处理地址、长度、设备、连接和完成状态。它把字节送到目标,但不能独自证明这些字节属于正确模型、完整对象,或者已能被目标 GPU 安全消费。

配套图示:部署的数据/控制路径、对象完成协议、联合运行链。跨层所有权与 RDMA 前提见联合实现。

1. 先画真实路径

源 GPU → 源 host staging → 网络 → 目标 host staging → 目标 GPU

有些系统和硬件可以省掉其中的 staging 或复制;也可能增加序列化、压缩、布局转换。不要先写“零拷贝”,先标出每一步谁发起、用哪个设备、等什么完成。

2. 三条需要分别核对的完成边界

边界 需要证明什么
传输完成 该操作的字节移动成功,具体本地/远端完成语义见传输 API
对象可读 上层确认所有必要部分完整,并发布对象状态
消费安全 目标布局和设备依赖满足,消费者可读取,资源仍受保护

本地提交返回成功不代表三条边界全部满足。超时也可能只是“没有拿到完成结果”:原任务仍可能在途,不能立即释放或复用源/目标内存。

3. 必须掌握的共同基础

机制 白话解释 主要代价
注册内存 为设备访问建立映射和权限 注册成本、锁页限制、注册与对象寿命
TCP 使用 socket/网络栈传数据,适合建立功能基线 复制、系统调用、CPU 与协议处理成本因路径而异
RDMA 在授权内存区上执行设备数据访问 连接、注册、队列、完成处理和拓扑仍需管理
GDR 在支持条件下由网卡直接访问 GPU 内存 硬件、驱动、PCIe 拓扑和设备同步限制
批量与切片 合并提交开销,或并行搬运大对象 队列深度、切片粒度、部分失败与尾部等待
NUMA 与多网卡 选择更接近数据的 CPU/内存/网卡路径 跨 NUMA、共享 PCIe 和上联瓶颈

锁页、注册和对象所有权是不同概念。拥有一个合法指针也不能证明背后的 tensor 或内存块不会被其他线程、进程或设备提前释放。

4. 先算下界,再解释差距

理想传输时间 = 字节数 / 链路字节速率。例如 1 GiB 在 400 Gbit/s 链路上的理想下界约 21.47 ms,还没有算协议、排队、源/目标内存、拷贝和同步。

端到端吞吐受最窄环节限制。串行阶段耗时相加;能重叠的阶段要按实际时间线估计关键路径,不能先假设全部重叠,也不能用峰值网络带宽代替实际 KV 加载速度。

5. 实现与实验

先读 Mooncake Transfer Engine 实现专题,再看传输与 Store 实验。TE 用作具体案例;一般的内存寿命、完成边界和成本模型适用于其他传输方案。

实验分别记录注册/连接成本、稳态 payload 带宽、小对象延迟、CPU 开销、部分失败和目标设备可用时间。把传输 microbenchmark、Store 对象读写和最终推理指标分开报告。

6. 验收

解释为何网络调用成功后 GPU 仍可能不能读;列出取消任务后安全释放的条件;说明两张网卡不一定获得两倍吞吐的原因;给出远端加载与重算的比较前提。

输入主题、术语或问题