From 5a59ea3930649dbd00029181f3e6fe07d2dfafaf Mon Sep 17 00:00:00 2001 From: duffyduck Date: Sun, 25 Oct 2026 12:51:41 +0100 Subject: [PATCH] fix(xtts): Flotte zeigt die echte Karte statt "GPU void" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Das NVIDIA-Container-Toolkit ersetzt NVIDIA_VISIBLE_DEVICES im Prozess durch "void" — whisper/f5tts/voxtral meldeten das als GPU. Die Compose gibt die Karte jetzt zusaetzlich als ARIA_GPU mit (nur Anzeige). Co-Authored-By: Claude Opus 5.5 --- xtts/docker-compose.yml | 3 +++ xtts/f5tts/bridge.py | 6 +++++- xtts/voxtral/bridge.py | 6 +++++- xtts/whisper/bridge.py | 6 +++++- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/xtts/docker-compose.yml b/xtts/docker-compose.yml index b0943cc..b67e0d8 100644 --- a/xtts/docker-compose.yml +++ b/xtts/docker-compose.yml @@ -43,6 +43,7 @@ services: environment: # GPU-Wahl: NVIDIA_VISIBLE_DEVICES (mehrere via "0,1"). Default GPU 0. - NVIDIA_VISIBLE_DEVICES=${F5TTS_GPU:-0} + - ARIA_GPU=${F5TTS_GPU:-0} # nur Anzeige (Toolkit macht aus NVIDIA_VISIBLE_DEVICES "void") - NVIDIA_DRIVER_CAPABILITIES=compute,utility - NODE_NAME=${NODE_NAME:-node} # erscheint in Diagnostic + Logs # Bootstrap-only — alle anderen F5-TTS-Settings (Modell, cfg_strength, @@ -70,6 +71,7 @@ services: runtime: nvidia environment: - NVIDIA_VISIBLE_DEVICES=${WHISPER_GPU:-1} + - ARIA_GPU=${WHISPER_GPU:-1} # nur Anzeige (Toolkit macht aus NVIDIA_VISIBLE_DEVICES "void") - NVIDIA_DRIVER_CAPABILITIES=compute,utility - NODE_NAME=${NODE_NAME:-node} - RVS_HOST=${RVS_HOST} @@ -105,6 +107,7 @@ services: - ./voice-id:/voice-id # Speaker-Fingerprint (wie whisper) environment: - NVIDIA_VISIBLE_DEVICES=${VOXTRAL_GPU:-1} # STT-3B ~9 GB → 12-GB-Karte + - ARIA_GPU=${VOXTRAL_GPU:-1} # nur Anzeige (Toolkit macht aus NVIDIA_VISIBLE_DEVICES "void") - NVIDIA_DRIVER_CAPABILITIES=compute,utility - NODE_NAME=${NODE_NAME:-node} - RVS_HOST=${RVS_HOST} diff --git a/xtts/f5tts/bridge.py b/xtts/f5tts/bridge.py index 474eddd..c7a92d4 100644 --- a/xtts/f5tts/bridge.py +++ b/xtts/f5tts/bridge.py @@ -78,7 +78,11 @@ F5TTS_DEVICE = os.getenv("F5TTS_DEVICE", "cuda") # nur Bootstrap # ── Compute-Fleet: Worker-Identitaet & Registrierung ────────────── # Meldet sich bei der aria-bridge (worker_hello) + periodischer worker_ping. NODE_NAME = os.getenv("NODE_NAME", "node").strip() or "node" -GPU_IDS = os.getenv("NVIDIA_VISIBLE_DEVICES", "").strip() +# Welche Karte(n) dieser Dienst nutzt — fuer die Anzeige. ARIA_GPU setzt die +# Compose; NVIDIA_VISIBLE_DEVICES ersetzt das Container-Toolkit im Prozess +# durch "void", taugt also nicht zur Anzeige. +GPU_IDS = (os.getenv("ARIA_GPU", "").strip() + or os.getenv("NVIDIA_VISIBLE_DEVICES", "").strip().replace("void", "")) WORKER_SERVICE = "f5tts" INSTANCE_ID = f"{WORKER_SERVICE}@{NODE_NAME}" WORKER_PING_INTERVAL_S = int(os.getenv("WORKER_PING_INTERVAL_S", "10")) diff --git a/xtts/voxtral/bridge.py b/xtts/voxtral/bridge.py index f01d012..afeaa2c 100644 --- a/xtts/voxtral/bridge.py +++ b/xtts/voxtral/bridge.py @@ -78,7 +78,11 @@ VOXTRAL_DEVICE = os.getenv("VOXTRAL_DEVICE", "cuda") # Registry per periodischem worker_ping frisch. INSTANCE_ID adressiert diesen # Worker bei Redundanz (targetInstance-Routing, Stage 3). NODE_NAME = os.getenv("NODE_NAME", "node").strip() or "node" -GPU_IDS = os.getenv("NVIDIA_VISIBLE_DEVICES", "").strip() +# Welche Karte(n) dieser Dienst nutzt — fuer die Anzeige. ARIA_GPU setzt die +# Compose; NVIDIA_VISIBLE_DEVICES ersetzt das Container-Toolkit im Prozess +# durch "void", taugt also nicht zur Anzeige. +GPU_IDS = (os.getenv("ARIA_GPU", "").strip() + or os.getenv("NVIDIA_VISIBLE_DEVICES", "").strip().replace("void", "")) WORKER_SERVICE = "voxtral" INSTANCE_ID = f"{WORKER_SERVICE}@{NODE_NAME}" WORKER_PING_INTERVAL_S = int(os.getenv("WORKER_PING_INTERVAL_S", "10")) diff --git a/xtts/whisper/bridge.py b/xtts/whisper/bridge.py index 5b944a6..60da248 100644 --- a/xtts/whisper/bridge.py +++ b/xtts/whisper/bridge.py @@ -77,7 +77,11 @@ WHISPER_LANGUAGE = os.getenv("WHISPER_LANGUAGE", "de") # ── Compute-Fleet: Worker-Identitaet & Registrierung ────────────── # Meldet sich bei der aria-bridge (worker_hello) + periodischer worker_ping. NODE_NAME = os.getenv("NODE_NAME", "node").strip() or "node" -GPU_IDS = os.getenv("NVIDIA_VISIBLE_DEVICES", "").strip() +# Welche Karte(n) dieser Dienst nutzt — fuer die Anzeige. ARIA_GPU setzt die +# Compose; NVIDIA_VISIBLE_DEVICES ersetzt das Container-Toolkit im Prozess +# durch "void", taugt also nicht zur Anzeige. +GPU_IDS = (os.getenv("ARIA_GPU", "").strip() + or os.getenv("NVIDIA_VISIBLE_DEVICES", "").strip().replace("void", "")) WORKER_SERVICE = "whisper" INSTANCE_ID = f"{WORKER_SERVICE}@{NODE_NAME}" WORKER_PING_INTERVAL_S = int(os.getenv("WORKER_PING_INTERVAL_S", "10"))