pin parler's own CUDA stack, and check a venv can run what the worker needs
With the environment fixed, Parler got further: the venv built, the service
started, the model loaded — and the first synthesis died in the DAC audio
decoder's conv1d.
RuntimeError: CUDNN_BACKEND_TENSOR_DESCRIPTOR cudnnFinalize failed
ptrDesc->finalize() cudnn_status: CUDNN_STATUS_SUBLIBRARY_LOADING_FAILED
Every cudnn sublibrary present in the venv, and the stack unable to load them:
a torch 2.15 with the CUDA-13 wheels that `pip install git+…parler-tts` had
resolved on its own, because nothing pinned it. requirements-parler.txt names
the build now, the way every other isolated worker's file does.
The health check was the deeper problem. `import parler_tts, soundfile`
answered True for that venv for ever, so nothing ever rebuilt it. A venv's
check has to exercise what the worker actually does: the decoder is
convolutional, so the probe is one conv1d on the GPU, and a venv that imports
but cannot run it is rebuilt from the pinned file. A CPU-only host passes —
there is no GPU stack there to be broken.
The service also latches cudnn off if it still fails there. torch has native
kernels for those convolutions, the decoder is a fraction of the work, and the
alternative is no speech at all.
Co-Authored-By:
Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014T3rZozi1Ehk96NG1WesgC
Showing
requirements-parler.txt
0 → 100644
Please
register
or
sign in
to comment