Fix: probe with return_logits=False (was wasting 3GB on logits tensor), show peak VRAM
Browse files
train.py
CHANGED
|
@@ -240,7 +240,7 @@ def probe_max_batch(model, device, dtype, seq_len, vocab_size, max_search=4096):
|
|
| 240 |
x = torch.randint(0, vocab_size, (mid, seq_len), device=device)
|
| 241 |
t = torch.randint(0, vocab_size, (mid, seq_len), device=device)
|
| 242 |
with autocast(device_type="cuda", dtype=dtype):
|
| 243 |
-
_, loss = model(x, t)
|
| 244 |
loss.backward()
|
| 245 |
tmp_opt.step()
|
| 246 |
tmp_opt.zero_grad(set_to_none=True)
|
|
@@ -563,7 +563,7 @@ def train(cfg: dict):
|
|
| 563 |
tps = tokens_per_step / dt
|
| 564 |
steps_left = total_steps - step
|
| 565 |
eta_h = steps_left * dt / 3600
|
| 566 |
-
vram = torch.cuda.
|
| 567 |
print(f" step {step:6d}/{total_steps} | loss {total_loss:.4f} | "
|
| 568 |
f"lr {lr_now:.2e} | {tps:,.0f} tok/s | VRAM {vram:.1f}GB | ETA {eta_h:.1f}h")
|
| 569 |
|
|
|
|
| 240 |
x = torch.randint(0, vocab_size, (mid, seq_len), device=device)
|
| 241 |
t = torch.randint(0, vocab_size, (mid, seq_len), device=device)
|
| 242 |
with autocast(device_type="cuda", dtype=dtype):
|
| 243 |
+
_, loss = model(x, t, return_logits=False)
|
| 244 |
loss.backward()
|
| 245 |
tmp_opt.step()
|
| 246 |
tmp_opt.zero_grad(set_to_none=True)
|
|
|
|
| 563 |
tps = tokens_per_step / dt
|
| 564 |
steps_left = total_steps - step
|
| 565 |
eta_h = steps_left * dt / 3600
|
| 566 |
+
vram = torch.cuda.max_memory_allocated() / 1024**3 if device.type == "cuda" else 0
|
| 567 |
print(f" step {step:6d}/{total_steps} | loss {total_loss:.4f} | "
|
| 568 |
f"lr {lr_now:.2e} | {tps:,.0f} tok/s | VRAM {vram:.1f}GB | ETA {eta_h:.1f}h")
|
| 569 |
|