OneTrainer icon indicating copy to clipboard operation
OneTrainer copied to clipboard

[Feat]: Utilize multiple GPUs and increase thread count during image captioning

Open jferments opened this issue 2 years ago • 4 comments

Describe your use-case.

I recently was using OneTrainer UI to auto-caption ~750k images using WD14 tagger. I have a dual GPU machine, but it was only utilizing one of them (and was running at very low VRAM/power usage). Additionally, it was barely utilizing CPU at all.

I was wondering if there is any way to make it more fully utilize CPU/GPU resources to speed up batch processing of images. I have a 3.7 million image dataset I need to do next, and it could cut many hours off my processing time to be able to use multiple GPUs.

What would you like to see as a solution?

An option to select multiple GPUs to use, as well as increasing thread count for captioning.

Have you considered alternatives? List them here.

No response

jferments avatar May 08 '24 02:05 jferments

No support. Most developers for OT do no think its worth it and ruled it out multiple times. PR's are welcome.

O-J1 avatar May 08 '24 04:05 O-J1

Do you have links to tickets where they've rejected this idea? I didn't see any for it when I searched

jferments avatar May 08 '24 05:05 jferments

#69 though I fully agree, using my 3080 and 3090 together would definitely be beneficial. especially when I want to train at 2048x2048 with better parameters.

yggdrasil75 avatar May 08 '24 11:05 yggdrasil75

You can run separate taggers at the same time. You will start to get CPU bottlenecked to 60~ images per second per tagger.

Run one part of the dataset on GPU0 and other on GPU1. And do not run anything on the CPU since your CPU will get hit pretty hard with all of those image operations.

Disty0 avatar May 09 '24 20:05 Disty0

Answered by #69 and is somewhat of a duplicate of it. PR's are welcome for multi-gpu support but Nero doesnt think its worth the time currently.

O-J1 avatar Feb 16 '25 06:02 O-J1