0. 环境展示
Ubuntu系统 Ubuntu 20.04 focal
Tensorflow 2.4.1
Conda conda 4.8.3
Python Python 3.8.3
Cuda Cuda compilation tools, release 11.1, V11.1.105
cudnn cuDNN v8.1.0 (January 26th, 2021), for CUDA 11.0,11.1 and 11.2下载链接 点此跳转
1. libcusolver.so.10 动态库
我们可以发现在 cuda 的 lib64包下 有这么一个文件
但是 Tensorflow 提示找不到 libcusolver.so.10 库,莫非是版本问题,于是试了一下把 文件中的 11 的库复制了一份并改名为 libcusolver.so.10, 或者说就是重新给 libcusolver.so.11.0.1.105 创建了一个链接文件
发现这个库的报错没了。
(虽然解决了问题,但总感觉会出事儿,至少目前还没事,希望以后也没事)
2. libcudnn.so.8 动态库
看名字估计能才出来是因为缺少 cudnn 的库,于是我们去官网下载对应版本。官方地址: https://developer.nvidia.com/rdp/cudnn-archive#a-collapse804-111
我的 cuda 是 11.1 版本,所以下载第一个,下载好后就是一个压缩包,解压缩后就是一个名为 cuda 的文件夹
打开 cuda 文件夹发现里边有 include 和 lib64 两个文件夹,分别存放着头文件和动态库,其中我们需要的 libcudnn.so.8 动态库就在lib64里,可以查找一下。
将 include 里的文件复制到 你安装的 cuda 的include 里边,lib64 里的动态库也移动到你的 系统 cuda 的 lib64文件夹中即可
cp -r ./cuda/include/* /usr/local/cuda-11.1/include/ cp -r ./cuda/lib64/* /usr/local/cuda-11.1/lib64/
打开python 检查tensorflow
import tensorflow as tf tf.test.is_gpu_available()
可以看到 动态库加载无报错,gpu资源也为True 可用
gpu测试样例
with tf.device('/gpu:0'): gpu_a = tf.random.normal([1, 100]) gpu_b = tf.random.normal([100, 1]) print(gpu_a.device, gpu_b.device)
gpu 没问题。