【问题标题】:onnxruntime not using CUDAonnxruntime 不使用 CUDA
【发布时间】:2021-11-18 04:13:13
【问题描述】:

环境:

  • CentOS 7
  • python 3.9.5
  • CUDA:11.4
  • cudnn: 8.2.4
  • onnxruntime-gpu: 1.9.0
  • nvidia 驱动程序:470.82.01
  • 1 特斯拉 v100 显卡

虽然 onnxruntime 似乎正在识别 gpu,但在创建推理会话时,它似乎不再识别 gpu。以下代码显示了这种症状。

import  onnxruntime as ort


print(f"onnxruntime device: {ort.get_device()}") # output: GPU

print(f'ort avail providers: {ort.get_available_providers()}') # output: ['CUDAExecutionProvider', 'CPUExecutionProvider']

ort_session = ort.InferenceSession(onnx_file, providers=["CUDAExecutionProvider"])

print(ort_session.get_providers()) # output: ['CPUExecutionProvider']

我不知道是什么导致推理会话无法检测和使用 CUDA gpu。

我尝试在删除onnxruntimeonnx 包后重新安装onnxruntime-gpu,但此问题仍然存在。

关于去哪里看有什么建议吗?

【问题讨论】:

    标签: onnx onnxruntime


    【解决方案1】:

    添加适当的 PATH 后,LD_LIBRARY_PATH 代码就可以工作了。 我想我是忽略了添加它们,因为我已经习惯了长时间使用 pytorch 时不关心它们。

    我做了什么:

    export PATH=/usr/local/cuda-11.4/bin:$PATH
    export LD_LIBRARY_PATH=/usr/local/cuda-11.4/lib64:$LD_LIBRARY_PATH
    

    在此之后,问题中的代码有效,最后一行给出了我想要的输出。

    print(ort_session.get_providers()) # output: ['CUDAExecutionProvider', 'CPUExecutionProvider']
    

    我可以看到 nvidia-smi 消耗了 gpu 内存

    【讨论】:

      猜你喜欢
      • 2022-11-19
      • 2021-08-28
      • 1970-01-01
      • 2022-08-22
      • 2019-01-27
      • 2020-03-21
      • 1970-01-01
      • 1970-01-01
      • 2021-01-24
      相关资源
      最近更新 更多