Skip to content

在搭载RTX 50系显卡的Windows系统上部署GPT-SoVITS(WSL2方案) #2026

Description

@syd2333

环境背景

  • Windows 11 + WSL2 (Ubuntu)
  • NVIDIA RTX 5080
  • CUDA 12.8
  • Python 3.10

问题概述

RTX 50系显卡刚发布,目前Windows版PyTorch还未支持CUDA 12.8。同时,GPT-SoVITS项目与最新版PyTorch存在兼容性问题。主要涉及:

  1. 类型注解问题(Tuple未定义)
  2. PyTorch 2.6+的weights_only参数默认值变更导致的模型加载问题
  3. 项目路径结构问题

解决方案

1. WSL2环境配置

# 创建并激活虚拟环境
python3 -m venv venv
source venv/bin/activate

# 安装支持CUDA 12.8的PyTorch nightly版本
pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu128

2. 验证CUDA可用性

import torch
print(f'PyTorch version: {torch.__version__}')
print(f'CUDA available: {torch.cuda.is_available()}')
print(f'CUDA version: {torch.version.cuda}')
print(f'GPU device: {torch.cuda.get_device_name(0)}')

3. 项目代码修改

需要修改的文件:GPT_SoVITS/AR/modules/patched_mha_with_cache.pyGPT_SoVITS/inference_webui.py

3.1 修复Tuple类型注解问题

# 在patched_mha_with_cache.py文件开头添加
from typing import Tuple

3.2 解决PyTorch模型加载兼容性问题

inference_webui.py文件中:

# 添加必要的导入
from torch.serialization import add_safe_globals
from utils import HParams
add_safe_globals([HParams])

# 修改模型加载部分
dict_s2 = torch.load(sovits_path, map_location="cuda", weights_only=False)

4. 项目路径结构

确保模型文件位于正确的目录结构:

~/projects/GPT-SoVITS/
└── GPT_SoVITS/
    └── pretrained_models/
        ├── chinese-roberta-wwm-ext-large/
        ├── chinese-hubert-base/
        └── gsv-v2final-pretrained/

5. 启动WebUI

python webui.py --host 0.0.0.0 --port 9880

注意事项

  1. 建议在WSL2的原生文件系统中操作,而不是在mounted目录(/mnt/)下,以获得更好的性能
  2. 使用weights_only=False可能存在安全风险,请确保模型文件来源可信
  3. 确保系统已正确安装NVIDIA驱动并支持WSL2

常见问题

  1. 如遇到路径问题,检查模型文件的目录结构
  2. 如果出现CUDA相关错误,确认PyTorch版本与CUDA版本匹配
  3. 如遇到模型加载错误,检查是否正确添加了HParams支持

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions