Commit Graph

19 Commits

Author SHA1 Message Date
bfe20b7742 Add timing instrumentation to pinpoint synthesis bottleneck
All checks were successful
Build ROCm Image / build (push) Successful in 3m21s
Wraps s3tokenizer, voice_encoder, and s3gen.inference with timing logs
so we can see exactly which step is consuming the missing ~33 seconds.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 13:09:14 -04:00
b990cacd31 Enable HSA_OVERRIDE_GFX_VERSION=10.3.0 for RX 6700 XT
All checks were successful
Build ROCm Image / build (push) Successful in 18s
gfx1031 is not natively supported in ROCm 7.2. Without the override
the GPU falls back to software emulation causing 40+ second synthesis.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 13:07:46 -04:00
2a80555c60 Disable MIOpen GEMM solver to fix null workspace fallback
All checks were successful
Build ROCm Image / build (push) Successful in 35s
PyTorch passes ptr=0 size=0 workspace to MIOpen convolutions, causing
GemmFwdRest to warn and fall back to a slow path on every operation.
MIOPEN_DEBUG_CONV_GEMM=0 skips GEMM entirely and uses Direct/Winograd
solvers which have no workspace requirement.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 13:00:21 -04:00
f15cdcf049 Pin base image to rocm/dev-ubuntu-22.04:7.2, restore torch 2.11.0
All checks were successful
Build ROCm Image / build (push) Successful in 16m4s
Using :latest was pulling a ROCm 6.x image whose MIOpen was incompatible
with our ROCm 7.2 PyTorch wheels. Pinning to the 7.2 tag gives matching
MIOpen libraries and should resolve the workspace/fallback performance issue.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 12:35:58 -04:00
b68bccb20f Revert to torch 2.5.1 + ROCm 6.1 (known working combination)
Some checks failed
Build ROCm Image / build (push) Has been cancelled
PyTorch 2.11.0 with ROCm 7.2 wheels against rocm/dev-ubuntu-22.04:latest
causes MIOpen version mismatches that force every convolution onto a slow
zero-workspace fallback path (41s synthesis). The existing working project
uses torch 2.5.1 + ROCm 6.1 successfully on the same base image.

Also remove MIOPEN_FIND_ENFORCE override - unnecessary with matched versions.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 12:34:06 -04:00
7a966c8532 Fix MIOPEN_FIND_ENFORCE: 3 -> 1 (DB_UPDATE)
Some checks failed
Build ROCm Image / build (push) Has been cancelled
Enforce=3 (SEARCH_DB_UPDATE) runs exhaustive kernel benchmarking on
every single GPU operation, making inference impossibly slow. Enforce=1
searches once, writes to cache, then reuses cached results on all
subsequent calls.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 12:29:54 -04:00
f45fa0496e Fix MIOpen workspace warnings and add kernel cache persistence
Some checks failed
Build ROCm Image / build (push) Has been cancelled
MIOPEN_FIND_ENFORCE=3 tells MIOpen to only select solvers that fit in
available workspace, eliminating the GemmFwdRest fallback warnings and
the associated performance hit. Persisting the MIOpen cache via a named
volume avoids kernel recompilation on every container start.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 12:20:18 -04:00
f81e5f42fb Switch to inline cache to avoid registry blob size limits
Some checks failed
Build ROCm Image / build (push) Has been cancelled
mode=max was hitting a 400 Bad Request when pushing the large ROCm
PyTorch layer (~GB) as a separate cache blob. Inline cache embeds
metadata in the already-pushed image instead, so no separate upload.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 12:14:35 -04:00
d9a540f8e8 Add registry layer cache and fix Dockerfile cache order
Some checks failed
Build ROCm Image / build (push) Failing after 19m47s
- CI: cache-from/cache-to with mode=max stores all intermediate layers
  in the registry so subsequent builds skip unchanged layers (especially
  the slow ROCm PyTorch download)
- Dockerfile: move COPY perth_stub.py below pip install layers so a
  stub change doesn't bust the cache for everything above it

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 11:53:32 -04:00
4b21d6c252 Fix TtsVoice missing required version argument
Some checks failed
Build ROCm Image / build (push) Has been cancelled
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 11:52:14 -04:00
de6156a336 Replace resemble-perth with a no-op stub
All checks were successful
Build ROCm Image / build (push) Successful in 17m32s
resemble-perth uses uv-build which is incompatible with the old system
pip in the ROCm base image. Since watermarking is unnecessary for
self-hosted private use, stub out the perth module so chatterbox's
import is satisfied without any build complexity.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 11:16:08 -04:00
dc7a3cf769 Upgrade to ROCm 7.2 and PyTorch 2.11.0
Some checks failed
Build ROCm Image / build (push) Failing after 7m25s
- Update torch/torchaudio to 2.11.0 with ROCm 7.2 wheel index
- Drop torchvision (unused for TTS) and pytorch_triton_rocm (bundled in 2.11)
- Update HSA_OVERRIDE_GFX_VERSION docs; RX 7000+ natively supported in ROCm 7.2

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 11:06:39 -04:00
d7247d31fe Install resemble-perth with --no-build-isolation
Some checks failed
Build ROCm Image / build (push) Failing after 5m28s
pip's isolated build environments don't have the uv binary available,
causing uv-build to fail. Installing with --no-build-isolation lets pip
use the already-installed uv from the system environment.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 10:58:21 -04:00
88c2084d19 Symlink uv binary to /usr/local/bin for pip build envs
Some checks failed
Build ROCm Image / build (push) Failing after 1m30s
pip's isolated build environments inherit system PATH but don't get
the uv binary automatically. Symlinking via uv.find_uv_bin() makes it
available so resemble-perth's uv-build backend can execute.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 10:53:14 -04:00
5d1689e7f4 Install uv before pip deps to support uv-build backend
Some checks failed
Build ROCm Image / build (push) Failing after 4m25s
resemble-perth uses uv as its build backend; without uv installed
the metadata-generation step fails.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 10:43:26 -04:00
84e87dceb2 Fix chatterbox deps to match official pyproject.toml
Some checks failed
Build ROCm Image / build (push) Failing after 4m21s
- Update transformers to 5.2.0 (required by official chatterbox)
- Add omegaconf (pulled by s3gen/flow.py)
- Install resemble-perth from git source
- Pin safetensors to 0.5.3
- Remove onnx (not a chatterbox dep)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 10:34:42 -04:00
7b34b202da Add missing chatterbox deps to requirements
All checks were successful
Build ROCm Image / build (push) Successful in 13m41s
resemble-perth, conformer, s3tokenizer, onnx, spacy-pkuseg, pykakasi,
and pyloudnorm are all chatterbox deps that were skipped by --no-deps
and need to be installed explicitly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 10:15:08 -04:00
16ea2853f5 Initial implementation: Chatterbox TTS with ROCm and Wyoming
All checks were successful
Build ROCm Image / build (push) Successful in 15m27s
Wyoming-only server built around the official chatterbox TTS model.
Includes ROCm/AMD GPU support, sentence-level streaming, config.yaml
management, and Gitea CI for container builds.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 09:51:09 -04:00
4b15e44181 Initial commit 2026-04-05 09:38:32 -04:00