腾讯云服务器部署onnxruntime-gpu经验总结
前言
有项目需要用onnxruntime-gpu进行推理,原以为像windows一样在已经有cuda的情况下直接安装onnxruntime-gpu即可,却没想到这么麻烦,故分享此文帮助后来者。
环境
gpu计算型英伟达v100云服务器。
在选择安装系统时已经选择了最高版本如下:
Ubuntu20.04
cuda11.0.3
cudnn8.5.0
用命令行查看nvidia-smi:
可以看到确实已经安装了cuda。
报错记录
1.[W:onnxruntime:Default, onnxruntime_pybind_state.cc:541 CreateExecutionProviderInstance] Failed to create CUDAExecutionProvider. Please reference https://onnxruntime.ai/docs/reference/execution-providers/CUDA-ExecutionProvider.html#requirements to ensure all dependencies are met.
是直接使用以下命令安装导致的版本不兼容问题:
pip install onnxruntime-gpu
具体版本对应关系见下表:
因为cuda是11.0.3,所以只能用onnxruntime-gpu==1.8或者1.7来进行安装。
2.onnxruntime OSError: libcurand.so.10: cannot open shared object file: No such file or directory
这是因为腾讯云cuda安装的位置很怪,默认找不到它这个环境变量,需手动添加,下面我来演示一下如何手动添加。
解决
1.如果保持默认cuda11.0.3,那么运行如下安装命令:
pip install onnxruntime-gpu==1.8.0
或者
pip install onnxruntime-gpu==1.7.0
2.查找cuda文件目录:
find / -name "libcudart.so.11.0"
-name后面是文件名,根据需要替换,缺什么查什么,我这边显示它们在以下目录:
3.配置环境变量:
首先:
vi /etc/profile
然后按 i 切换输入模式,在文末添加多行环境变量:
export LD_LIBRARY_PATH=/usr/local/lib/python3.8/dist-packages/nvidia/cudnn/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/lib/python3.8/dist-packages/nvidia/cublas/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/lib/python3.8/dist-packages/nvidia/cuda_runtime/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/lib/python3.8/dist-packages/nvidia/cuda_nvrtc/lib:$LD_LIBRARY_PATH
目录位置请根据自己的修改,我这边是默认的,改完像下面这样:
按esc退出输入模式。按 : 输入wq保存退出。
然后生效:
source /etc/profile
输入以下命令确认环境变量生效:
echo $LD_LIBRARY_PATH
正确的话再运行框架创建cuda算子就不会提示报错了。
更多推荐
所有评论(0)