根据官方文档,在 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 官方文档中
任何想法 ?
青春有我
收到一只叮咚
慕村225694
相关分类