使用GPU运行ONNX Runtime推理时libcublasLt.so.11缺失的解决办法
解决ONNX Runtime依赖libcublasLt.so.11与服务器CUDA 12版本不兼容问题
方法1:从源码编译适配CUDA 12的ONNX Runtime
官方预编译的ONNX Runtime GPU版本通常默认适配CUDA 11系列,直接安装会出现库版本不匹配。你可以自行编译源码,指定CUDA 12版本:
- 克隆ONNX Runtime仓库并拉取子模块:
git clone --recursive https://github.com/microsoft/onnxruntime.git - 创建构建目录并进入:
mkdir build && cd build - 运行CMake配置,替换
12.x为服务器实际的CUDA小版本(如12.1):cmake -DCMAKE_BUILD_TYPE=Release -DONNXruntime_BUILD_GPU=ON -DCUDA_VERSION=12.x .. - 开始编译,
-j$(nproc)表示使用所有可用CPU核心加速编译:make -j$(nproc) - 编译完成后,将生成的库路径添加到环境变量,确保程序优先使用你编译的版本:
export LD_LIBRARY_PATH=/path/to/onnxruntime/build/Linux/Release:$LD_LIBRARY_PATH
方法2:创建软链接临时兼容(存在兼容性风险)
如果不想编译源码,可以尝试通过软链接让系统“识别”libcublasLt.so.12为11版本,但需注意部分函数可能存在兼容性问题:
- 在个人用户目录创建一个lib文件夹:
mkdir ~/lib - 为libcublasLt.so.12创建软链接,命名为libcublasLt.so.11:
ln -s /usr/local/cuda/lib64/libcublasLt.so.12 ~/lib/libcublasLt.so.11 - 将该目录添加到环境变量最前端,让程序优先加载这里的库:
export LD_LIBRARY_PATH=~/lib:$LD_LIBRARY_PATH
提示:如果后续出现其他CUDA库版本不匹配的错误,说明软链接方法无法兼容,建议切换到编译源码方案。
方法3:使用Conda管理适配CUDA 12的环境
Conda可以自动管理依赖版本,安装适配CUDA 12的ONNX Runtime:
- 创建并激活新的conda环境:
conda create -n ort_cuda12 python=3.10 && conda activate ort_cuda12 - 安装适配CUDA 12的ONNX Runtime GPU版本,替换
12.x为服务器实际CUDA版本:conda install -c conda-forge onnxruntime-gpu cudatoolkit=12.x
内容的提问来源于stack exchange,提问作者Mhmdfad
相关产品推荐
相关产品推荐

