Zhao et al. (2022) — ARXIV-2304.11277
Key takeaways
- The sharding factor
F— the number of ranks parameters are sharded over — generalises the whole strategy space.F=1is full replication and reduces to DDP;F=Wis full sharding, each device holding1/W;1 < F < Wis hybrid sharding - FSDP is co-designed with PyTorch internals — Tensor, the dispatcher, the CUDA caching allocator — so that using it does not mean restructuring the model. That is the contribution over ZeRO, which established sharding
- Backward prefetching: with one process group serving both collectives,
the
ReduceScatterfor the currentFlatParameterblocks theAllGatherfor the next, putting two collectives on the critical path. FSDP issues the nextAllGatherfirst - Forward overlap works on CUDA streams rather than
Workobjects; the outermost unit’s parameters are kept resident to avoid a free-then-regather - A rate limiter bounds the caching allocator, which runs on the CPU thread and can over-allocate under several CUDA streams
- Near-linear TFLOPS scalability, comparable to DDP, supporting substantially larger models
Standing in the anthology
The source of SOTA-116, SOTA-117, SOTA-118 and SOTA-119.
Read in full for #114; the reading is NOTE-003. All four practices are confirmed, which is the first such result in that issue — the three clusters read before it each inverted their source. The generic bullet shape is a signal that a note was never read, not evidence that it is wrong.