【问题标题】:Tensorflow 2.3 and libcublas.so.10TensorFlow 2.3 和 libcublas.so.10
【发布时间】:2020-11-15 03:00:44
【问题描述】:

根据官方文档,在 Tensorflow 2.3 CUDA 10.1 is supported

我有 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
            /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcublas.so.10
            /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcublas_static.a
            /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcublasLt.so
            /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcublasLt_static.a
            /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcublasLt.so.10
            /usr/local/cuda-10.2/targets/x86_64-linux/lib/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 文件中提供的工具包中获取文件,如建议的here 但发现建议的命令不起作用.我调整为命令:

sh cuda_10.1.168_418.67_linux.run --extract=/extracted

当用一条消息完成时,它会被 KO .. 验证 gcc 版本失败。有关详细信息,请参阅 /tmp/cuda-installer.log 中的日志。

如果只有这样的提取可以工作,也许手动复制文件可以省去所有麻烦。

在 CUDA 10.1 安装的 Tensorflow 官方文档中似乎没有记录这个 cublas 步骤

有什么想法吗?

【问题讨论】:

  • 您已加载/安装了 CUDA 10.2。您不能将其用作 TF 安装所期望的 CUDA 10.1 的替代品。
  • 谢谢罗伯特,这是人们可能怀疑的,但 10.2 文件夹只是因为 10.1 附带:我从未安装过 10.2,而这正是 Nvidia 决定从 10.1 安装 cublas 的方式。命令 nvcc --version 正在确认:nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2019 NVIDIA Corporation 基于 Sun_Jul_28_19:07:16_PDT_2019 Cuda 编译工具,版本 10.1,V10.1.243

标签: python tensorflow


【解决方案1】:

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

【讨论】:

    【解决方案2】:
    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.1 重新安装与libcublas 相关的软件包。

    我已经用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
    

    【讨论】:

      【解决方案3】:

      在bashrc中添加CUDA 10.2的路径:

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

      这应该足够了。

      【讨论】:

        猜你喜欢
        • 2017-12-05
        • 2021-01-29
        • 2021-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-21
        相关资源
        最近更新 更多