第 214 题:GPU显存优化,模型并行与流水线并行?
题目
GPU显存优化,模型并行与流水线并行?
完整讲解
一、GPU 显存瓶颈
大模型(如 LLM、大视觉模型)的参数量与激活超出单卡显存,无法单卡加载或 batch 很小。优化思路:模型并行(把模型拆到多卡)、流水线并行(按层或 stage 分到多卡、流水执行)、数据并行(多卡同模型、分数据)可组合使用。
二、模型并行(Tensor Parallelism)
- 思想:将单层的矩阵切分到多张卡上,单次前向/反向在同一层内多卡协同计算。例如线性层 $Y=XW$:$W$ 按行或列切分,$X$ 广播或切分,各卡算局部结果再 all-reduce 或 concat。
- 特点:单层跨卡,通信频繁(每层都需同步);适合单层很大(如大 FFN、大 attention head)且卡间带宽高的场景。显存:每卡只存一部分参数与激活,单卡显存需求下降。
三、流水线并行(Pipeline Parallelism)
- 思想:将模型按层或 stage 切到多卡,如卡 1 负责 layer 0~3、卡 2 负责 4~7…。流水:多个 micro-batch 依次进入,卡 1 算完传给卡 2,卡 2 算时卡 1 可算下一个 micro-batch,提高设备利用率。
- 特点:通信主要在 stage 之间、次数少于模型并行;但存在气泡(前几个 micro-batch 填满流水线时、后几个排空时,部分卡空闲)。显存:每卡只存若干层,单卡显存需求下降;需缓存多个 micro-batch 的激活做反向,显存与 stage 数、micro-batch 数相关。
- 组合:大模型常用 数据并行 + 流水线并行(如 4 卡流水、再 2 组数据并行);或 流水线 + 张量并行(stage 内再张量并行)。
面试要点
- 能说明 GPU 显存瓶颈及模型并行、流水线并行的目标;能区分二者:模型并行=单层切分多卡协同,流水线=按层/stage 分卡、流水执行。
- 能描述模型并行的通信特点(每层同步);能描述流水线的气泡问题与 micro-batch;能简述显存占用与组合使用。
- 能列举实际组合:数据+流水线、流水线+张量并行。
记忆要点
- 模型并行=单层切分多卡、通信密;流水线并行=按 stage 分卡、流水、有气泡。
- 显存优化=每卡存部分参数与激活;常组合=数据+流水线、流水线+张量并行。