无法加载动态库“libcupti.so.11.0”; dlerror:libcupti.so.11.0:无法打开共享对象文件

问题描述 投票:0回答:5

系统信息

  • 操作系统平台和发行版(例如,Linux Ubuntu 18.04)
  • Ubuntu 20.04
  • Python版本:3.6
  • 使用 virtualenv 安装
  • CUDA/cuDNN 版本:11.5 / 8.1.0.77
  • GPU型号和内存:RTX 3090 24GB nvidia驱动460.39
  • TensorFlow版本:2.4.0 pip install tensorflow-gpu==2.4.0

描述问题

安装了cuda 11.2和cudnn 8.1.0.77。当我运行train.py时遇到以下问题

无法加载动态库“libcupti.so.11.0”; dlerror:libcupti.so.11.0:无法打开共享对象文件

python tensorflow virtualenv ubuntu-18.04
5个回答
2
投票

问题解决了

  • 列出

    /usr/local/cuda-11.2/extras/CUPTI/lib64/lib*

    上的 lib 文件
    $ ls /usr/local/cuda-11.2/extras/CUPTI/lib64/lib*
    
  • 我找不到

    libcupti.so.11.0
    。其他文件应该存在,例如
    libcupti.so
    libcupti.so.11.2
    、...

  • 使用命令“sudo ln -s”管理

    libcupti.so.11.2
    和 libcupti.so.11.0 之间的链接

    $ sudo ln -s /usr/local/cuda-11.2/extras/CUPTI/lib64/libcupti.so.11.2 /usr/local/cuda-11.2/extras/CUPTI/lib64/libcupti.so.11.0
    
  • 列出 /usr/lib/x86_64-linux-gnu/libcup* 上的 lib 文件*

    ls /usr/lib/x86_64-linux-gnu/libcup*
    
  • 我找不到

    libcupti.so.11.0
    。其他文件应该在那里 那个
    libcupti.so
    libcupti.so,2
    libcupti.so.10.1
    ,...

  • 使用命令管理

    libcupti.so.11.2
    libcupti.so.11.0
    之间的链接
    sudo ln -s

    $ sudo ln -s /usr/local/cuda-11.2/extras/CUPTI/lib64/libcupti.so.11.2 /usr/lib/x86_64-linux-gnu/libcupti.so.11.0
    

这解决了我的问题


1
投票

你可以运行:

pip install transformers[torch]

或将 torch 降级至 2.0.0。这对我来说是工作。


0
投票

对于 Cuda-11.3,lib64 文件夹已从 /usr/local/cuda-11.2/extras/CUPTI/ 中删除。所有lib文件都移动到ls /usr/local/cuda/lib64/或ls /usr/local/cuda-11.3/lib64/。

  • 列出 /usr/local/cuda/lib64/ 上的 lib 文件

    $ ls /usr/local/cuda/lib64/libcupti*
    
  • 我找不到libcupti.so.11.0。其他文件应该在那里,例如 libcupti.so、libcupti.so.11.3、...

  • 使用命令“sudo ln -s”管理 libcupti.so.11.3 和 libcupti.so.11.0 之间的链接

    $ sudo ln -s /usr/local/cuda-11.3/lib64/libcupti.so.11.3 /usr/local/cuda-11.3/lib64/libcupti.so.11.0
    

就是这样。享受


0
投票

您需要配置二进制文件和库的路径。在 Ubuntu 20.04 LTS 上,我按照以下步骤操作。首先,使用

find
命令,搜索
nvcc
libcublas.so.*
的路径:

sudo find / -name 'nvcc'  # Path to binaries
sudo find / -name 'libcublas.so.*'  # Path to libraries

然后,根据上面找到的路径在文件末尾添加下一行

~/.profile
(或仅导出环境变量)。在我的系统中,Cuda 安装在
/usr/local/cuda-11.4

if [ -d "/usr/local/cuda-11.4" ]; then
    export PATH=/usr/local/cuda-11.4/bin${PATH:+:${PATH}}
    export LD_LIBRARY_PATH=/usr/local/cuda-11.4/targets/x86_64-linux/lib/${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
fi

重新启动计算机并重试。


0
投票

此错误通常源于 Python 和 PyTorch 或 TensorFlow 版本之间的不兼容。在我的例子中,将 Python 从 3.8 升级到 3.9 解决了这个问题。或者,考虑通过升级或降级来调整 PyTorch / TensorFlow 版本以匹配您的 Python 环境。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.