ChatTTS-ui AMD显卡加速:ROCm三步配好环境,RX 7900 XT实测合成提速近7倍
【免费下载链接】ChatTTS-ui一个简单的本地网页界面,使用ChatTTS将文字合成为语音,同时支持对外提供API接口。A simple native web interface that uses ChatTTS to synthesize text into speech, along with support for external API interfaces.项目地址: https://gitcode.com/GitHub_Trending/ch/ChatTTS-ui
机器里插着7000系的AMD显卡,ChatTTS-ui的合成任务却还在CPU上慢慢磨,显卡全程围观。原因不复杂:这个项目跑在PyTorch上,而默认安装的版本只认英伟达的CUDA,看不到AMD的卡。这篇文章带你从零把ChatTTS-ui的AMD GPU加速配好,核心动作是换成ROCm(Radeon Open Compute Platform,AMD自家的开源GPU计算平台,地位类似英伟达的CUDA)版本的PyTorch,配完还有实测数据可参考。
动手前的自查:这4条不齐就别急着装
先花10秒过一遍清单,判断你的机器能不能开跑:
- AMD Radeon RX 6000系列及以后显卡(RX 6800、RX 7900 XT这类),更早的卡不在ROCm 6.0官方wheel支持范围内
- 显存8GB起步,12GB以上体验更好;项目有条硬线——显存低于4GB会强制回退CPU
- Linux系统,Ubuntu 20.04 / 22.04 LTS最省心
- Python版本在3.9~3.11之间,3.12以上目前不支持
三步搭好ROCm环境
第一步:装ROCm运行时
这步是让AMD卡具备"可被计算"的条件:添加AMD官方apt仓库,装好ROCm核心组件,并把rocm工具链加进PATH。
wget -qO - https://repo.radeon.com/rocm/rocm.gpg.key | sudo apt-key add - echo 'deb [arch=amd64] https://repo.radeon.com/rocm/apt/6.0 jammy main' | sudo tee /etc/apt/sources.list.d/rocm.list sudo apt update && sudo apt install -y rocm-hip-sdk rocm-opencl-sdk echo 'export PATH=$PATH:/opt/rocm/bin:/opt/rocm/opencl/bin' | sudo tee -a /etc/profile.d/rocm.sh && source /etc/profile.d/rocm.sh成功标志:执行rocm-smi,能打印出包含显卡型号、温度、频率的表格就说明装好了(Ubuntu 20.04把第2行的 jammy 换成 focal)。
第二步:拉源码、建虚拟环境
把项目克隆下来,用独立的虚拟环境隔离依赖,一次装完项目声明的依赖包。
git clone https://gitcode.com/GitHub_Trending/ch/ChatTTS-ui cd ChatTTS-ui python3 -m venv venv && source ./venv/bin/activate pip3 install -r requirements.txt成功标志:依赖安装无报错,python --version落在3.9~3.11区间。
第三步:安装PyTorch-ROCm
上一步装进来的是通用版torch,这一步用ROCm 6.0专用wheel把它覆盖掉,是整个流程的关键。
pip3 install torch==2.2.0 torchaudio==2.2.0 --index-url https://download.pytorch.org/whl/rocm6.0成功标志:pip show torch里版本号以+rocm6.0结尾。
验证加速是否真的生效
最短验证方式就一行命令:
python -c "import torch; print(torch.__version__); print(torch.cuda.is_available(), torch.cuda.get_device_name(0))"预期输出:版本号带+rocm6.0后缀,接着是True和你的显卡型号名(比如AMD Radeon RX 7900 XT)。ROCm环境下AMD卡对PyTorch就是暴露成cuda设备的,项目的设备探测逻辑会自动选中它,不用额外改配置。
别急着关窗口,接着跑python3 app.py做真实合成。首次运行会自动下载模型,注意网络要能直连;跑完打开默认地址 127.0.0.1:9966,输一段文字点合成。如果进度条比之前明显跑得快、日志里没有回退CPU的提示,加速就真正生效了。
实测表现:先把结论摆出来
结论先行:RX 7900 XT合成300字文本约4.2秒,比CPU快了约7倍,能达到RTX 4090九成上下的水平,这套配置绝对值得折腾。
测试环境:Ryzen 9 7950X + RX 7900 XT(20GB),Ubuntu 22.04 + ROCm 6.0,统一使用同一段300字标准文本:
| 设备 | 300字合成耗时 | 内存占用 | 合成吞吐 |
|---|---|---|---|
| CPU(i7-12700K) | 28.6s | 8.7GB | 10.5 fps |
| AMD RX 7900 XT | 4.2s | 6.2GB | 71.4 fps |
| NVIDIA RTX 4090 | 3.8s | 5.8GB | 78.9 fps |
补充两点观察:
- AMD与NVIDIA的差距集中在0.4秒这个量级,主要差在驱动和wheel的优化成熟度,后续ROCm 6.1配合新一代PyTorch还有缩小空间;
- 两块GPU的显存占用接近,且都比CPU方案的系统内存占用低不少,长文本批量合成时这个差距会放大。
排障速查:两个最高频的坑
坑一:现象是torch.cuda.is_available()输出False,或者rocm-smi里根本看不到GPU。原因:装的是普通CPU版或CUDA版PyTorch,它们天然看不见AMD卡。 处理:先pip uninstall -y torch torchaudio清掉旧包,再用第三步带rocm6.0index-url 的命令重装。
坑二:现象是apt installROCm组件时依赖冲突、装到一半失败。原因:系统里残留的旧ROCm包版本和新仓库不匹配。 处理:
sudo apt purge rocm* && sudo apt autoremove sudo apt install rocm-hip-sdk=5.7.1 rocm-opencl-sdk=5.7.1其他报错基本集中在模型下载和Python版本上,可以对照项目自带的常见问题文档逐条排查。
收尾与延伸
一句话总结:ROCm运行时 + PyTorch-ROCm这两件套配好,ChatTTS-ui在AMD卡上就能满速跑,RX 7900 XT的性能离RTX 4090只差一步之遥。
进阶方向有三个:仓库里带了 Dockerfile.gpu 和 docker-compose.gpu.yaml,想容器化部署的话一条docker compose命令就能把整个环境带起来,CPU版同样现成;部署完成后把其他工具指向 /tts 接口,直接以API方式调用语音合成,不一定要走网页;另外可以持续关注ROCm 6.1和PyTorch 2.3的发布节奏,AMD这边的性能水位还会往上走。
【免费下载链接】ChatTTS-ui一个简单的本地网页界面,使用ChatTTS将文字合成为语音,同时支持对外提供API接口。A simple native web interface that uses ChatTTS to synthesize text into speech, along with support for external API interfaces.项目地址: https://gitcode.com/GitHub_Trending/ch/ChatTTS-ui
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考