* Fix ROCm setup for Linux AMD GPUs
- Ensure Docker ROCm builds resolve PyTorch packages from the ROCm wheel index so later dependency installs do not replace them with CUDA wheels.
- Move ROCm device group handling to a runtime entrypoint that joins the groups owning /dev/kfd and /dev/dri, avoiding distro-specific render/video GID defaults.
- Leave HSA_OVERRIDE_GFX_VERSION unset by default in the ROCm compose overlay so newer RDNA GPUs can use native ROCm detection.
- Add Linux GPU detection to the Unix setup recipe so AMD systems install ROCm torch wheels and NVIDIA systems install CUDA wheels before backend dependencies.
* docs(changelog): add Linux ROCm setup entry
* fix(setup): pin ROCm torch wheels and prefer NVIDIA over amdgpu
- Install torch/torchaudio from the ROCm index only, before the pooled
requirements install, so a plain PyPI (CUDA) wheel can't outrank +rocm
- Detect NVIDIA before AMD and gate ROCm on /dev/kfd, so hybrid
AMD+NVIDIA hosts get CUDA instead of ROCm
* fix(docker): add ROCm GPU support via compose overlay
Fixes#618. The Docker image installs CPU-only PyTorch from PyPI by
default, so even when users correctly pass /dev/kfd and /dev/dri device
nodes into the container, torch.cuda.is_available() returns False and
the GPU is reported as "None (CPU only)".
Changes:
- Dockerfile: add PYTORCH_VARIANT build arg (default: cpu). When set to
"rocm", the ROCm-enabled PyTorch wheels are installed from the
pytorch.org/whl/rocm6.3 index before requirements.txt runs, so pip
sees the ROCm build as already satisfying the torch>=2.2.0 constraint
and does not overwrite it with the CPU wheel. The render and video
groups are created with parameterised GIDs (RENDER_GID / VIDEO_GID,
defaulting to Ubuntu 22.04 values) and the voicebox user is added to
both groups so it can open /dev/kfd and /dev/dri.
- docker-compose.rocm.yml: new compose overlay that wires everything
together — PYTORCH_VARIANT=rocm build arg, /dev/kfd + /dev/dri device
passthrough, group_add for render/video, HSA_OVERRIDE_GFX_VERSION
(defaults to 11.0.0 for RDNA3/Strix Halo with a comment listing
values for RDNA2/RDNA1/Vega), and PYTORCH_HIP_ALLOC_CONF for the
memory allocator. Usage:
docker compose -f docker-compose.yml -f docker-compose.rocm.yml up --build
- docker-compose.yml: add a comment pointing to the ROCm overlay.
The CPU default path is unchanged — no extra build time, no size increase.
Co-authored-by: Cursor <[email protected]>
* fix(docker): address review comments on ROCm overlay
Two issues raised in PR review:
1. CodeRabbit: `docker compose up --build-arg` is not supported by the
`up` subcommand. Replaced the GID override instructions with the
correct env-var export pattern. Added RENDER_GID and VIDEO_GID to
`build.args` using ${VAR:-default} interpolation so a single export
covers both the Dockerfile group creation and the runtime group_add.
Changed group_add entries from hardcoded strings to the same
interpolated vars so host GIDs stay in sync end-to-end.
2. @Xarianne: ROCm 6.3 does not support RDNA 4 (RX 9000 series) cards.
Added a ROCM_VERSION build arg (default 6.3) to both the Dockerfile
and docker-compose.rocm.yml so users can set ROCM_VERSION=7.2 for
RDNA 4 support without editing any files. Added RDNA 4 / 12.0.0 to
the HSA_OVERRIDE_GFX_VERSION comment table.
Co-authored-by: Cursor <[email protected]>
---------
Co-authored-by: Cursor <[email protected]>
Integrates HumeAI's TADA (Text-Acoustic Dual Alignment) speech-language
model as a new TTS engine. TADA uses a novel 1:1 token-audio alignment
that produces coherent speech over long sequences (700s+).
Two model variants:
- tada-1b: English-only, ~4GB, built on Llama 3.2 1B
- tada-3b-ml: 10 languages, ~8GB, built on Llama 3.2 3B
Backend uses the Encoder for voice prompt encoding with caching, and
TadaForCausalLM with flow-matching diffusion for generation. Supports
bf16 inference on CUDA, forces CPU on macOS (MPS compatibility).
Installed with --no-deps due to torch>=2.7 pin conflict; descript-audio-codec
and torchaudio added as explicit sub-dependencies.