mirror of
https://github.com/RVC-Boss/GPT-SoVITS.git
synced 2026-06-03 20:40:30 +08:00
Merge 40a5ea1f663ec3e6a8438c66d26428d0a33261d6 into 08d627c3338173c3229286d8787060d6559fe0f8
This commit is contained in:
commit
81d6dc4384
52
Dockerfile.rocm
Normal file
52
Dockerfile.rocm
Normal file
@ -0,0 +1,52 @@
|
||||
ARG ROCM_VERSION=7.2.3
|
||||
ARG PYTORCH_IMAGE=rocm/pytorch:rocm${ROCM_VERSION}_ubuntu24.04_py3.12_pytorch_release_2.9.1
|
||||
|
||||
FROM ${PYTORCH_IMAGE}
|
||||
|
||||
LABEL maintainer="AMD Community"
|
||||
LABEL description="GPT-SoVITS with ROCm support (RDNA3/RDNA4)"
|
||||
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
|
||||
RUN apt-get update -qq && \
|
||||
apt-get install -y --no-install-recommends \
|
||||
git ffmpeg unzip wget cmake make gcc g++ && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
WORKDIR /workspace/GPT-SoVITS
|
||||
|
||||
COPY requirements.txt extra-req.txt /workspace/GPT-SoVITS/
|
||||
|
||||
RUN pip install --no-cache-dir soundfile && \
|
||||
sed 's/onnxruntime-gpu.*/onnxruntime_migraphx/' requirements.txt > /tmp/requirements-rocm.txt && \
|
||||
pip install --no-cache-dir -r extra-req.txt --no-deps && \
|
||||
pip install --no-cache-dir -r /tmp/requirements-rocm.txt \
|
||||
-f https://repo.radeon.com/rocm/manylinux/rocm-rel-7.2.3/ && \
|
||||
pip install --no-cache-dir "starlette>=0.40.0,<1.0.0" && \
|
||||
python -c "import nltk; nltk.download('averaged_perceptron_tagger_eng'); nltk.download('averaged_perceptron_tagger'); nltk.download('cmudict')" && \
|
||||
rm -rf /tmp/* /root/.cache/pip
|
||||
|
||||
ARG HF_SOURCE=https://huggingface.co/XXXXRT/GPT-SoVITS-Pretrained/resolve/main
|
||||
RUN wget -q "${HF_SOURCE}/pretrained_models.zip" && \
|
||||
unzip -q -o pretrained_models.zip -d GPT_SoVITS && \
|
||||
rm pretrained_models.zip && \
|
||||
wget -q "${HF_SOURCE}/G2PWModel.zip" && \
|
||||
unzip -q -o G2PWModel.zip -d GPT_SoVITS/text && \
|
||||
rm G2PWModel.zip && \
|
||||
wget -q "${HF_SOURCE}/nltk_data.zip" -O nltk_data.zip && \
|
||||
PY_PREFIX=$(python -c "import sys; print(sys.prefix)") && \
|
||||
unzip -q -o nltk_data.zip -d "$PY_PREFIX" && \
|
||||
rm nltk_data.zip && \
|
||||
wget -q "${HF_SOURCE}/open_jtalk_dic_utf_8-1.11.tar.gz" && \
|
||||
PYOPENJTALK_DIR=$(python -c "import os, pyopenjtalk; print(os.path.dirname(pyopenjtalk.__file__))") && \
|
||||
tar -xzf open_jtalk_dic_utf_8-1.11.tar.gz -C "$PYOPENJTALK_DIR" && \
|
||||
rm open_jtalk_dic_utf_8-1.11.tar.gz
|
||||
|
||||
COPY . /workspace/GPT-SoVITS
|
||||
|
||||
ENV PYTHONPATH="/workspace/GPT-SoVITS:/workspace/GPT-SoVITS/GPT_SoVITS"
|
||||
ENV ROCBLAS_USE_HIPBLASLT=0
|
||||
|
||||
EXPOSE 9871 9872 9873 9874 9880
|
||||
|
||||
CMD ["/bin/bash"]
|
||||
52
README.md
52
README.md
@ -176,6 +176,58 @@ To run a specific service with Docker Compose, use:
|
||||
docker compose run --service-ports <GPT-SoVITS-CU126-Lite|GPT-SoVITS-CU128-Lite|GPT-SoVITS-CU126|GPT-SoVITS-CU128>
|
||||
```
|
||||
|
||||
#### Running with AMD ROCm (Docker)
|
||||
|
||||
GPT-SoVITS supports AMD GPUs via ROCm. Tested on RDNA4 (Radeon AI PRO R9700 / gfx1201) with ROCm 7.2.3.
|
||||
|
||||
**Requirements:**
|
||||
- AMD GPU with ROCm support (RDNA3 / RDNA4)
|
||||
- ROCm drivers installed on the host
|
||||
- Docker with GPU passthrough (`/dev/kfd` and `/dev/dri`)
|
||||
|
||||
**Quick start:**
|
||||
|
||||
```bash
|
||||
docker compose -f docker-compose-rocm.yaml run --service-ports GPT-SoVITS-ROCm
|
||||
```
|
||||
|
||||
**Or build and run manually:**
|
||||
|
||||
```bash
|
||||
docker build -f Dockerfile.rocm -t gpt-sovits:rocm .
|
||||
docker run -it --rm \
|
||||
--device=/dev/kfd --device=/dev/dri \
|
||||
--group-add video --group-add render \
|
||||
-e ROCBLAS_USE_HIPBLASLT=0 \
|
||||
-e is_half=true \
|
||||
--shm-size=16g \
|
||||
-p 9880:9880 -p 9874:9874 \
|
||||
gpt-sovits:rocm
|
||||
```
|
||||
|
||||
Then inside the container:
|
||||
|
||||
```bash
|
||||
python webui.py
|
||||
```
|
||||
|
||||
**Notes:**
|
||||
- `ROCBLAS_USE_HIPBLASLT=0` is required for RDNA4 (gfx1201) stability
|
||||
- RDNA3 (gfx1100/gfx1101) users may not need this env var
|
||||
- The first inference run will be slower due to MIOpen kernel auto-tuning; subsequent runs are faster
|
||||
- `onnxruntime-gpu` is replaced with [`onnxruntime_migraphx`](https://repo.radeon.com/rocm/manylinux/rocm-rel-7.2.3/) which provides `ROCMExecutionProvider` and `MIGraphXExecutionProvider` for GPU-accelerated ONNX inference
|
||||
|
||||
**Tested environment:**
|
||||
|
||||
| Component | Version |
|
||||
|-----------|---------|
|
||||
| GPU | AMD Radeon AI PRO R9700 (gfx1201 / RDNA4, 32GB) |
|
||||
| ROCm | 7.2.3 |
|
||||
| PyTorch | 2.9.1+rocm7.2.3 |
|
||||
| Python | 3.12 |
|
||||
| Model | GPT-SoVITS v2 pretrained |
|
||||
| Inference | ✅ Passed (fp16) |
|
||||
|
||||
#### Building the Docker Image Locally
|
||||
|
||||
If you want to build the image yourself, use:
|
||||
|
||||
30
docker-compose-rocm.yaml
Normal file
30
docker-compose-rocm.yaml
Normal file
@ -0,0 +1,30 @@
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
GPT-SoVITS-ROCm:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile.rocm
|
||||
image: gpt-sovits:rocm7.2.3
|
||||
container_name: GPT-SoVITS-ROCm
|
||||
ports:
|
||||
- "9871:9871"
|
||||
- "9872:9872"
|
||||
- "9873:9873"
|
||||
- "9874:9874"
|
||||
- "9880:9880"
|
||||
volumes:
|
||||
- .:/workspace/GPT-SoVITS
|
||||
environment:
|
||||
- is_half=true
|
||||
- ROCBLAS_USE_HIPBLASLT=0
|
||||
devices:
|
||||
- /dev/kfd
|
||||
- /dev/dri
|
||||
group_add:
|
||||
- video
|
||||
- render
|
||||
tty: true
|
||||
stdin_open: true
|
||||
shm_size: "16g"
|
||||
restart: unless-stopped
|
||||
Loading…
x
Reference in New Issue
Block a user