cuda,cudnn,安装和tensorflow的gpu调配

cuda,cudnn,安装和tensorflow的gpu调配

  • 忙了两周终于安装完了cuda 和 cudnn ,并且成功调用tensorflow的GPU使用!!!
  • 1;首先 找自己电脑的适配cuda
  • 2;cuda,cudnn,tensorflow版本适配表
  • 3;决定适合自己的版本后,开始下载!
  • 4;cuda安装:
  • 5;安装cudnn
  • 6;添加环境变量
  • 7;检测环境变量是否添加成功
  • 8;在tensorflow中配置GPU
  • 结尾,撒花!!!历时两周,终于搞定了,最后真的希望尽我所能帮到大家。此外如果文章有问题,还希望大家及时指出,我会后续修改的。

忙了两周终于安装完了cuda 和 cudnn ,并且成功调用tensorflow的GPU使用!!!

1;首先 找自己电脑的适配cuda

cuda,cudnn,安装和tensorflow的gpu调配_第1张图片
如图,按我标记的顺序点,调出电脑的显卡信息,可见,我的电脑的cuda版本最高支持10.2的版本,所以安装的时候我可以安装10.2以下的版本。

2;cuda,cudnn,tensorflow版本适配表

cuda,cudnn,安装和tensorflow的gpu调配_第2张图片
这里只是罗列出windows的一部分的适配表,详情请见:

tensorflow,cuda,cudnn适配表

3;决定适合自己的版本后,开始下载!

cuda下载:cuda各版本下载地址

注意,下载时候建议下载local,本地下载,会直接把要下载的插件都下载,如果选择net,网络下载,就会在安装时候下载一些相关插件

cudnn下载:cudnn个版本下载地址

tensorflow -gpu下载:

tensorflow-gpu==1.8.0 python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu

(这里采用镜像源下载,复制粘贴到终端命令中就行,本人用的是anaconda,所以用的终端是Anaconda Prompt

4;cuda安装:

cuda,cudnn,安装和tensorflow的gpu调配_第3张图片
这里是临时解压路径:

cuda,cudnn,安装和tensorflow的gpu调配_第4张图片

如果是第一次安装,建议精简安装,如果是第n次安装,建议自定义安装,且只选择cuda:

cuda,cudnn,安装和tensorflow的gpu调配_第5张图片
之后是选择安装路径,本人这里是选择第一个:

cuda,cudnn,安装和tensorflow的gpu调配_第6张图片
这里在终端中输入 nvcc -V 得到如下图所示的结果,说明安装成功:

cuda,cudnn,安装和tensorflow的gpu调配_第7张图片

5;安装cudnn

这一步比较简单,如图,解压后有三个文件夹,将每个文件夹中的文件分别复制到NVIDIA GPU Computing Toolkit\CUDA\v10.1 中的bin,include,lib中:

cuda,cudnn,安装和tensorflow的gpu调配_第8张图片
cuda,cudnn,安装和tensorflow的gpu调配_第9张图片

如上图所示,复制好以后添加环境变量

6;添加环境变量

这里是添加环境变量的详细步骤,如图显示的CUDA_PATH_V10_1 和 CUDA_PATH 是安装完CUDA后系统自动添加的:

cuda,cudnn,安装和tensorflow的gpu调配_第10张图片
在path中新建4个环境变量:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\include
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\lib
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\libnvvp

cuda,cudnn,安装和tensorflow的gpu调配_第11张图片
另外,在系统变量中添加一个CUDA_VISIBLE_DEVICES=0的变量,0为GPU的编号,此处是建立永久变量

CUDA_VISIBLE_DEVICES=1     # 只有编号为1的GPU对程序是可见的,在代码中gpu[0]指的就是这块儿GPU
CUDA_VISIBLE_DEVICES=0,1,2 # 只有编号为0,1,2的GPU对程序是可见的,在代码中gpu[0]指的是第0块儿,
						   # gpu[1]指的是第2块儿,gpu[2]指的是第3块儿
CUDA_VISIBLE_DEVICES=2    # 只有编号为2的GPU对程序是可见的。

当然,也可以在终端中建立临时的环境变量:

Linux: export CUDA_VISIBLE_DEVICES=1
windows:  set CUDA_VISIBLE_DEVICES=1

参考链接

7;检测环境变量是否添加成功

在终端输入 cd + 安装路径中demo_suite 这个文件中
cd C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\demo_suite

cuda,cudnn,安装和tensorflow的gpu调配_第12张图片
分别输入deviceQuery.exebandwidthTest.exe,分别得到result = pass 即说明环境变量配置成功:

cuda,cudnn,安装和tensorflow的gpu调配_第13张图片

cuda,cudnn,安装和tensorflow的gpu调配_第14张图片

cuda,cudnn,安装和tensorflow的gpu调配_第15张图片
至此,cuda,cudnn配置完成。

8;在tensorflow中配置GPU

在终端中查看gpu命令代码

在终端输入 nvidia-smi 查看GPU情况:

cuda,cudnn,安装和tensorflow的gpu调配_第16张图片
在红色画圈那里,表示的是你机器上gpu的状态,0代表gpu的id,我的电脑上就一个独立显卡,所以就显示一个显卡。如果你的机器上有多个显卡,它就会显示0,1,2,3 等

在软件中查看GPU命令代码

import tensorflow as tf
gpus = tf.config.experimental.list_physical_devices(device_type='GPU')
cpus = tf.config.experimental.list_physical_devices(device_type='CPU')
print(gpus, cpus) 			# 这里查看机器上的可用CPU,和GPU
tf.test.is_gpu_available()  # 查看自己机器上的GPU是否可用,可用的话返回True
tf.config.experimental.set_visible_devices(devices=gpus[2:4], device_type='GPU') 
# 这里是允许机器使用GPU的数量 2:4 个

配置GPU

  • 方法一 、tf.device
tf.device('/gpu:1') # 这里是调用第二块GPU,但是这样调用由于没有屏蔽其他的GPU,所以会有其他GPU一起跟着运行
  • 方法二 、通过CUDA_VISIBLE_DEVICES来指定.
    之前设置的环境变量在这里起作用了
import os
os.environ['CUDA_VISIBLE_DEVICES']='1' # 这里只让第二块GPU 对机器可见,这样其他GPU就不会跟着运算

参考链接

结尾,撒花!!!历时两周,终于搞定了,最后真的希望尽我所能帮到大家。此外如果文章有问题,还希望大家及时指出,我会后续修改的。

你可能感兴趣的:(cudnn,cuda,tensorflow,tensorflow,cuda,gpu)