为什么深度学习要使用gpu(人工智能-深度学习-41)

第1章 英伟达Nvidia CUDA 编程框架简介

1.1 概述

CUDA(Compute Unified Device Architecture),是显卡厂商Nvidia推出的运算平台。

CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。

开发人员现在可以使用C语言来为CUDA™架构编写程序,C语言是应用最广泛的一种高级编程语言。所编写出的程序于是就可以在支持CUDA™的处理器上以超高性能运行。CUDA3.0已经开始支持C 和FORTRAN和python。

计算行业正在从只使用CPU的“中央处理”向CPU与GPU并用的“协同处理”发展。为打造这一全新的计算典范,NVIDIA™(英伟达™)发明了CUDA(Compute Unified Device Architecture,统一计算设备架构)这一编程模型,是想在应用程序中充分利用CPU和GPU各自的优点。

现在,该架构已应用于GeForce™(精视™)、ION™(翼扬™)、Quadro以及Tesla GPU(图形处理器)上。

为什么深度学习要使用gpu(人工智能-深度学习-41)(1)

从上图可以看出,如果在CPU上运行(训练与预测),只需要到左侧的CPU环境,这个环境,在安装annacond的时候已经全部搞定。

然后, 如果需要在GPU上运行,不仅仅需要左侧的CPU,增加了右侧的GPU, 为了能够在使得CPU和GPU能够协同工作,从底层到应用层,都需要做适当的改进,才能够在GPU上正确的运行,包括操作层GPU的驱动程序、系统库层的GPU的系统库、算法库,这些是不同深度学习框架共有的,除此之外,不同的深度学习框架,也需要按照相应的库,以方便应用程序简洁的通过深度学习框架提供的API使用GPU或CPU进行训练与预测。

1.2 不同模块的版本制约关系

  • GPU driver: 450.xx, 379x
  • CUDA 版本: 10.x.x, 11.x.x
  • cudnn版本: 7.6.x, 8.2.x
  • Aannada版本: 4.x,
  • Python版: 3.6.x, 3.7.x, 3.8
  • Pytorch版本: 1.8.x , 1.9.x, 10.x
  • Tensorflow版本: 1.x.x, 2.x.x
第2章 英伟达CUDA OS环境的安装(Tensorflow和Pytorch共用)

说明:本文以Windows10为例。

2.1 GPU硬件的安装与确认: 本文以台式机RTX2070为例

(1) 硬件说明

为什么深度学习要使用gpu(人工智能-深度学习-41)(2)

注意1:显卡驱动有笔记本和台式机的区别,官网下载驱动时请注意选择notebook版本还是默认的台式机版本

注意2:如果使用台式机出现黑屏情况,请将连接显示器的数据线接在CPU端口的核显上,安装好后再接在独显的端口上,HDMI、VGA、mDP的线都可以,看你的机器CPU和独显输出都有哪些端口

显卡型号:RTX2070

(2)硬件驱动的确认

在桌面上右击如果能找到NVIDA控制面板,则说明该电脑有GPU显卡。

控制面板如下,并通过查看系统信息获取该GPU硬件支持的Cuda并行计算开发框架的版本。

为什么深度学习要使用gpu(人工智能-深度学习-41)(3)

为什么深度学习要使用gpu(人工智能-深度学习-41)(4)

上图中,RTX2070 Super支持的驱动版本是496.13,这个版本会限定了CUDA的选择,不能选择过高的CUDA的版本,否则最新的CUDA功能将在此硬件上无法实现!!!

如果没有NVIDA控制面板,或看不到相应的硬件的驱动信息,就需要为NVIDA GPU安装特定操作系统的硬件驱动程序了。

2.2 Nvidia GPU显卡硬件驱动的更新 (针对操作系统)

说明:

由于CUDA并行框架的新功能依赖于硬件驱动的版本与功能。

因此如果充分利用CUDA的功能,最好能够升级硬件驱动到最新版本,然后在根据硬件驱动支持的最高版本,选择CUDA的版本。否则,高版本的CUDA的功能在低版本的驱动上无法实现!!!

为什么深度学习要使用gpu(人工智能-深度学习-41)(5)

为什么深度学习要使用gpu(人工智能-深度学习-41)(6)

为什么深度学习要使用gpu(人工智能-深度学习-41)(7)

2.3 Nvidia GPU显卡硬件驱动的新安装 (硬件驱动程序库)

(1)官网驱动下载地址:

https://www.geforce.cn/drivers

为什么深度学习要使用gpu(人工智能-深度学习-41)(8)

(2)选择GPU型号

(3)下载新驱动安装

(4)安装驱动程序

2.4 Nvidia Cuda 的安装(并行计算框架库)

说明:Cuda的版本越高,功能越强大与完善,但所需要的底层硬件驱动程序的版本就越高,因此Cuda要与硬件驱动的版本兼容。

低版本的硬件驱动,高版本的Cuda的功能无法得到实现。

因此,需要确保Cuda与硬件驱动的一致性。

(1)CUDA 版本与硬件驱动程序对应关系表官网

Release Notes :: CUDA Toolkit Documentation

(2)选择CUDA的版本

为什么深度学习要使用gpu(人工智能-深度学习-41)(9)

备注:CUDA的版本受限于硬件驱动的版本。

在本案例中,硬件支持的Windows驱动程序的最新版本是:496.13, Cuda的最高版本可以选择11.4以上的版本,也可以选择低于11.4的版本。

在硬件驱动版本限制的情况下,尽可能选择高一点版本的CUDU,以支持更多的功能。

(3)下载cuda(15分钟)

CUDA Toolkit 9.0 Downloads | NVIDIA Developer

https://developer.nvidia.com/cuda-90-download-archive

为什么深度学习要使用gpu(人工智能-深度学习-41)(10)

  • Local本地安装模式(适合没有网络的用户): 2.4G的大小,着实需要较长的下载时间,下载后安装比较快。
  • Network网络安装模式(适合有网络的用户):文件比较小,安装时需要网络。

(4)安装(10分钟)

选择精简安装,这样节省空间。

为什么深度学习要使用gpu(人工智能-深度学习-41)(11)

(5)安装后的检查

为什么深度学习要使用gpu(人工智能-深度学习-41)(12)

安装好之后的环境变量默认包含:

CUDA_PATH:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5

CUDA_PATH_V11.5:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5

PATH:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5\bin

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5\libnvvp

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5\extras\CUPTI\libx64(这个需要自己添加)

2.3 Nvidia cuDNN的安装(卷积库)

cudnn是pytorch搭建深度学习模型的依赖,没有它,不能运行卷积等操作。

目前下载cuDNN比较麻烦,要在官网注册,而且有时候网站打不开。

(1)官网下载地址:

cuDNN Archive | NVIDIA Developer

(2)版本选择

为什么深度学习要使用gpu(人工智能-深度学习-41)(13)

(3)下载

(4)安装(手工)

  • 解压cuDNN后得到bin、include、lib三个文件夹
  • 将bin下的cudnn64_7.dll拷贝到:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin
  • 将include下的cudnn.h拷贝到:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\include
  • 将lib\x64下的cudnn.lib拷贝到:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\lib\x64

(5)安装后检查

第3章 通过清华镜像安装cuda和cudnn

3.1 主页

Index of /anaconda/pkgs/main/win-64/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64/

3.2 通过网站直接下载cuda window版本安装

为什么深度学习要使用gpu(人工智能-深度学习-41)(14)

3.3 通过网站直接下载cudnn windows版本安装

为什么深度学习要使用gpu(人工智能-深度学习-41)(15)

3.4 解压

3.5 安装

第4章 Pytorch 深度学习框架GPU库的安装

4.1 前提: 已经安装好了Anaconda的开发环

4.2 为Pytorch准备好虚拟环境

创建pytorch环境, 如:conda create -n pytorch1.8_py3.8

激活pytorch环境, 如:conda activate pytorch1.8_py3.8

4.3 通过conda安装 cudatoolkit和cudnn (如果没有安装的话)

conda install cudatoolkit=10.2 #在激活的环境中安装cudatoolkit (GPU 工具集)

conda install cudnn=7.6 #在激活的环境中安装cudnn (卷积库)

或者指定镜像地址

conda install cudatoolkit=10.2 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64/

4.4 安装 Pytorch GPU库(大致需要1小时)

(1)登录到官网

PyTorch

An open source machine learning framework that accelerates the path from research prototyping to production deployment.

https://pytorch.org/

(2)获取conda的执行命令

为什么深度学习要使用gpu(人工智能-深度学习-41)(16)

安装pytorch最新版本: conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch

( 去掉后面的 -c pytorch 就是只使用清华源,不去掉就是官方源也可能会用到)

备注:这个过程需要较长的时间,根据网络的情况,可能要数个小时。

  • pytorch:pytorch基础库
  • torchvision:图像处理图
  • torchaudio:语音处理库
  • cudatoolkit:cuda GPU工具链 (只包括深度学习框架自身提供的cuda工具链,不包括Nvidia提供的工具链)

4.5 验证pytorch GPU库的安装

  • 进入python解析器

(pytorch1.8_py3.8) PS C:\Users\Administrator> Python Python 3.8.10 (default, May 19 2021, 13:12:57) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32

Type "help", "copyright", "credits" or "license" for more information.

  • 导入pytorch库

>>> import torch

  • 调用pytorch库函数,检查GPU是否支持。

>>> torch.cuda.is_available()

True

  • 检查cuda的版本

>>> print(torch.version.cuda)

'10.2'

  • 检察院cudnn版本

>>> torch.backends.cudnn.version()

7605

  • 退出python解析器,回到conda环境

>>> quit()

第5章 Tensorflow 深度学习框架GPU库的安装

5.1 前提: 已经安装好了Anaconda的开发环

5.2 为tensorflow创建conda的虚拟项目环境

conda create -n tensorflow2.4_py3.8 python=3.8

conda activate tensorflow2.4_py3.8

5.3 通过conda安装 cudatoolkit和cudnn (如果没有安装的话)

conda install cudatoolkit==10.2 #在激活的环境中安装cudatoolkit (GPU 工具集)

conda install cudnn==7.6 #在激活的环境中安装cudnn (卷积库)

5.4 tensorflow的GPU的安装

pip install tensorflow-gpu # 安装tensorflow (gpu 基础库)

备注:

上述只包括深度学习框架自身提供的cuda工具链和cudnn库,不包括Nvidia提供的工具链和cudnn库。

5.5 验证

  • 进入python解析器

(tensorflow2.4_py3.8) PS C:\Users\Administrator> python Python 3.8.10 (default, May 19 2021, 13:12:57) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32

Type "help", "copyright", "credits" or "license" for more information.

  • 导入tensorflow库

>>> import tensorflow as tf

  • 调用tensorflow库函数,检查GPU是否支持。

>>> tf.__version__

'2.4.0'

>>> tf.__path__

  • 检查是否支持GPU

>>> tf.test.is_gpu_available()

True

  • 退出python解析器,回到conda环境

>>> quit()

————————————————

感谢大家的支持和喜欢,小编会每天分享更多Python学习的干货知识给大家,所以大家别忘了关注小编哦。

为什么深度学习要使用gpu(人工智能-深度学习-41)(17)

版权声明:本文为CSDN博主「文火冰糖的硅基工坊」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/HiWangWenBing/article/details/121241620

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页