python - TensorFlow 2.3 和 libcublas.so.10

标签 python tensorflow

根据官方文档,在 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
然后,根据使用符号链接(symbolic link)(在 nvdia 站点中创建)的一些解决方法的建议,我为上面创建的文件创建了一个符号链接(symbolic link),指向:
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
即使在符号链接(symbolic link)之后,错误仍然存​​在:
无法加载动态库“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
最终确定时会出现一条消息..
无法验证 gcc 版本。有关详细信息,请参阅/tmp/cuda-installer.log 中的日志。
如果只有该提取可以工作,那么文件的手动副本可能会节省全部麻烦。
似乎这个 cublas 步骤没有记录在用于安装 CUDA 10.1 的 Tensorflow 官方文档中
任何的想法 ?

最佳答案

我有同样的问题,感谢你的问题解决了。我使用了符号链接(symbolic link)方法,但为 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

关于python - TensorFlow 2.3 和 libcublas.so.10,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64051293/

相关文章:

tensorflow - Keras中均衡学习率的实现

ios - 有没有办法在 iOS 上训练 TensorFlow 模型?

python - 比较日期的最简单方法是什么?

python - 生成指定范围内的N个唯一随机整数

python - 从 mysql 的列中检索数据

python - 如何使用 session 的权重来初始化新 session 的权重?

python - Keras + Tensorflow 和 Python 中的多处理

python - Python或Ruby我应该学习哪一个?

python - 使用 python => 使用 RESTful API 数据从 JSON 到 pandas DataFrame

tensorflow - 是否可以在keras中恢复global_step?