最近开始学习TensorFlow,需要配置GPU环境,为什么要配置GPU环境呢?因为CPU 版本无法利用 GPU 加速运算,计算速度相对缓慢,而GPU得速度要比CPU快很多。

配置GPU环境,需要安装CUDA、cuDNN。这两个是什么,刚开始我也是一脸懵逼。所以在此记录我所学习到的一些概念和安装的步骤,以备不时之需。

推荐方案:使用Anaconda安装tensorflow-gpu。
推荐步骤:2.1→2.2→2.4

1 介绍

1.1 CPU&GPU

CPU和GPU

GPU(图像处理器,Graphics Processing Unit)和CPU(中央处理器,Central Processing Unit)在设计上的主要差异在于GPU有更多的运算单元(如图中绿色的ALU),而Control和Cache单元不如CPU多,这是因为GPU在进行并行计算的时候每个运算单元都是执行相同的程序,而不需要太多的控制。Cache单元是用来做数据缓存的,CPU可以通过Cache来减少存取主内存的次数,也就是减少内存延迟(memory latency)。GPU中Cache很小或者没有,因为GPU可以通过并行计算的方式来减少内存延迟。因此CPU的Cahce设计主要是实现低延迟,Control主要是通用性,复杂的逻辑控制单元可以保证CPU高效分发任务和指令。所以CPU擅长逻辑控制,是串行计算,而GPU擅长高强度计算,是并行计算

打个比方,GPU就像成千上万的苦力,每个人干的都是类似的苦力活,相互之间没有依赖,都是独立的,简单的人多力量大;CPU就像包工头,虽然也能干苦力的活,但是人少,所以一般负责任务分配,人员调度等工作。可以看出GPU加速是通过大量线程并行实现的,因此对于不能高度并行化的工作而言,GPU就没什么效果了。而CPU则是串行操作,需要很强的通用性,主要起到统管和分配任务的作用。

简单来说,CPU适合串行计算,擅长逻辑控制。GPU擅长并行高强度并行计算,适用于AI算法的训练学习

原文连接

1.2 CUDA&cuDNN

CUDA是NVIDIA推出的用于自家GPU的并行计算框架,也就是说CUDA只能在NVIDIA的GPU上运行,而且只有当要解决的计算问题是可以大量并行计算的时候才能发挥CUDA的作用。

cuDNN(CUDA Deep Neural Network library):是NVIDIA打造的针对深度神经网络的加速库,是一个用于深层神经网络的GPU加速库。如果你要用GPU训练模型,cuDNN不是必须的,但是一般会采用这个加速库。

CUDA 并不是针对于神经网络设计的 GPU 加速库,它面向各种需要并行计算的应用设计。如果希望针对于神经网络应用加速,需要额外安装cuDNN 库。需要注意的是,cuDNN 库并不是运行程序,只需要下载解压 cuDNN 文件,并配置 Path 环境变量即可。

2 环境安装

2.1 查看NVIDIA版本

方法一

1 在电脑桌面空白处点击鼠标右键

2 选择 NVIDIA 控制面板(若没有该选项,可尝试方法二)
在这里插入图片描述

3 查看英伟达版本。(如果未显示版本,请看下一步)
在这里插入图片描述
4 点击菜单栏的 帮助(help)——系统信息(System Information),可以查看更多信息。
在这里插入图片描述

方法二
1 进入控制面板(Control Panel)

2 选择 硬件和声音(Hardware and Sound)
在这里插入图片描述

3 选择 NVDIA 控制面板
在这里插入图片描述
4 查看版本,版本为 385.54。(如果未显示版本,请看下一步)
在这里插入图片描述

5 点击菜单栏的 帮助(help)——系统信息(System Information),可以查看更多信息。
在这里插入图片描述

2.2 安装CUDA

一. 下载CUDA9.0

笔者电脑NVIDIA的版本为385.54,根据下表,我应该安装CUDA9.0。

在这里插入图片描述
进入网站下载: Download
在这里插入图片描述

exe(network)是网络安装包,安装过程中下载。exe(local)是本地安装包,下载完直接安装。
选择哪一个都可以,我选择的是exe(local)。

在这里插入图片描述

选择这个Base Installler安装即可,点击Download,下载这个1.4GB的文件。

二. 安装步骤
1 打开下载好的文件开始安装,为了不出其他意外,我就默认安装到C盘,毕竟也就1个多G,可以接受。

在这里插入图片描述
2 检查系统的兼容性,同意并继续。
在这里插入图片描述

3 选择精简(Express)安装,安装默认的东西即可,下一步。
在这里插入图片描述

4 已经安装好的部分和未安装好的部分,下一步。在这里插入图片描述

5 安装完成,点击结束。
在这里插入图片描述
6 安装完成,桌面上多出两个图标。
在这里插入图片描述

7 打开命令窗口,输入nvcc -V查询CUDA版本信息,若出现如下信息说明安装成功。
在这里插入图片描述

2.3 安装cuDNN(可跳过)

如果使用Anaconda,可以不用手动安装cuDNN,在anaconda中可以完成cuDNN的安装,请直接跳到2.4;如果不使用Anaconda,可继续看以下步骤。

一. 下载cuDNN Download

1 登录网站,注册账号,注册完成后才可以下载cuDNN。

2 要选中“ I Agree To the terms of the cuDNN Software License Agreement”才能出现下面的下载信息。因为上面下载的是CUDA9.0,要选择匹配 CUDA 版本号的 cuDNN 文件,所以这里选择下载第四个文件。

在这里插入图片描述
3 选择跟系统相匹配的版本,我选择的是cuDNN Library for Windows 10.
在这里插入图片描述

二. 安装步骤
1 解压下载后的文件,得到文件夹CUDA,里面包含四个文件。
在这里插入图片描述

2 移动文件夹
我们将名为“cuda”的文件夹重命名为“cudnn765”,并复制此文件夹。进入 CUDA 的安装路径 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0,粘贴“cudnn765”文件夹即可,此处可能会弹出需要管理员权限的对话框,选择继续即可粘贴。

在这里插入图片描述
3 环境变量配置

上述 cudnn 文件夹的复制即已完成 cuDNN 的安装,但为了让系统能够感知到 cuDNN 文件的位置,我们需要额外配置 Path 环境变量。打开文件浏览器,在“我的电脑”上右击,选择“属性”,选择“高级系统属性”,选择“环境变量”,在“系统变量”一栏中选中“Path”环境变量,选择“编辑”。选择“新建”,输入我们 cuDNN 的安装路径“C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\cudnn765\bin”,并通过“向上移动”按钮将这一项上移置顶。

在这里插入图片描述
CUDA 安装完成后,环境变量中应该包含

“C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin”
“C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\libnvvp”
“C:\Program Files\NVIDIA GPU ComputingToolkit\CUDA\v9.0\cudnn765\bin”
以上三项,具体的路径可能依据实际路径略有出入。

在这里插入图片描述

2.4 安装Tensorflow-gpu

一 创建工程

第一步是在PyCharm中创建工程(使用Conda编译器),创建工程之后才能在Anaconda对其工程环境进行配置,所以我们首先创建工程,切记Python版本要选择3.6。(因为版本间的兼容性问题,这里要选择3.6版本)
在这里插入图片描述

二 安装Tensorflow-gpu
在Anaconda安装Tensorflow-gpu,在安装Tensorflow-gpu的同时会自动安装与之匹配的cuDNN、cudatoolkit。

tensorflow-gpu与CUDA的版本关系:

https://tensorflow.google.cn/install/source_windows#gpu
在这里插入图片描述

搜索tensorflow-gpu,tensorflow-gpu的默认版本为2.0,但不要选择2.0版本。因为2.0版本太高了,可能会与电脑显卡不兼容。所以我们要选择其他版本进行安装,在方框处右键——Mark for specific version installation(选择指定版本)——1.12.0。

在这里插入图片描述
点击右下角Apply,等待一会……
在这里插入图片描述
点击Apply,此时会自动帮你安装很多个包,需要等待很久(30min~60min)。
在这里插入图片描述

如果想要预先下载whl文件,并通过pip进行安装。可在PyPi上进行下载:
https://pypi.org/project/tensorflow-gpu/1.12.0/#files

以上配置完成,可以开始尝试第一个程序了!