ai-infra-interview-305

第 83 题:CPU offload和GPU计算的流水线重叠如何实现?

题目

CPU offload和GPU计算的流水线重叠如何实现?


完整讲解

一、为何要重叠

CPU offload 时,数据在 GPU↔CPU 间搬运(PCIe),若「等拷贝完成再算」会浪费 GPU 算力。Overlap:在 GPU 计算当前 layer 时,异步把上一 layer 的 offload 数据搬回 GPU(或把下一阶段要用的数据从 CPU 搬到 GPU),使 拷贝与计算并行,隐藏部分 PCIe 延迟。

二、实现手段

三、与 ZeRO-Offload 等的对应

ZeRO-Offload、DeepSpeed 等实现中,optimizer step 的「梯度→CPU、CPU 更新、参数→GPU」会拆成异步拷贝 + 计算重叠:例如当前 layer 的 backward 与上一 layer 的 CPU 更新 + 回拷重叠,用 prefetch 与 double buffer 实现,从而在 PCIe 瓶颈下仍尽量拉高 GPU 利用率。


面试要点


记忆要点

  1. 双缓冲 + async copy + 多 stream = 拷贝与计算重叠。
  2. 算 A 时拷 B,下一 step 交换;依赖用 event 保证。
  3. Offload 框架里 prefetch 与 pipeline 是同一思想。
返回模块 返回总览