lllyasviel / lllyasviel/ControlNet
Why `pl.Trainer` can not handle multi-gpu case?
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 34.1k
- Forks
- 3k
- PR merge metrics
- No merged PRs in 30d
Description
I can run the original `tutorial_train.py` with single 3090Ti GPU (24G) with batch_size 3.
However, when upgrade to 2 or more gpus, it keep warning OOM.
```
trainer = pl.Trainer(gpus=2 precision=32, callbacks=[logger])
```
I am curious why? Why single GPU can handle batch 3 while multi-GPU can only handle 1?? The GPUS hold batches on their own parallelly, am I right?
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with tutorial_train.py and the pl.Trainer configuration shown in the report. Reproduce the single-GPU and multi-GPU runs with the stated batch sizes, then inspect how the trainer distributes batches and allocates memory. Done means documenting a confirmed explanation for the differing OOM behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- machine-learning
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100