Commit 35b4262
committed
ZeRO 1/2: wait on all IPG-bucket producer streams in average_tensor (#8061)
With overlap_comm, the per-parameter gradient copies into the contiguous IPG
bucket can be issued on multiple streams (e.g. under torch.compile, gradient
hooks run on different autograd streams). average_tensor waited the reduction
stream on only the current stream before reducing the bucket, so the reduction
could read the bucket before another producer finished, corrupting gradients
(NaN loss). Track the set of producer streams per IPG bucket and wait on all of
them. The single-stream path is unchanged (the set is just {current_stream}), so
there is no behavior change when overlap_comm copies stay on one stream.
Adds CPU unit tests in tests/unit/v1/zero/test_overlap_comm_record_stream.py for
the producer-stream wait, the empty fallback to current_stream, and the
IPGBucket.copy_streams reset.
Fixes #8061.
Signed-off-by: Arun Sharma <sharm485@umn.edu>1 parent dc0fd29 commit 35b4262
2 files changed
Lines changed: 91 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
115 | 115 | | |
116 | 116 | | |
117 | 117 | | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
118 | 123 | | |
119 | 124 | | |
120 | 125 | | |
121 | 126 | | |
122 | 127 | | |
123 | 128 | | |
| 129 | + | |
124 | 130 | | |
125 | 131 | | |
126 | 132 | | |
| |||
1119 | 1125 | | |
1120 | 1126 | | |
1121 | 1127 | | |
| 1128 | + | |
| 1129 | + | |
| 1130 | + | |
| 1131 | + | |
1122 | 1132 | | |
1123 | 1133 | | |
1124 | 1134 | | |
| |||
1227 | 1237 | | |
1228 | 1238 | | |
1229 | 1239 | | |
1230 | | - | |
| 1240 | + | |
| 1241 | + | |
| 1242 | + | |
| 1243 | + | |
| 1244 | + | |
| 1245 | + | |
| 1246 | + | |
| 1247 | + | |
| 1248 | + | |
1231 | 1249 | | |
1232 | 1250 | | |
1233 | 1251 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
95 | 95 | | |
96 | 96 | | |
97 | 97 | | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
0 commit comments