问题背景

NVIDIA RTX 5070TI 显卡在运行 Stable Diffusion(SD)时,若配置不当可能触发 sm_120 兼容性报错。该错误通常与 CUDA 架构版本不匹配或驱动/框架版本冲突有关,需针对性调整环境配置。


关键排查点

1. 确认显卡计算能力
RTX 5070TI 的计算能力需匹配 CUDA 架构版本。通过以下命令检查显卡支持的架构:

nvidia-smi --query-gpu=compute_cap --format=csv

若输出显示不支持 sm_120(如仅支持 sm_86 或更高),需升级 CUDA 工具包或调整框架的架构兼容性设置。


2. 更新驱动与CUDA工具包

  • 驱动版本:确保使用 NVIDIA 官方最新驱动(建议 550+ 版本)。
  • CUDA工具包:安装与驱动兼容的 CUDA 12.x 版本,避免旧版 CUDA(如 11.x)对新型显卡支持不足。
  • 验证安装
    nvcc --version
    nvidia-smi
    


3. 调整Stable Diffusion的CUDA架构参数
在启动 SD 时显式指定支持的架构(如 sm_86),避免强制使用 sm_120

export TORCH_CUDA_ARCH_LIST="8.6"  # 对应sm_86
python launch.py  # 启动SD

或在 webui-user.bat(Windows)中添加环境变量:

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


4. 检查PyTorch与CUDA的兼容性

  • 安装与 CUDA 12.x 匹配的 PyTorch 版本:
    pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
    

  • 验证 PyTorch 是否能识别显卡:
    import torch
    print(torch.cuda.is_available())  # 应输出True
    print(torch.cuda.get_device_name(0))  # 应显示5070TI
    


常见问题解决

报错示例
RuntimeError: CUDA error: no kernel image is available for execution on the device (sm_120)

解决方案

  • 检查 PyTorch 是否编译时包含对 sm_86 的支持(通过 torch.cuda.get_arch_list())。
  • 若问题持续,尝试从源码重新编译 PyTorch 或 SD 的依赖项,指定正确的架构:
    pip install -v --no-cache-dir --global-option="--nvccarg=--gpu-architecture=sm_86" .
    


优化建议

  • 禁用半精度模式:通过 --no-half 参数避免低精度计算引发的兼容性问题。
  • 使用最新SD分支:如 Automatic1111ComfyUI,确保支持新显卡架构。
  • 清理缓存:删除 ~/.cache/huggingfacevenv 目录后重新安装依赖。

通过以上步骤可系统性解决 sm_120 报错问题,确保 RTX 5070TI 在 Stable Diffusion 中稳定运行。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐