Tensorflow 2.3 和 libcublas.so.10

根据官方文档,在 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.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

即使在符号链接之后,错误仍然存在:


无法加载动态库“libcublas.so.10”;dlerror: libcublas.so.10: 无法打开共享对象文件: 没有这样的文件或目录;LD_LIBRARY_PATH:/usr/local/cuda-10.1/lib64


与我的nano ~/.profile包含:


# set PATH for cuda 10.1 installation

if [ -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 官方文档中


任何想法 ?


猛跑小猪
浏览 143回答 3
3回答

青春有我

我也遇到了同样的问题,谢谢你的提问,解决了。我使用了符号链接方法,但为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

收到一只叮咚

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

在bashrc中添加CUDA 10.2的路径:export PATH=/usr/local/cuda-10.1/bin:/usr/local/cuda-10.2/bin${PATH:+:${PATH}}这应该足够了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python