Skip to content

Commit 9bcb983

Browse files
authored
Fix item_per_sec metric in ThroughputMonitor (#19080)
1 parent 197b225 commit 9bcb983

File tree

3 files changed

+13
-12
lines changed

3 files changed

+13
-12
lines changed

src/lightning/fabric/utilities/throughput.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -185,10 +185,11 @@ def compute(self) -> _THROUGHPUT_METRICS:
185185

186186
if len(self._lengths) == self._lengths.maxlen:
187187
elapsed_lengths = self._lengths[-1] - self._lengths[0]
188-
avg_length = elapsed_lengths / elapsed_batches
188+
dev_items_per_sec = elapsed_lengths / elapsed_time
189+
metrics[f"device{self.separator}items_per_sec"] = dev_items_per_sec
189190
if add_global_metrics:
190-
metrics["items_per_sec"] = samples_per_sec * avg_length
191-
metrics[f"device{self.separator}items_per_sec"] = dev_samples_per_sec * avg_length
191+
items_per_sec = dev_items_per_sec * self.world_size
192+
metrics["items_per_sec"] = items_per_sec
192193

193194
if len(self._flops) == self._flops.maxlen:
194195
elapsed_flops = sum(self._flops) - self._flops[0]

tests/tests_fabric/utilities/test_throughput.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ def test_throughput():
132132
"lengths": 8,
133133
"device/batches_per_sec": 2.0,
134134
"device/samples_per_sec": 4.0,
135-
"device/items_per_sec": 16.0,
135+
"device/items_per_sec": 8.0,
136136
}
137137

138138
with pytest.raises(ValueError, match="Expected the value to increase"):
@@ -149,7 +149,7 @@ def test_throughput():
149149
"lengths": 20,
150150
"device/batches_per_sec": 1.0,
151151
"device/flops_per_sec": 10.0,
152-
"device/items_per_sec": 20.0,
152+
"device/items_per_sec": 10.0,
153153
"device/mfu": 0.2,
154154
"device/samples_per_sec": 2.0,
155155
}
@@ -166,7 +166,7 @@ def test_throughput():
166166
"lengths": 20,
167167
"device/batches_per_sec": 1.0,
168168
"device/flops_per_sec": 10.0,
169-
"device/items_per_sec": 20.0,
169+
"device/items_per_sec": 10.0,
170170
"device/samples_per_sec": 2.0,
171171
}
172172

@@ -215,7 +215,7 @@ def test_throughput_monitor():
215215
"lengths": 24,
216216
"device|batches_per_sec": 1.0,
217217
"device|samples_per_sec": 3.0,
218-
"device|items_per_sec": 18.0,
218+
"device|items_per_sec": 6.0,
219219
"device|flops_per_sec": 10.0,
220220
"device|mfu": 0.1,
221221
},
@@ -229,7 +229,7 @@ def test_throughput_monitor():
229229
"lengths": 30,
230230
"device|batches_per_sec": 1.0,
231231
"device|samples_per_sec": 3.0,
232-
"device|items_per_sec": 18.0,
232+
"device|items_per_sec": 6.0,
233233
"device|flops_per_sec": 10.0,
234234
"device|mfu": 0.1,
235235
},
@@ -285,7 +285,7 @@ def test_throughput_monitor_world_size():
285285
"batches_per_sec": 2.0,
286286
"samples_per_sec": 6.0,
287287
"items_per_sec": 12.0,
288-
"device/items_per_sec": 18.0,
288+
"device/items_per_sec": 6.0,
289289
"flops_per_sec": 20.0,
290290
"device/flops_per_sec": 10.0,
291291
"device/mfu": 0.1,
@@ -303,7 +303,7 @@ def test_throughput_monitor_world_size():
303303
"batches_per_sec": 2.0,
304304
"samples_per_sec": 6.0,
305305
"items_per_sec": 12.0,
306-
"device/items_per_sec": 18.0,
306+
"device/items_per_sec": 6.0,
307307
"flops_per_sec": 20.0,
308308
"device/flops_per_sec": 10.0,
309309
"device/mfu": 0.1,

tests/tests_pytorch/callbacks/test_throughput_monitor.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ def test_throughput_monitor_fit(tmp_path):
5757
expected = {
5858
"train|device|batches_per_sec": 1.0,
5959
"train|device|samples_per_sec": 3.0,
60-
"train|device|items_per_sec": 18.0,
60+
"train|device|items_per_sec": 6.0,
6161
"train|device|flops_per_sec": 10.0,
6262
"train|device|mfu": 0.1,
6363
"epoch": 0,
@@ -207,7 +207,7 @@ def test_throughput_monitor_fit_gradient_accumulation(tmp_path):
207207
expected = {
208208
"train|device|batches_per_sec": 1.0,
209209
"train|device|samples_per_sec": 3.0,
210-
"train|device|items_per_sec": 18.0,
210+
"train|device|items_per_sec": 6.0,
211211
"train|device|flops_per_sec": 10.0,
212212
"train|device|mfu": 0.1,
213213
}

0 commit comments

Comments
 (0)