无法加载动态库'libcupti.so.11.0'; dlerror: libcupti.so.11.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 driver 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:无法打开共享对象文件

4个回答

2

问题已解决

  • List lib files on /usr/local/cuda-11.2/extras/CUPTI/lib64/lib*

    $ ls /usr/local/cuda-11.2/extras/CUPTI/lib64/lib*
    
  • I could not find libcupti.so.11.0. Other files should be there such that libcupti.so, libcupti.so.11.2, ...

  • Manage a link between libcupti.so.11.2 and libcupti.so.11.0 using a comand 'sudo ln -s'

    $ 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
    
  • List lib files on /usr/lib/x86_64-linux-gnu/libcup*

    ls /usr/lib/x86_64-linux-gnu/libcup*
    
  • I could not find libcupti.so.11.0. Other files should be there such that libcupti.so, libcupti.so,2, libcupti.so.10.1, ...

  • Manage a link between libcupti.so.11.2 and libcupti.so.11.0 using a comand 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版本。这对我来说有效。

2
回答需要支持信息 您的回答可以通过提供更多的支持信息来改进。请[编辑]以添加进一步的细节,例如引用或文档,以便他人可以确认您的回答是否正确。您可以在帮助中心找到关于如何撰写良好回答的更多信息。 - moken

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
在Cuda-11.3的情况下,/usr/local/cuda-11.2/extras/CUPTI/文件夹中的lib64文件夹已被删除。所有的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
    

就是这样了。享受吧。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接