You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

onnxruntime-gpu识别GPU但创建推理会话时仅使用CPU问题求助

ONNXRuntime 无法加载CUDA执行提供器排查方案
  • 版本兼容性校验
    onnxruntime-gpu的版本和CUDA、cuDNN版本是严格绑定的,不匹配会直接静默降级到CPU执行。onnxruntime 1.9.0官方适配的是CUDA 11.2 + cuDNN 8.1.1,你当前使用的CUDA 11.4、cuDNN 8.2.4版本高于适配要求,是最可能的诱因。你可以选择降级CUDA和cuDNN到适配版本,或者升级onnxruntime-gpu到匹配CUDA11.4的版本。
  • 环境变量校验
    执行echo $LD_LIBRARY_PATH确认输出中包含CUDA 11.4的lib64路径(默认是/usr/local/cuda-11.4/lib64)和cuDNN的库文件路径,避免动态库加载失败。如果是将cuDNN文件合并到CUDA目录的安装方式,需要确认cuDNN的so文件已经正确复制到CUDA的lib64目录下,权限配置正常。
  • 开启调试日志定位具体错误
    在创建InferenceSession前添加日志级别配置,输出加载CUDA提供器的详细报错信息:
    import onnxruntime as ort
    # 日志级别设为0即VERBOSE,输出所有加载日志
    ort.set_default_logger_severity(0)
    ort_session = ort.InferenceSession(onnx_file, providers=["CUDAExecutionProvider"])
    
    日志中会明确标注加载失败的原因,比如缺少动态库、符号不匹配、显存不足、GPU权限不足等,可根据具体报错进一步处理。
  • GPU访问权限校验
    执行nvidia-smi确认可以正常输出显卡信息,如果报错需检查当前用户是否在video用户组,或者/dev/nvidia*设备的访问权限是否正常。如果是在Docker容器内运行,需要确认容器启动时添加了--gpus all参数完成GPU挂载。
  • 残留安装包校验
    执行pip list | grep onnxruntime确认输出中仅存在onnxruntime-gpu,如果同时存在CPU版本的onnxruntime,需执行pip uninstall onnxruntime onnxruntime-gpu -y完全卸载后,再重新安装对应版本的onnxruntime-gpu。
  • 模型兼容性校验
    可使用官方公开的ResNet50 ONNX模型做测试,如果测试模型可以正常加载CUDA执行提供器,则说明你的自定义模型中存在不支持CUDA加速的特殊算子,可针对性调整算子实现。

内容的提问来源于stack exchange,提问作者kwagjj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 14:54:08