安装清单:

  • 显卡驱动(自动安装)460.32
  • CUDA 11.2
  • cuDNN 8.1.0
  • PyTorch 1.7.0
  • tensorflow 2.4.0

1. 安装驱动

详见:https://blog.csdn.net/qq_41481731/article/details/86640170
推荐自动安装:

sudo ubuntu-drivers devices
sudo ubuntu-drivers autoinstall
# 完成后重启 就可完成安装NVIDIA驱动

2. 安装CUDA11.2

详见:https://www.cnblogs.com/booturbo/p/13960935.html
多个nvidia驱动冲突问题:https://www.cnblogs.com/chua-n/p/13208414.html
apt --purge remove "*cublas*" "cuda*"不靠谱

Incomplete不要紧,因为我们已经安装过显卡驱动了,这里忽略即可。使用nvcc-V查看CUDA版本:还是10.1,因为没有把


3. cuDNN 8.1.0下载及安装

详见:https://www.cnblogs.com/booturbo/p/13960935.html

4. 安装pytorch + torchvision

详见:Pytorch_Part1_简介&张量

5. 使用镜像并设置超时安装tensorflow

cuda 11.2应该安装tensorflow2.4.0版本

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow==2.4.0 --default-timeout=1000

cuda 10.2应该安装tensorflow2.2.0版本

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow==2.2.0 --default-timeout=1000

6. 运行缺少dll

在cuda10.2环境下,运行以下测试脚本出错:

import tensorflow as tf
import timeit

with tf.device('/cpu:0'):
    cpu_a = tf.random.normal([10000, 1000])
    cpu_b = tf.random.normal([1000, 2000])
    print(cpu_a.device, cpu_b.device)

with tf.device('/gpu:0'):
    gpu_a = tf.random.normal([10000, 1000])
    gpu_b = tf.random.normal([1000, 2000])
    print(gpu_a.device, gpu_b.device)


def cpu_run():
    with tf.device('/cpu:0'):
        c = tf.matmul(cpu_a, cpu_b)
    return c


def gpu_run():
    with tf.device('/gpu:0'):
        c = tf.matmul(gpu_a, gpu_b)
    return c


# warm up
cpu_time = timeit.timeit(cpu_run, number=10)
gpu_time = timeit.timeit(gpu_run, number=10)
print('warmup:', cpu_time, gpu_time)

cpu_time = timeit.timeit(cpu_run, number=10)
gpu_time = timeit.timeit(gpu_run, number=10)
print('run time:', cpu_time, gpu_time)

Could not load dynamic library 'cudart64_101.dll'; dlerror: cudart64_101.dll not found

注意实际在安装cuda的文件夹下存在cudart64_102.dll,将其重命名为cudart64_101.dll即可

最后出现以下结果:说明成功运行!