ai-infra-interview-305

第 76 题:ZeRO-Offload如何将optimizer state offload到CPU?带宽瓶颈?

题目

ZeRO-Offload如何将optimizer state offload到CPU?带宽瓶颈?


完整讲解

一、ZeRO-Offload 做了什么

ZeRO 把 optimizer state、gradient、parameter 分片到多卡;ZeRO-Offload 进一步把 optimizer state(及可选 gradient)放到 CPU 内存,GPU 只保留当前 step 计算所需的分片。前向/反向在 GPU 算,optimizer step 时把梯度拷到 CPU,在 CPU 上更新 optimizer state 与参数,再把更新后的参数(或所需分片)拷回 GPU,从而用 CPU 内存扩展「等效显存」。

二、带宽瓶颈

三、公式与量级

Optimizer state 约 (2 \times 参数量 \times 4)(Adam fp32 两份);若每 step 全量搬一次,通信量 (O(参数量)),时间 (\approx 参数量 \times 4 / PCIe带宽)。Overlap 与压缩可降低有效瓶颈,但本质仍是「用 CPU 内存换显存、用 PCIe 带宽换容量」的 trade-off。


面试要点


记忆要点

  1. Offload = optimizer state 放 CPU,step 时 CPU 更新再拷回。
  2. 瓶颈 = PCIe;overlap + 减精度/减量 缓解。
  3. 用 CPU 内存换显存,用带宽换容量。
返回模块 返回总览