Ubuntu20系统中ONNX Runtime创建CUDAExecutionProvider失败原因排查
解决onnxruntime-gpu CUDA执行器偶发创建失败问题
问题复现
运行以下代码时偶发报错:
import onnxruntime as rt ort_session = rt.InferenceSession( "my_model.onnx", providers=["CUDAExecutionProvider"], )
报错提示:
[W:onnxruntime:Default, onnxruntime_pybind_state.cc:578 CreateExecutionProviderInstance] Failed to create CUDAExecutionProvider. Please reference https://onnxruntime.ai/docs/reference/execution-providers/CUDA-ExecutionProvider.html#requirements to ensure all dependencies are met.
环境:VS Code Jupyter环境、Python 3.8.15、onnxruntime-gpu 1.13.1,切换为["CPUExecutionProvider"]可正常运行。
排查与解决步骤
- 严格匹配版本依赖:onnxruntime-gpu 1.13.1要求搭配CUDA 11.6、cuDNN 8.4.x,版本不匹配是偶发报错的核心原因。可通过以下命令查看当前环境的CUDA组件版本:
若版本不符,执行安装命令调整:conda list cudatoolkit conda list cudnnconda install cudatoolkit=11.6 cudnn=8.4.0 -c conda-forge - 手动配置环境变量:Jupyter环境可能无法自动加载系统CUDA环境变量,可在Notebook开头手动添加路径配置:
import os # 替换为你的CUDA 11.6安装路径 os.environ['CUDA_PATH'] = '/usr/local/cuda-11.6' # Linux示例 # os.environ['CUDA_PATH'] = 'C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v11.6' # Windows示例 os.environ['PATH'] = os.environ['CUDA_PATH'] + '/bin:' + os.environ['PATH'] - 清理缓存并重启环境:偶发报错可能源于Jupyter进程缓存了旧依赖,关闭所有VS Code窗口与Jupyter内核,删除Python项目下的
__pycache__文件夹,重新启动环境后测试。 - 切换onnxruntime-gpu版本:若1.13.1兼容性问题突出,可尝试切换到1.12.1(对应CUDA 11.4)或1.14.1(对应CUDA 11.7),注意同步调整CUDA与cuDNN版本。
- 验证CUDA硬件可用性:运行以下代码确认CUDA硬件与驱动是否正常:
import onnxruntime as rt # 查看当前环境可调用的执行器 print(rt.get_available_providers())
内容的提问来源于stack exchange,提问作者Oguz Hanoglu
相关产品推荐
相关产品推荐

