onnxruntime-gpu 与 CUDA 版本不匹配导致检测节点悄悄退回 CPU(Failed to create CUDAExecutionProvider) / 全站资源搜索
搜索 更新 2026-10-02
报错 066 PyTorch、CUDA 运行库与加速库冲突 含未核实说明

onnxruntime-gpu 与 CUDA 版本不匹配导致检测节点悄悄退回 CPU(Failed to create CUDAExecutionProvider)

报错原文(原样)
Failed to create CUDAExecutionProvider. Require cuDNN 9.* and CUDA 12.*, and the latest MSVC runtime. Please install all dependencies as mentioned in the GPU requirements page, make sure they're in the PATH, and that your GPU is supported.
检索关键词 Failed to create CUDAExecutionProvider、Require cuDNN 9.* and CUDA 12.*、libcublasLt.so.12: No such file or directory、onnxruntime 装成 CPU 版、DWPose onnxruntime、onnxruntime and onnxruntime-gpu can not co-exist
先看这一句 人脸检测 / 姿态估计(DWPose)等用 onnxruntime 的节点在启动时给出 CUDAExecutionProvider 相关警告,随后整段推理走在 CPU 上,节点耗时剧增甚至像卡死;ComfyUI 本身出图不受影响。
适用版本 全版本通用,取决于节点自带的 onnxruntime 版本。50 系用户若同时使用 cu128/cu130 的 torch 与需要 CUDA 12 DLL 的 onnxruntime,容易出现“torch 走 13、onnxruntime 要 12”的双运行时局面。 · 核实日期 2026-09-26 · 状态 可能已过期,正在复核
适用环境:Windows 便携版、秋叶/绘世整合包、ComfyUI Desktop、Linux + 云 GPU、全部主流环境

现象与触发场景

常见触发场景:

  • 装了 onnxruntime-gpu 但版本与系统 CUDA/cuDNN 不匹配
  • 同一环境里同时装了 onnxruntime(CPU 版)和 onnxruntime-gpu,两者互相覆盖
  • 系统里只有 CUDA 13 的 DLL,而 onnxruntime 的 CUDA provider 按名字去找 CUDA 12 的 DLL

根因

  • onnxruntime 的 CUDA provider 是单独编译的 DLL/SO,加载失败时 onnxruntime 会静默退回 CPU,只在日志里留一行警告。
  • 官方 issue 记录:onnxruntime 与 onnxruntime-gpu 无法共存,同时安装会导致 CUDAExecutionProvider 不可用,必须先卸载其中一个。
  • 实测记录:ONNX Runtime(如 1.24)会按带版本后缀的名字找 CUDA 12 的 DLL(cudart64_12.dll、cublas64_12.dll、cufft64_11.dll),只装了 CUDA 13 的机器上找不到这些名字,程序就报 CUDA 不可用并回退 CPU——DLL 名字里的版本号就是硬约束。
  • 另一个常见原因是 onnxruntime-gpu 版本要求的 cuDNN 大版本(如 9.x)与机器上安装的不符。

解决步骤

已按「最可能有效」排序。请从上往下做,每做完一步用「验证」确认,不要一次改五处。

  1. 先确认当前环境里装的是哪个 onnxruntime、版本多少
    打印 onnxruntime 的版本与可用的执行提供程序列表,看 CUDAExecutionProvider 是否在列表里;不在列表说明当前就是 CPU 版。
    .\python_embeded\python.exe -c "import onnxruntime as ort; print(ort.__version__); print(ort.get_available_providers())"
  2. 卸载 CPU 版、只留 onnxruntime-gpu 并安装与 CUDA/cuDNN 匹配的版本
    先卸载 onnxruntime 与 onnxruntime-gpu,再只安装 onnxruntime-gpu 的一个版本;该版本必须满足它自己文档要求的 CUDA 与 cuDNN 大版本(当前错误提示里明确写的是 cuDNN 9.* 与 CUDA 12.*)。
    .\python_embeded\python.exe -m pip uninstall -y onnxruntime onnxruntime-gpu
    .\python_embeded\python.exe -m pip install onnxruntime-gpu
    .\python_embeded\python.exe -c "import onnxruntime as ort; print(ort.get_available_providers())"
  3. 按 DLL 名字补齐缺失的 CUDA 运行时,或直接接受 CPU 回退
    如果报错是找不到某个具体 DLL(Windows 常见 onnxruntime_providers_cuda.dll 加载失败,Linux 常见 libcublasLt.so.12),就按它要求的 CUDA 大版本补装对应运行时并把目录加入 PATH;如果这个节点不是你的关键路径,也可以保留 CPU 回退,只是速度慢。
    .\python_embeded\python.exe -c "import onnxruntime as ort; ort.set_default_logger_severity(0); print(ort.get_available_providers())"

验证是否修好

ort.get_available_providers() 的输出里出现 CUDAExecutionProvider 且不带警告;原来走 CPU 的检测节点耗时明显下降。

补充说明

[未核实] 不同节点的 onnxruntime 依赖版本不同,具体该装哪个 onnxruntime-gpu 版本需按该节点的 requirements 与其文档要求选择,本条目未给出具体版本号以免误导。

来源

按可信度排列:官方 issue / 官方文档 > 节点仓库 issue > 社区帖 > 中文社区文章。 链接以纯文本给出(本站不做站外跳转),需要核对时请自行复制到浏览器打开。
  1. [158] (节点仓库 issue) `onnxruntime` and `onnxruntime-gpu` can not co-exist and support CUDAE https://github.com/microsoft/onnxruntime/issues/26996
  2. [159] (节点仓库 issue) [IMPORTANT] Check your Reactor uses GPU -- not CPU!! · Gourieff/ComfyU https://github.com/Gourieff/ComfyUI-ReActor/discussions/169
  3. [146] (社区) RTX 5090 survival guide: sm_120, CUDA 12 and 13 side by side, and the  https://dev.to/madcoolseed/rtx-5090-survival-guide-sm120-cuda-12-and-13-side-by-side-and-the-xformers-trap-25nh
  4. 网络、下载与访问(含国内网络环境)(11 条)
本条的可靠性边界 下面这些位置带 [未核实] 标记,是采集时没找到一手来源的部分,请自行验证:
  • 补充说明

这条报错要用到的东西

按本条报错所属的类别(PyTorch、CUDA 运行库与加速库冲突)列出站内相关的下载包与板块入口。 它们不是「必须下载才能修好」,而是这一类问题里最常要动到的东西;具体怎么做,以上面的解决步骤为准。

环境与依赖配置包依赖版本组合清单 / 环境自检脚本说明 待挂载

同一类别的其他条目

这个解法对你有效吗 记录只存在你自己的浏览器里,不需要注册账号。

返回报错库