Reject ZeRO overlap_comm in unmanaged gradient accumulation
With managed_gradient_accumulation=False, backward() accumulates locally (boundary is
False) so the reduce hooks are skipped, and DeepSpeedZeroOptimizer.reduce_gradients()
skips its param walk when overlap_comm=True -- leaving gradients unreduced at step().
Reject overlap_comm at initialization (defaults to False for the supported ZeRO stage
0/1) and document the incompatibility. Adds a validation test.
Signed-off-by: Olatunji Ruwase <tunji.ruwase@snowflake.com>
Co-authored-by: Cursor <cursoragent@cursor.com>