ubuntu环境调用onnxruntime找不到GPU的问题

问题: python安装好onnxruntime无法调用gpu。

 通过如下代码测试,均为False。

import onnxruntime as ort

# 检查ONNX Runtime是否支持CUDA
def is_onnxruntime_cuda_supported():
    return ort.get_device() == 'GPU'

# 检查ONNX Runtime是否使用CUDA
def is_onnxruntime_using_cuda():
    providers = ort.get_available_providers()
    print(providers)
    return 'CUDAExecutionProvider' in providers

# 测试代码
print(f"ONNX Runtime CUDA Supported: {is_onnxruntime_cuda_supported()}")
print(f"ONNX Runtime Using CUDA: {is_onnxruntime_using_cuda()}")

先把正确结果给出,里面安装了tensorrt库,忽视。

ONNX Runtime CUDA Supported: True
['TensorrtExecutionProvider', 'CUDAExecutionProvider', 'CPUExecutionProvider']
ONNX Runtime Using CUDA: True


排查顺序

  •  确认onnxruntime的安装顺序。这个特别坑。

  1. 需要先装onnxruntime, 然后再装 onnxruntime_gpu。 两者安装会有个别文件被覆盖。

  2. 如果只装onnxruntime_gpu,会报错,找不到onnxruntime。 
  3. 手动按顺序重新安装一遍。或者卸载,后按顺序安装。
  • 确认onnx版本与cuda,cudnn是否匹配。

  1. 参考官网链接: NVIDIA - CUDA | onnxruntime

  2. 版本匹配其实不是要求特别准确,前后版本差别别太大,都没问题。下图供参考,cuda12,11,10全的参考上述链接。

  • 如果还找不到,可能与环境变量 PATH, LD_LIBRARY_PATH设置有关。

  1.  参考修改设置代码

    vim ~/.bashrc 
    export PATH=/usr/local/cuda/bin:$PATH
    export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

 下载需要的链接

  1. cuda:  CUDA Toolkit Archive | NVIDIA Developer

  2. cudnn:  cuDNN Archive | NVIDIA Developer

  3. onnxruntime:  onnxruntime · PyPI    onnxruntime_gpu:    onnxruntime-gpu · PyPI

  4. tensorrt:  https://developer.nvidia.com/tensorrt/download    

  5. cpp onnxruntime:  Releases · microsoft/onnxruntime · GitHub

   网上一些其他的问题  

  1. onnx部署只与cuda, cudnn有关。 tensorrt部署是另一套。

  2. cpp 也有对应的版本要求。

  3.  不添加版本的安装,会使用最新版,肯定会有不匹配的问题。 下载需要指定版本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值