问题背景

5070TI显卡搭配SD(Stable Diffusion)时出现sm_120报错,通常是由于CUDA架构不兼容或环境配置不当导致。该问题常见于显卡驱动、CUDA版本、PyTorch版本或Stable Diffusion依赖项不匹配。


解决步骤

检查显卡驱动和CUDA兼容性 确保NVIDIA显卡驱动版本支持CUDA 12.0及更高版本。运行以下命令查看驱动支持的CUDA版本:

nvidia-smi

输出中CUDA Version需为12.x。若驱动过旧,需升级至最新版。

验证CUDA Toolkit安装 确认安装的CUDA Toolkit版本与PyTorch兼容。5070TI需CUDA 12.x:

nvcc --version

若未安装或版本不匹配,需卸载旧版并重新安装CUDA 12.x。

安装匹配的PyTorch版本 PyTorch需支持CUDA 12.x和sm_89(5070TI的计算能力)。使用以下命令安装:

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

修改Stable Diffusion配置 在Stable Diffusion的启动脚本或配置文件中,显式指定计算能力为sm_89(5070TI的架构)。例如,修改webui-user.bat(Windows)或webui.sh(Linux):

set COMMANDLINE_ARGS=--precision full --no-half --skip-torch-cuda-test

重新编译依赖项 若报错仍存在,可能需要手动编译相关库。例如,卸载并重装xformers

pip uninstall xformers -y
pip install xformers --no-deps --force-reinstall

验证环境 运行以下Python代码检查CUDA是否可用及计算能力:

import torch
print(torch.cuda.is_available())
print(torch.cuda.get_device_capability(0))

输出应为(8, 9),表示支持sm_89


常见问题排查

CUDA与PyTorch版本冲突 若PyTorch安装后仍报错,尝试指定版本:

pip install torch==2.1.0+cu121 -f https://download.pytorch.org/whl/torch_stable.html

虚拟环境问题 建议在干净的Python虚拟环境中操作:

python -m venv sd_env
source sd_env/bin/activate  # Linux
sd_env\Scripts\activate     # Windows

Stable Diffusion版本适配 确保使用最新版Stable Diffusion WebUI,旧版可能不支持新显卡架构。更新仓库:

git pull origin master


最终验证

完成上述步骤后,重启Stable Diffusion WebUI。若仍报错,检查日志文件中的详细错误信息,进一步调整CUDA或PyTorch版本。

Logo

鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。

更多推荐