ui/gpu: explicit "Split — <card> first" options; auto = single GPU; confine non-split models
The per-model engine selector was confusing: "Auto" implied single-card (correct)
but the only split choice was a generic "All GPUs". Replace with hardware-named,
ordered choices:
- "Auto (single GPU — by capability / free VRAM)" → one card (unchanged)
- "<engine> (single card)" → pin to that card
- "Split — <engine> first" → pool across all GPUs with
that engine's card leading (main_gpu / larger share). Generated per engine, so
on a 3090+Radeon box you get "Split — nvidia first" and "Split — radeon first".
Saving a split option sets gpu_split + pins engine=<lead>; the weight-ratio field
(blank = auto by free VRAM) shows only for a split choice.
Make per-model split actually function:
- engine_supervisor: expose every GPU to engines (allow_cross) when the global
toggle OR ANY model entry has gpu_split — otherwise the lead engine couldn't see
the foreign card.
- vulkan.py: when an engine sees BOTH backends' cards but THIS model isn't a split,
confine it to its own backend (zero the foreign devices in tensor_split) so it
can't accidentally spread — while same-backend multi-card split still works. Split
models pool across all visible devices (lead card = device 0 = main_gpu).
Co-Authored-By:
Claude Opus 4.8 <noreply@anthropic.com>
Showing
Please
register
or
sign in
to comment