当前位置:   article > 正文

Ubuntu20.04安装CUDA和cuDNN

ubuntu20.04安装cuda和cudnn

1.简介

由于Tensoflow-gpu对cuda版本严格的要求,TensoFlow-gpu==2.5.0需要CUDA11.2版本才能使用GPU(conda安装的TensorFlow可以不用安装cuDNN,pip方式安装需要)。

1.1测试TensorFlow能否使用GPU

import tensorflow as tf
# 查看gpu和cpu的数量
gpus = tf.config.experimental.list_physical_devices(device_type='GPU')
cpus = tf.config.experimental.list_physical_devices(device_type='CPU')
print(gpus, cpus)
  • 1
  • 2
  • 3
  • 4
  • 5

2.安装CUDA11.2

2.1下载安装包

sudo wget https://developer.download.nvidia.com/compute/cuda/11.2.0/local_installers/cuda_11.2.0_460.27.04_linux.run
  • 1

2.2安装

sudo sh cuda_11.2.0_460.27.04_linux.run
  • 1

2.3配置环境变量

2.3.1打开bashrc

方式一(推荐)

sudo gedit ~/.bashrc
  • 1

方式二

sudo vim ~/.bashrc
  • 1

2.3.2末尾加上

export PATH=$PATH:/usr/local/cuda-11.2/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.2/lib64
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda-11.2:/lib64
  • 1
  • 2
  • 3

2.3.3 内容生效

source ~/.bashrc
  • 1

2.4 测试CUDA11.2是否安装成功

nvcc -V
  • 1

3.安装cuDNN

3.1官网下载安装包

官网注册一个账号,下载对应版本的cuDNN。

只需下载cuDNN Library for Linux (x86_64)就行

下载安装包:
cudnn-11.2-linux-x64-v8.1.1.33.tgz

解压得到一个名为cuda的目录

3.2安装cuDNN

cp cuda/lib64/* /usr/local/cuda-11.2/lib64/
cp cuda/include/* /usr/local/cuda-11.2/include/
  • 1
  • 2

3.3测试

cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
  • 1

4.完全卸载CUDA和cuDNN

# 到目录下
cd  /usr/local/cuda-11.2/bin
# 执行
sudo ./cuda-uninstaller
  • 1
  • 2
  • 3
  • 4

继续清楚残余文件

sudo apt-get remove cuda
sudo apt autoremove 
sudo apt-get remove cuda*
  • 1
  • 2
  • 3

到文件下

 cd /usr/local/
  • 1

删掉两个cuda文件夹

大功告成!

补充:一般情况我们都安装了显卡驱动,所以这里第一项驱动最好不勾选,其他默认安装
在这里插入图片描述
代码测试GPU能否使用

import torch
flag = torch.cuda.is_available()
if flag:
    print("CUDA可使用")
else:
    print("CUDA不可用")

ngpu= 1
# Decide which device we want to run on
device = torch.device("cuda:0" if (torch.cuda.is_available() and ngpu > 0) else "cpu")
print("驱动为:",device)
print("GPU型号: ",torch.cuda.get_device_name(0))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
import 	torch
import  time
print(torch.__version__)
print(torch.cuda.is_available())
# print('hello, world.')


a = torch.randn(10000, 1000)
b = torch.randn(1000, 2000)

t0 = time.time()
c = torch.matmul(a, b)
t1 = time.time()
print(a.device, t1 - t0, c.norm(2))

device = torch.device('cuda')
a = a.to(device)
b = b.to(device)

t0 = time.time()
c = torch.matmul(a, b)
t2 = time.time()
print(a.device, t2 - t0, c.norm(2))

t0 = time.time()
c = torch.matmul(a, b)
t2 = time.time()
print(a.device, t2 - t0, c.norm(2))

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/365364
推荐阅读
相关标签
  

闽ICP备14008679号