1详细画出 PyTorch DDP 内部梯度分桶 (Gradient Bucketing) 与“反向计算与 AllReduce 跨卡通信重叠”的时序执行图?
2为什么在没有参数被闲置时,将 `find_unused_parameters=False` 设置为 False 能显著提升 DDP 执行速度(消除全图反向遍历开销)?
3Ring-AllReduce 算法通信量推导:为什么在
N 张 GPU 传输大小为
S 的梯度张量时,总通信量严格恒定为
2NN−1S,几乎与卡数
N 无关?
4数据加载瓶颈排查:如何通过 `num_workers > 0`、`pin_memory=True` 与异步预加载 (Prefetching) 彻底消除 GPU 等待 CPU 数据的问题?
5使用 PyTorch Profiler (结合 Chrome Tracing / TensorBoard) 定位 `ncclKernel_AllReduce` 通信等待时间占比过长的标准调优步骤?