使用gpu加速机器学习训练速度。

此篇可随意转载!Update 2021.8.22

前言

虽然在Mac上开发比较方便。但是我们需要用到GPU的时候,用Mac就不可能了。我们有两种方法。一种是使用云GPU资源,一种是使用NVIDIA显卡进行加速。工程实践中,强化学习需要跟agent交互,而agent无法兼容云。因此,本文主要介绍利用本地GPU进行训练加速。

一、Ubuntu环境安装

Ubuntu环境安装

二、Windows环境安装

1.检查显卡驱动的版本

从Win10的控制面板或者鼠标右键中查找NVIDIA控制面板。点击帮助–>系统信息–>组件。可以看到显卡支持的CUDA的版本。Win10下高版本驱动是可以兼容低版本的CUDA,也就是说支持CUDA11.2的显卡驱动,也支持cuda10.2 runtime。

2.阅读PaddlePaddle官方文档

PaddlePaddle官网快速安装指南。请阅读完毕再往下看。

3.安装CUDA

下载CUDA本机安装文件。

提示先安装微软Visual Studio,版本不用最新,免费版就行。只要安装了Visual C++就可以了。然后我们按照一般的windows安装软件的步骤安装CUDA。

安装完成后检查Windows环境变量:

可以看到安装程序自动添加了2条环境变量。

命令行敲nvcc -V 可以看到安装已经成功。也可以看到真正Paddle用的CUDA Runtime版本号。下面是两个不同版本的例子:

# CUDA11.2版本
C:\Users\EDZ>nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2020 NVIDIA Corporation
Built on Mon_Nov_30_19:15:10_Pacific_Standard_Time_2020
Cuda compilation tools, release 11.2, V11.2.67
Build cuda_11.2.r11.2/compiler.29373293_0
# CUDA10.2版本
PS C:\Users\ouyang> nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Oct_23_19:32:27_Pacific_Daylight_Time_2019
Cuda compilation tools, release 10.2, V10.2.89

4. 安装cuDNN

下载cuDNN,需要注册/登录。找到飞桨官网指定的CUDA对应的cuDNN版本。

找到CUDA默认安装目录 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vxx.x 。把文件解压缩后复制进去。

进入命令行,看到PASS,确认cuDNN安装成功:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\extras\demo_suite>deviceQuery.exe
deviceQuery.exe Starting...
...
Result = PASS

5.配置常用命令

查看GPU利用率(GPU-Util):nvidia-smi -l 3

6.安装PaddlePaddle

注意:conda源不稳定,请使用pip安装paddlepaddle。

使用下面的命令测试paddle-gpu版本安装是否成功?

PS C:\AlexOuyang\app\PARL> python
Python 3.8.11 (default, Aug  6 2021, 09:57:55) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import paddle
>>> paddle.utils.run_check()
Running verify PaddlePaddle program ... 
W0822 16:05:32.058182 13644 device_context.cc:404] Please NOTE: device: 0, GPU Compute Capability: 6.1, Driver API Version: 11.2, Runtime API Version: 10.2
W0822 16:05:32.099025 13644 device_context.cc:422] device: 0, cuDNN Version: 7.6.
PaddlePaddle works well on 1 GPU.
PaddlePaddle works well on 1 GPUs.
PaddlePaddle is installed successfully! Let's start deep learning with PaddlePaddle now.

注意:上面代码块中显示的显卡驱动版本(Driver 11.2) 运行环境(Runtime10.2) cuDNN(7.6)。它表明我在这台电脑上安装的显卡驱动是最新的11.2,CUDA安装的10.2,cuDNN安装的7.6。这个组合是可以正常运行的

注意:在win10上没发现显卡驱动自己drop的问题,但是在Ubuntu上发现过显卡驱动自己drop而且装不回来,只能恢复到系统自带的显卡驱动。因此显卡驱动版本用系统自带的最好。显卡驱动版本不影响我们选择合适的CUDA+cuDNN。

注意: 飞桨建议非30系N卡用户选择CUDA10.2+cuDNN7.6,而不是最新的11.2系列编程环境。

三、Colab

充值

使用海外虚拟信用卡开通Colab Pro服务,A100(40G显存),V100(16G显存),T4(16G显存)。

例如notebook脚本:dreambooth,点击右上菜单,选中“更改运行时类型”,选高RAM+A100即可。Colab的优势是网速极快,验证新算法最好用它。