本文是AI Infra 面试题系列的 Level 7,覆盖 Q75-Q84。重点是实验数字、证据边界、反直觉结果和项目价值的现场防守。
上一篇:集群、可靠性与 RL Infra · 系列总索引 · 下一篇:系统设计
8. Level 7:本项目答辩与高压追问
Q75. 请用两分钟介绍这个 8xV100 项目,不要按实验目录流水账。
参考回答骨架
我在一台 8x V100 PCIe 32GB、无 NVLink 的机器上搭建了一套可复现的 LLM systems lab,目标不是追求绝对性能,而是用控制变量验证分布式训练和在线推理中的关键 trade-off。
第一层是通信基线。我按 PIX/PHB/SYS 拆分 GPU pair,并测 AllReduce、AllGather、ReduceScatter 和 P2P,发现 512 MiB AllReduce 的 PIX 带宽约 11.74 GB/s,跨 host bridge 或 socket 约 7 GB/s,这为后续并行放置提供了物理解释。
第二层是训练。我对 DDP 做强/弱扩展、microbatch sweep 和 CUDA trace;8 卡强扩展只有 2.82x,而 microbatch 增大后效率改善,说明关键是每 token 固定梯度通信和 overlap。FSDP 实验则得到明确的容量/吞吐边界:
SHARD_GRAD_OP约 10k tok/s、1.55 GiB,FULL_SHARD约 7.7k tok/s、1.06 GiB。Megatron 实验覆盖 TP/SP/PP 和重计算,最重要的结论是 PCIe 上 TP 主要解决容量,SP 在这个 workload 上只省少量显存,而 full recompute 省约 78% 但损失约 30% 吞吐。第三层是推理。我在 SM70 上完成 vLLM backend 兼容性诊断,验证 continuous batching、TP/DP、prefix cache 和 Poisson 到达。prefix 高复用时 warm cache 吞吐约为关闭缓存的 4.32x;但在过载实验里 completed throughput 继续升,SLO goodput 却接近归零,说明容量决策必须以尾延迟约束下的 goodput 为目标。
最后一层是工程证据。我进一步量化 DDP reducer 与
no_sync(),做 NCCL 算法/协议和跨 NUMA 并发、MoE variable-split All-to-All、原子 checkpoint/failure injection、自写 Triton RMSNorm,以及 prefix cache 驱逐。随后又下钻 runtime:TP2 x PP2 x DP2中 SYS TP 比 PIX TP phase 慢 3.05x,同 shape collective 顺序错配会静默串数据;FSDP block wrap trace 是 25 次 AllGather/13 次 ReduceScatter;1 GiB KV 在 C=16 时每轮 4 次抢占;Triton hidden8192/1warp 使用 255 registers/thread 并慢 1.72x。所有方向都有独立 correctness 和原始 artifact。边界也很明确:它仍未覆盖多机 RDMA、端到端 3D model、真实 Megatron EP/CP、跨 world-size DCP、Triton backward 和长期真实训练。
面试官在听什么
- 是否先讲研究问题和结论,而不是脚本数量;
- 是否能给 3-5 个准确数字并解释机制;
- 是否主动区分实测与外推;
- 是否把负结果和假设修正讲成能力,而不是回避。
Q76. V100 太老,这个项目对今天的 AI Infra 岗位还有什么价值?
高分回答要点
- 不声称 V100 绝对性能代表 H100/B200;架构缺少 BF16/FP8、新 attention backend、NVLink/NVSwitch 等会改变最优配置。
- 仍然可验证跨架构稳定的机制:collective 数据流、拓扑、计算通信比、分片峰值、pipeline bubble、KV 容量、排队和 benchmark 方法。
- 老硬件会放大通信和兼容性问题,适合训练故障定位;例如 backend 回退和 TP 在 PCIe 上变慢都需要读日志和建立成本模型。
- 要迁移结论,应在新硬件重新校准 peak FLOPs/HBM/互连、kernel 支持和 workload shape,而不是复制具体吞吐数字。
失分点:回答“原理都一样,所以完全不影响”忽略了硬件能力会改变瓶颈和并行最优点。
Q77. 为什么 PIX pair 是 11.74 GB/s,而 8 卡 AllReduce bus bandwidth 只有约 7.6 GB/s?
高分回答要点
- 两卡 pair 是局部路径;8 卡 collective 必须覆盖更多 PCIe switch/host bridge/NUMA 路径,并共享上行链路。
- Ring 或 NCCL 选择的通道包含慢边,整体由拓扑嵌入、共享竞争和同步共同限制,不能取最快 pair 平均。
busbw与 pair 报告的逻辑/物理口径也要核对,不能只比数字;应保持消息大小并查看 NCCL algorithm/channel。- 后续可显式重排
CUDA_VISIBLE_DEVICES、限制 rings/channels、并发 pair traffic,验证拓扑映射与共享瓶颈。
Q78. DDP profile 中 m1 和 m8 的 AllReduce 累计都约 105 ms,为什么 m8 扩展更好?
高分回答要点
- 固定模型每次同步的 gradient bytes 相近,因此 AllReduce kernel 数和累计时间不随 microbatch 线性增长。
- m8 每 step 计算/token 更多,通信占比下降;更大的 GEMM 也可能提高计算效率。
- 累计 NCCL duration 不等于 exposed critical-path time,m8 还可能有不同 overlap;需要 timeline 而不是相加作结论。
- 应用吞吐是总 tokens/step 除以 wall time,因此即使通信时间相近,每 token 摊销也显著下降。
Q79. FSDP SHARD_GRAD_OP 比 DDP 更省显存且更快,是否说明 FSDP 全面优于 DDP?
高分回答要点
- 不能。这个观测只对特定模型、batch、FP32/FP16 通信设置和单机 PCIe 成立;通信 dtype 本身就是重要变量。
- FSDP 可能因 ReduceScatter、内存压力降低或实现细节获得收益,也会因 parameter AllGather、wrap 粒度和同步变慢。
- DDP 在模型可放下且网络合适时通常路径更简单,可能有更高吞吐;FSDP 的主要价值是容量及更大可行 batch/model。
- 公平结论应画 Pareto frontier,并补 loss/数值一致性、不同模型规模、batch、wrap 和网络的 sweep。
Q80. SP 节省很少,而 recompute 节省约 78%,你会因此完全放弃 SP 吗?
高分回答要点
- 不会把一个配置的结果推广到所有模型。应先用 memory snapshot 判断峰值组成,验证可被 SP 分片的 activation 是否本来占比很小。
- 更大 hidden/microbatch/层数、不同 attention kernel、TP degree 和更长序列可能改变收益;SP 还可能是某些 TP+EP layout 的必要条件。
- recompute 的 27%-30% 吞吐成本很高;生产配置可能组合 selective recompute 与 SP,而不是只选极端 full recompute。
- 下一实验应扫描 microbatch×sequence×TP,增加 selective recompute,并同时看峰值、throughput 和通信时间。
Q81. PP8/M16 比 M1 快 2.59x,为什么不是 16x?
高分回答要点
- M1 的理论利用率仅 1/8;M16 理论利用率为
16/(16+7)=69.6%,相对上界约 5.57x,不是 16x。 - 实际还有 stage 参数/计算不均衡(本项目约 2.76x)、P2P、调度、较小 microbatch kernel 效率和同步。
- 吞吐比较还要确认 global batch 和计量单位;增加 microbatch 数不是凭空减少总计算。
- 可用 per-stage timeline 分离 bubble、imbalance 和通信,再尝试非均匀 partition/interleave。
Q82. 用 dummy 7B 权重做 vLLM 实验是否有意义?
高分回答要点
- 有限但有意义:它能验证模型结构规模下的参数/KV 分配、engine 启动、调度、并行通信、cache 和请求路径,且避免下载/加载真实大权重成为实验阻塞。
- 它不能验证真实权重的输出质量、量化误差、真实 checkpoint IO,也未必复现所有权重分布相关 kernel 或业务输入行为。
- 因此项目另用真实 Qwen2.5-0.5B 权重验证端到端生成正确性;两类实验回答不同问题。
- 面试中应称为 synthetic/systems benchmark,不应把它包装成 7B 模型质量验证。
Q83. 如何证明 prefix cache 的 4.32x 不是一个有偏 benchmark?
高分回答要点
- 这个数字只代表刻意构造的高共享长 prefix 场景,报告必须同时给 prefix 长度、复用比例、输入/输出和并发。
- 设置 cache-off、cold-cache、warm-cache 三组,启动配置与请求完全一致;确认 hit token/率,而不是只看到 latency 下降。
- 多次重启或清空 cache,随机化请求顺序,排除 compile warmup、模型加载和客户端连接复用。
- 本项目已补默认/1 GiB cache 的 pollution/revisit:累计 hit rate 只差 2 点,小 cache 的 revisit p95 TTFT 却退化 5.87x,说明必须看工作集和阶段 counter delta。
- 下一步再扫 prefix 长度、共享比例、复用距离和租户隔离;随机 prompt 上不应承诺 4.32x。
Q84. 如果再给你两周独占这台 8 卡机器,最优先补什么?
高分回答要点
- 第一优先是把已验证的
TP2 x PP2 x DP2process group 接入真实 TP layer、1F1B pipeline 与 DP gradient sync,固定 global batch,检查 loss、collective 序列和 critical path。 - 第二优先是 PP per-stage trace 与重切层;当前 2.76x 参数不均衡仍只是 proxy,需要真实 F/B/P2P 时间验证非均匀 partition。
- 第三优先是 PyTorch DCP/FSDP2 的 8-rank save、4-rank reshard restore,以及真实 packed DataLoader、MFU、checkpoint pause 和数小时 soak。
- 推理侧做四个单卡副本的 least-connections/cache-aware LB,补每副本 queue/cache 指标和 30-60 分钟 mixed-length/mixed-prefix SLO。
- 多机 RDMA 无法在这台单机证明,应准备脚本/指标和成本模型,但不消耗时间制造伪多机结论。
4 分答案特征:有优先级、每项有可证伪假设、指标和停止条件,而不是罗列热门名词。