• Stefy Lanza (nextime / spora )'s avatar
    engines: process-isolate GGUF from torch on NVIDIA (fix CUDA-context poisoning) · 2fae0beb
    Stefy Lanza (nextime / spora ) authored
    llama.cpp's CUDA backend and PyTorch sharing one process corrupt the CUDA context:
    after a GGUF model runs on an NVIDIA card, the next torch kernel dies with
    "CUDA error: invalid argument". Seen in a township match — a gemma GGUF served a
    chat completion on the nvidia engine, then the next Z-Image (diffusers) image gen
    crashed in its Qwen3 text-encoder's sdpa mask (padding_mask.all()). Every Z-Image
    run before llama.cpp touched CUDA succeeded; the first one after crashed. Evict+swap
    in one process can't fix it — torch holds the (now-corrupted) context for the
    process lifetime.
    
    Fix: when GPUs are auto-detected and server.isolate_gguf_engine is True (default),
    each NVIDIA torch engine gets a co-located sibling gguf engine on the SAME card
    (own process -> own CUDA context). The torch engine drops the `gguf` capability and
    serves transformers/diffusers; the sibling (backend=nvidia so GGUF takes the proven
    CUDA-llama path, capabilities={gguf}) serves llama.cpp. Routing is already
    capability-based, so GGUF goes to the gguf engine and HF/diffusers to the torch
    engine. Both are real engine subprocesses, so the front's routing, VRAM/eviction and
    thermal (cooperative pause + SIGSTOP on the process group) apply unchanged — and
    SIGSTOPping the gguf engine no longer freezes the torch engine.
    
    Ignored when engine_specs is set (declare the split yourself). Disable with
    server.isolate_gguf_engine=false. Design + trade-offs (extra torch context, no
    cross-engine eviction on a shared card) in docs/gguf-process-isolation.md.
    Co-Authored-By: 's avatarClaude Opus 4.8 <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01RdMufYvtTbtGDWsiZVoXce
    2fae0beb
Name
Last commit
Last update
..
admin Loading commit data...
api Loading commit data...
backends Loading commit data...
broker Loading commit data...
frontproxy Loading commit data...
models Loading commit data...
openai Loading commit data...
pydantic Loading commit data...
queue Loading commit data...
tasks Loading commit data...
__init__.py Loading commit data...
cli.py Loading commit data...
config.py Loading commit data...
main.py Loading commit data...
platform_paths.py Loading commit data...
system_app.py Loading commit data...