问题出现得很突然,日志倒是留得挺全。在 RTX 5090 上启动 WebUI 并加上 –xformers,生成图片时报 CUDA error: no kernel image is available for execution on the device。

刚开始盯着「显卡驱动太旧,运行时不认新卡」,折腾了半个多小时,排掉了。

真正麻烦的地方在于,几个原因的现象几乎一样。xformers 的预编译包不支持新架构算力。另一种情况是torch 版本与该 xformers 轮子不匹配。

不容易想到的是,混装了多个 xformers 版本,加载到旧的。

第一件事是确认显卡算力与 torch 版本

python -c "import torch;print(torch.cuda.get_device_capability(), torch.__version__)"

接着按对应版本重装 xformers

pip install xformers --index-url https://download.pytorch.org/whl/cu124

临时去掉该参数,用原生注意力跑通

set COMMANDLINE_ARGS=--medvram

等前面都确认过,再确认启动日志里加载的是新版本

python -c "import xformers;print(xformers.__version__)"

这类问题以前遇到过,但这次的触发条件和上次不一样。

别只看报错消失,验证要多做一步。出图不再报算力不支持,速度比原生注意力略快,显存占用小幅下降。

容易忽略的是,新卡上市初期各类加速库经常没有对应轮子,先用原生实现跑通业务,等生态跟上再开加速更稳妥。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。

作者 9823189