真实面经题目 · 原创解析
LLM 多卡并行推理中,显存占用和通信开销如何影响吞吐与延迟?
这题考 LLM 多卡并行推理的性能瓶颈,回答重点是权重显存、KV Cache、prefill/decode 差异、并行切分通信、批处理调度和长尾延迟。
真实面经题目 · 原创解析
这题考 LLM 多卡并行推理的性能瓶颈,回答重点是权重显存、KV Cache、prefill/decode 差异、并行切分通信、批处理调度和长尾延迟。
多卡推理的瓶颈不能只看 GPU 数量。显存上,模型权重、KV Cache、激活临时缓冲和通信 buffer 都要放进预算;长上下文和高并发时,KV Cache 往往成为主要压力。计算上,prefill 阶段处理整段输入,计算密集且适合较大 batch;decode 阶段每次生成一个 token,更容易受内存带宽、调度和小 batch 影响。通信上,tensor parallel 需要跨卡 all-reduce 或 all-gather,pipeline parallel 会引入阶段气泡,expert 或混合并行还会有路由和负载不均。吞吐和延迟受 batch、序列长度、并发、采样参数、调度策略和网络拓扑共同影响。优化时要分阶段测量 TTFT、tokens/s、P95/P99、显存占用、通信时间和 GPU 利用率,再决定量化、KV 分页、连续批处理、prefill/decode 分离、并行策略或硬件拓扑优化。
多卡推理首先要放下模型权重,还要为 KV Cache、临时激活、通信 buffer 和运行时预留空间。模型越大、上下文越长、并发越高,KV Cache 越容易从辅助开销变成主瓶颈。
prefill 处理完整输入序列,矩阵计算量大,GPU 利用率通常更容易做高;decode 每步只生成一个 token,但要读取全部历史 KV,容易受内存带宽、batch 组织和调度开销影响。两阶段混在一起看平均值会误判瓶颈。
tensor parallel 把矩阵或 attention 头切到多卡,需要频繁同步;pipeline parallel 把层切到不同卡,会有流水线气泡;多机多卡还受 NVLink、PCIe、RDMA 和拓扑影响。卡越多不一定越快,通信可能抵消计算收益。
在线服务要处理不同输入长度、输出长度和到达时间的请求。batch 太小吞吐低,batch 太大 TTFT 和排队延迟高;长请求可能拖慢短请求。连续批处理、长度分桶和优先级调度可以改善资源利用和长尾延迟。
max tokens、temperature、top-p、beam 或多候选生成都会影响 decode 步数和并发资源。很多线上性能问题不是单次 forward 慢,而是输出过长、取消不及时、队列堆积或 KV Cache 无法回收。
应分别记录 TTFT、prefill 耗时、decode tokens/s、每卡显存、GPU 利用率、通信占比、排队时间、batch 规模、P95/P99 和失败率。根据瓶颈选择量化、KV 优化、并行重切分、批处理调度或硬件拓扑调整。
如果计算被切得太细,跨卡同步、通信拓扑、流水线气泡和负载不均可能超过并行带来的收益。
主要受排队、prefill 计算、输入长度、batch 调度、模型大小、并行通信和服务冷启动影响。
decode 每次只生成一个 token,但要读取历史 KV,计算粒度小、步骤多,容易受内存带宽和调度开销限制。
可以考虑量化、张量并行、KV Cache 分页或压缩、限制上下文和输出长度、降低并发、offload 或换更合适的模型。