根据官方文档,在 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
Run Code Online (Sandbox Code Playgroud)
见这里:https : //forums.developer.nvidia.com/t/cublas-for-10-1-is-missing/71015/16
就我而言,我搜索了
sudo find /usr -name libcublas*
Run Code Online (Sandbox Code Playgroud)
并成立:
/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
Run Code Online (Sandbox Code Playgroud)
然后,按照使用符号链接(在 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
Run Code Online (Sandbox Code Playgroud)
即使在符号链接之后,错误仍然存在:
无法加载动态库“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 …Run Code Online (Sandbox Code Playgroud)