为了账号安全,请及时绑定邮箱和手机立即绑定

Tensorflow 2.3 和 libcublas.so.10

Tensorflow 2.3 和 libcublas.so.10

猛跑小猪 2023-09-05 17:13:27
根据官方文档,在 Tensorflow 2.3 中支持 CUDA 10.1我有 Ubuntu 20.04、板载 GPU、CUDA 10.1 和 CUDNN 7.6开始使用 Tensorflow (2.3) 时出现错误: 无法加载动态库 'libcublas.so.10'; dlerror: libcublas.so.10: 无法打开共享对象文件: 没有这样的文件或目录;LD_LIBRARY_PATH:/usr/local/cuda-10.1/lib64经过几个小时的调查,结果发现 CUBLAS 打包在 CUDA 10.1 中发生了更改,位于工具包安装路径之外/usr/local/cuda-10.1/lib64请参阅此处: https: //forums.developer.nvidia.com/t/cublas-for-10-1-is-missing/71015/16就我而言,我搜索了sudo find /usr -name libcublas*并创立:            /usr/share/doc/libcublas-dev            /usr/share/doc/libcublas10            /usr/local/cuda-10.1/doc/man/man7/libcublas.so.7            /usr/local/cuda-10.1/doc/man/man7/libcublas.7            /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcublas.so.10.2.2.214            /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcublasLt.so.10.2.2.214            /usr/local/cuda-10.2/targets/x86_64-linux/lib/stubs/libcublasLt.so            /usr/local/cuda-10.2/targets/x86_64-linux/lib/stubs/libcublas.so然后,根据使用符号链接(在 nvdia 站点中创建)的一些解决方法的建议,我为上面创建的文件创建了一个符号链接,指向:sudo ln -s /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcublas.so /usr/local/cuda-10.1/lib64/libcublas.sosudo ln -s /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcublas.so.10 /usr/local/cuda-10.1/lib64/libcublas.so.10即使在符号链接之后,错误仍然存在:无法加载动态库“libcublas.so.10”;dlerror: libcublas.so.10: 无法打开共享对象文件: 没有这样的文件或目录;LD_LIBRARY_PATH:/usr/local/cuda-10.1/lib64与我的nano ~/.profile包含:# set PATH for cuda 10.1 installationif [ -d "/usr/local/cuda-10.1/bin/" ]; then    export PATH=/usr/local/cuda-10.1/bin${PATH:+:${PATH}}    export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}fi我还想尝试按照此处的建议从cuda_10.1.168_418.67_linux.run文件中可用的工具包中手动获取文件 ,但发现建议的命令不起作用。我调整为命令:sh cuda_10.1.168_418.67_linux.run --extract=/extracted最终确定时会出现一条消息 .. 无法验证 gcc 版本。有关详细信息,请参阅 /tmp/cuda-installer.log 中的日志。如果提取能起作用的话,也许手动复制文件就可以解决这个令人头疼的问题了。似乎这个 cublas 步骤没有记录在使用 CUDA 10.1 安装的 Tensorflow 官方文档中任何想法 ?
查看完整描述

3 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

我也遇到了同样的问题,谢谢你的提问,解决了。我使用了符号链接方法,但为libcublasLt.so.10.


$ sudo ln -s /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcublas.so /usr/local/cuda-10.1/lib64/libcublas.so

$ sudo ln -s /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcublas.so.10 /usr/local/cuda-10.1/lib64/libcublas.so.10

$ sudo ln -s /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcublasLt.so.10 /usr/local/cuda-10.1/lib64/libcublasLt.so.10



查看完整回答
反对 回复 2023-09-05
?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

sudo ln -s /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcublas.so /usr/local/cuda-10.1/lib64/libcublas.so
sudo ln -s /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcublas.so.10 /usr/local/cuda-10.1/lib64/libcublas.so.10

这些都不适合解决这个问题。
我们应该重新安装与CUDA 10.1libcublas相关的软件包。

我已经重新安装了apt

  • 我的环境。基于 NVIDIA 的 CUDA 存储库。

$ sudo apt install --reinstall libcublas10=10.2.1.243-1 libcublas-dev=10.2.1.243-1

然后libcublas库被移入/usr/local/cuda-10.1/.

并防止出现可升级的候选者。

$ sudo apt-mark hold libcublas10
$ sudo apt-mark hold libcublas-dev


查看完整回答
反对 回复 2023-09-05
?
慕村225694

TA贡献1880条经验 获得超4个赞

在bashrc中添加CUDA 10.2的路径:

export PATH=/usr/local/cuda-10.1/bin:/usr/local/cuda-10.2/bin${PATH:+:${PATH}}

这应该足够了。


查看完整回答
反对 回复 2023-09-05
  • 3 回答
  • 0 关注
  • 74 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信