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

ONNX Runtime加载CUDA执行提供者失败:libcurand.so.10找不到

解决onnxruntime-gpu无法加载libcurand.so.10的问题

问题根源

onnxruntime-gpu的预编译包依赖的CUDA库版本与你系统安装的CUDA 11.8不匹配——libcurand.so.10是CUDA 10.x系列的库,而CUDA 11.8提供的是libcurand.so.11,导致动态链接失败。

解决方案

方案1:安装对应CUDA 11.8的onnxruntime-gpu预编译包

onnxruntime针对不同CUDA版本提供了细分的PyPI包,直接安装适配CUDA 11.8的版本:

  1. 卸载现有包:
pip uninstall -y onnxruntime-gpu
  1. 安装对应CUDA 11.8的1.16.3版本(若存在):
pip install onnxruntime-gpu-cuda118==1.16.3
  1. 若1.16.3无cuda118变体,升级到支持该CUDA版本的高版本,比如1.17.3:
pip install onnxruntime-gpu-cuda118==1.17.3

方案2:从源码编译onnxruntime-gpu(适配CUDA 11.8)

如果必须使用1.16.3版本,可从源码编译,指定CUDA 11.8环境:

  1. 安装编译依赖:
sudo apt install cmake gcc g++ git
  1. 克隆源码并切换到1.16.3分支:
git clone --branch v1.16.3 https://github.com/microsoft/onnxruntime.git
cd onnxruntime
  1. 编译并生成wheel包:
./build.sh --config Release --build_shared_lib --enable_pybind --cuda_home /usr/local/cuda-11.8 --cudnn_home /usr/local/cuda-11.8 --use_cuda --build_wheel
  1. 安装生成的wheel包:
pip install build/Linux/Release/dist/onnxruntime_gpu-*.whl

辅助验证与配置

  1. 确保LD_LIBRARY_PATH正确指向CUDA 11.8库路径:
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH

可将上述命令添加到虚拟环境的激活脚本,确保每次启动环境自动生效:

echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH' >> /path/to/your/venv/bin/activate
  1. 验证CUDA和CuDNN安装正确性:
# 检查CUDA版本
nvcc --version
# 检查CuDNN版本
cat /usr/local/cuda-11.8/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

确保CuDNN版本与CUDA 11.8兼容(推荐8.6.x及以上版本)
3. 测试ONNX Runtime是否加载CUDA provider:

import onnxruntime as ort
print(ort.get_available_providers())

正常输出应包含CUDAExecutionProvider

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 20:35:15