engines: scope cross-backend pooling to the split's lead engine only
allow_cross ("use both cards for one model") was applied to EVERY engine the
moment any model enabled gpu_split — which un-isolated the radeon engine's
Vulkan ICD too. Combined with the embedding loader not pinning non-split models
to their native card, the radeon engine's embeddings (Qwen3-Embedding,
gme-Qwen2-VL) drifted onto the NVIDIA 3090 after a Vulkan device-order change.
Scope it: each engine is isolated to its own backend by default; a per-model
split names its lead engine (the model's `engine` field), and only that lead's
card gets cross-backend visibility. A global offload.gpu_split still crosses all
engines (explicit opt-in). Preserves nvidia-led splits onto the RX 580 while
keeping radeon/intel Vulkan engines pinned to their own card. Bump 0.1.80.
Co-Authored-By:
Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0196Gm4PNkcuybDj9yfcz3CR
Showing
Please
register
or
sign in
to comment