The first CUDA inference pays a large lazy cost (kernel autotune/cudnn) — ~10s for a cold TTS synth — which would blow the voice loop's ~1s budget on the very first reply. Each worker now runs one dummy inference (TTS: a short phrase; STT: 1s of silence) after model load and before emitting "ready", so "ready" means "hot". Warmup failures are logged and never block startup. Verified: first real call after startup is now TTS ~238ms / STT ~189ms (was ~11s cold for TTS). 12 tests pass. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
4.0 KiB
4.0 KiB