-
Stefy Lanza (nextime / spora ) authored
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>
0490e2c9