根据官方文档,在 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
收到一只叮咚
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
慕村225694
TA贡献1880条经验 获得超4个赞
在bashrc中添加CUDA 10.2的路径:
export PATH=/usr/local/cuda-10.1/bin:/usr/local/cuda-10.2/bin${PATH:+:${PATH}}
这应该足够了。
添加回答
举报
0/150
提交
取消