Repository navigation
Training Captioner Multi GPU
With the managed backend the app can use several GPUs in two different ways. Choose on Settings ▸ GPUs.
The tab lists every NVIDIA GPU found by nvidia-smi. Tick the ones to use. The numbers are the ones nvidia-smi shows, so ticking GPU 1 uses the card nvidia-smi calls GPU 1, even with mixed cards (before 1.3.0, CUDA could number the fastest card first and pick the other one).
With no GPU ticked, one llama-server starts and picks the GPUs itself: it spreads one copy of the model over all of them, much like Split. The tab says so under the list. Before 1.4.0 the tab showed every GPU ticked when none was saved, and pressing OK then saved them all, which quietly switched to one server per GPU in Parallel mode. If you see no GPU ticked after updating, that is what was running all along.
Each ticked GPU gets its own llama-server with a full copy of the model. Images are handed out to whichever server is free, so two GPUs caption roughly twice as fast as one.
- Best when: the model plus its context fits on a single card.
- Mixed cards are fine. A faster card simply finishes more images. In testing, a 4060 Ti generated about 44 tokens/s and a 5060 Ti about 29 tokens/s on the same model, and the work balanced itself.
- Ports used: First port (default 8090) for the first GPU, +1 for the next, and so on.
- VRAM per card = model + context + vision projector.
- If one server stops responding during a run (for example it ran out of VRAM and closed), the other servers take over its images and the log says which server stopped. If none respond, captioning stops with a message and the remaining images stay uncaptioned rather than being marked as failed.
A single llama-server is started with the model spread over all ticked GPUs (--split-mode layer).
- Best when: the model does not fit on one card, e.g. a 26–31B model at Q5 on two 16 GB cards.
- Only one server runs, so captions are produced by one model at a time (use Concurrent requests to batch, below).
-
Tensor split: leave blank for automatic, or give ratios per GPU, e.g.
16,16for equal cards or3,2to put more on the first. If one card also drives your monitor or other programs, give it a smaller share. - Splitting adds a little overhead from moving data between cards, so don't use it for models that fit on one GPU.
On the same tab. Each server handles this many images at once.
-
1(default) is the lowest VRAM use. -
2–4can increase throughput, especially in Split mode where a single request does not keep both GPUs busy. - The context is multiplied by this number, so it costs VRAM. If loading fails or you run out of memory, lower it.
Total workers = (servers) × (concurrent requests).
| Situation | Use |
|---|---|
| Model fits on one GPU, you have 2+ GPUs | Parallel |
| Model is too big for one GPU | Split |
| One GPU only | Either; tick it and leave the mode alone |
| Two different-size cards, small model | Parallel (or tick just the bigger card) |
| Want the highest-quality large model | Split with a bigger model, then raise Concurrent requests |
The servers stay loaded between runs and close when you choose Server ▸ Stop Servers or close the app. Since 1.3.0 they also close if the app crashes or is ended from Task Manager, so they never keep holding VRAM. Since 1.4.0 stopping them is almost instant (it used to take most of a second per server), so changing a setting and captioning again restarts the servers sooner.
Run nvidia-smi in a terminal (or look at Task Manager ▸ Performance ▸ GPU) while the model loads. Other programs can use several GB already; browsers, games and other AI tools all count. If a model that should fit does not load, close them or lower Context per request and Concurrent requests.
If nvidia-smi is not found the GPU list is empty and llama-server picks its own devices. Multi-GPU control in this app relies on CUDA_VISIBLE_DEVICES, so it is only supported for NVIDIA/CUDA. For other hardware run your own server and use an external backend.
RulZ AI Tools Suite
The apps
RulzTrainer
Rulz Training Captioner
Getting started
Using the app
Models and GPUs
Reference
RulZ LLM Suite
Using the app
- Getting Started
- Building the Engine
- Model Library
- Loading Models
- Chat
- MCP Tools
- Reverse Engineering
- Local API Server
Reference
Contributing
RulZ Coding Agent
Using the app
- Getting Started
- Projects and Tasks
- Approvals and Safety
- Model Settings
- Run and Share
- Notes and Instructions
- Extra Tools (MCP)
- Phone Access
Reference
Contributing
RulZ Image Organizer
Using RulZ
- Getting Started
- Library and Scanning
- People and Corrections
- Search and Filters
- Photo Viewer
- Appearance
More
RulZ Image Tournament
Using the app
- Getting Started
- How the Tournament Works
- Comparing Images
- Controls and Shortcuts
- Options and Settings
- Supported Formats
- Troubleshooting and FAQ
Developers
RulZ Image Crawler
Getting started
Using the app
Help
RulZ Image Preparer
Getting started
Using the app
Reference
RulZ Image Grid
Using the app
Help
RulZ Huggingface Manager
Using the app
Help
RulZ Simple Video Clip Extractor
Getting started
User guide
- Playback and Marks
- Fixed-Length Clips
- Exporting
- Crop, Rotate and Flip
- Colour Matching
- Distortion Repair
- Preferences and Themes
Help