深度学习GPU加速入门:从驱动安装到代码实战
深度学习GPU加速入门:从驱动安装到代码实战
在深度学习中,使用GPU加速训练模型可以大大减少训练时间。本文将详细介绍如何在Windows环境下安装NVIDIA显卡驱动程序、CUDA和cuDNN,并验证TensorFlow是否能使用GPU。
前言
在深度学习中,训练模型通常需要反复优化,仅用CPU训练会花费很长时间。使用GPU加速可以显著减少训练时间。下图展示了使用GPU加速和未使用GPU加速的训练时间对比:
接下来,我们将详细介绍如何在深度学习训练模型过程中使用GPU加速。注意:以下安装步骤及命令仅支持Windows环境下安装,其他操作系统安装教程将后续发布。
安装NVIDIA显卡驱动程序
- 在搜索栏中搜索设备管理器,打开后在显示适配器中找到电脑显卡版本。
- 在NVIDIA官方网站中找到对应显卡版本的驱动程序进行下载。
NVIDIA显卡驱动程序下载链接:点击这里
下载后进行安装,选择默认位置安装即可。安装过程中遇到问题可参考以下链接:Windows安装NVIDIA驱动
打开命令提示符输入
nvidia-smi
指令查看显卡驱动信息:
nvidia-smi
如果看到如下信息,说明NVIDIA显卡驱动程序已经安装成功:
安装CUDA和cuDNN
简介
CUDA:Compute Unified Device Architecture的缩写,是一个由NVIDIA制定的通用并行计算平台和编程模型,允许开发人员使用C++、Fortran和Python等编程语言在NVIDIA GPU上运行代码。CUDA Toolkit包括GPU加速的库、调试和优化工具、C/C++编译器以及运行时库等。
cuDNN:CUDA Deep Neural Network library,是一个高性能的GPU加速深度学习库,支持卷积神经网络、循环神经网络等多种神经网络模型,并且可以与TensorFlow、PyTorch和Caffe2等深度学习框架集成。cuDNN提供高度优化的实现,包括卷积、池化、标准化和激活等常用操作。
检查版本兼容性
版本兼容性对于GPU加速非常重要。可以在TensorFlow和NVIDIA官方文档中找到对应GPU、CUDA、cuDNN和Python版本:
博主使用的版本对应信息:NVIDIA GeForce GTX 1080、NVIDIA GeForce GTX 1650、Python 3.9.0、CUDA 11.2.0、cuDNN 8.1.0、TensorFlow-GPU 2.6.0。
安装CUDA
- 下载CUDA 11.2:CUDA 11.2.0下载链接
- 安装过程选择自定义选项,全部勾选相关配置:
- 安装完成后重启电脑,在命令提示符中输入
nvcc -V
命令查看CUDA是否安装成功:
nvcc -V
显示以上信息证明CUDA安装成功。
安装cuDNN
- 下载cuDNN:cuDNN下载链接
下载之前需要注册登录NVIDIA开发者计划,填写个人基本信息即可。以下以cuDNN 8.1.0为例进行下载安装。
下载完成之后解压得到cuda文件夹,打开该文件夹可以看到有bin、include、lib三个文件夹。
找到之前CUDA 11.2.0安装路径:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2
并打开该文件夹,可以找到与之对应的三个文件夹。将cudnn中的三个文件夹复制到cuda对应的文件夹当中,可以将对应文件夹中内容全选,复制粘贴到cuda文件夹中即可。
配置环境变量:
右击此电脑然后点击属性,然后点击高级系统设置,点击环境变量,在系统环境变量中找到path环境变量,点击进入,将以下内容添加到path环境变量当中:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\libnvvp
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\lib
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\include
一般前面两个环境变量在安装CUDA时已经自动配置好,我们只需要将后面两个添加进去即可。不同版本的cuDNN修改版本号即可。
- 验证cuDNN是否安装成功:
打开终端命令提示符(win+r输入cmd),进入到CUDA文件路径:
cd C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\extras\demo_suite
执行以下命令:
deviceQuery.exe
bandwidthTest.exe
如果出现如下效果图,说明cuDNN安装成功:
验证TensorFlow可用GPU
- 安装Python 3.9.0:Python 3.9.0下载链接
安装完成之后在命令提示符输入python
可查看当前Python版本,输入exit()
退出Python编译环境。
- 安装TensorFlow-GPU 2.6.0:
在命令提示符输入以下命令等待安装完成:
pip install tensorflow-gpu==2.6.0
若出现什么问题可在评论区留言。
- 最后在终端输入以下命令可查看已安装的TensorFlow-GPU版本:
pip list
- 验证可用GPU:
可在终端进入Python编译环境或其他编译器中输入以下代码验证可用GPU:
import tensorflow as tf
print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))
只要输出结果>0,证明存在可用GPU。
代码测试
在编辑器中创建test_model.py文件,输入以下代码可显示GPU加速效果:
import tensorflow as tf
# 列出可用的 GPU 设备
print(tf.config.list_physical_devices('GPU'))
# 设置 TensorFlow 使用 GPU 进行计算
gpu_devices = tf.config.list_physical_devices('GPU')
if gpu_devices:
for device in gpu_devices:
tf.config.experimental.set_memory_growth(device, True)
# 加载数据集
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
# 定义模型
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10)
])
# 编译模型
loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)
model.compile(optimizer='adam', loss=loss_fn, metrics=['accuracy'])
# 训练模型
model.fit(x_train, y_train, epochs=5)
# 评估模型
model.evaluate(x_test, y_test, verbose=2)
运行结果:
总结
在安装过程最重要的是版本兼容性问题,大家可以查看官方文档。最后,大家如果有什么问题欢迎在评论区留言,我都会回复大家,帮助大家解决问题。