在深度学习中,我们常常要对图像数据进行处理和计算,而处理器CPU因为需要处理的事情多,并不能满足我们对图像处理和计算速度的要求,显卡GPU就是来帮助CPU来解决这个问题的,GPU特别擅长处理图像数据,CUDA® 是 NVIDIA 专为图形处理单元 (GPU) 上的通用计算开发的并行计算平台和编程模型。借助 CUDA,开发者能够利用 GPU 的强大性能显著加速计算应用。

在经 GPU 加速的应用中,工作负载的串行部分在 CPU 上运行,且 CPU 已针对单线程性能进行优化,而应用的计算密集型部分则以并行方式在数千个 GPU 核心上运行。使用 CUDA 时,开发者使用主流语言(如 C、C++、Fortran、Python 和 MATLAB)进行编程,并通过扩展程序以几个基本关键字的形式来表示并行性。

NVIDIA 的 CUDA 工具包提供了开发 GPU 加速应用所需的一切。CUDA 工具包中包含多个 GPU 加速库、一个编译器、多种开发工具以及 CUDA 运行环境。

什么是显卡?

显卡(Video card,Graphics card)全称显示接口卡,又称显示适配器,是计算机最基本配置、最重要的配件之一。显卡作为电脑主机里的一个重要组成部分,是电脑进行数模信号转换的设备,承担输出显示图形的任务。显卡接在电脑主板上,它将电脑的数字信号转换成模拟信号让显示器显示出来,同时显卡还是有图像处理能力,可协助CPU工作,提高整体的运行速度。对于从事专业图形设计的人来说显卡非常重要。民用和军用显卡图形芯片供应商主要包括AMD(超微半导体)和Nvidia(英伟达)2家。现在的top500计算机,都包含显卡计算核心。在科学计算中,显卡被称为显示加速卡。

什么是显存?

也被叫做帧缓存,它的作用是用来存储显卡芯片处理过或者即将提取的渲染数据。如同计算机的内存一样,显存是用来存储要处理的图形信息的部件。

显卡、显卡驱动、CUDA之间的关系

显卡:(GPU),主流是NVIDIA的GPU,因为深度学习本身需要大量计算。GPU的并行计算能力,在过去几年里恰当地满足了深度学习的需求。AMD的GPU基本没有什么支持,可以不用考虑。
驱动:没有显卡驱动,就不能识别GPU硬件,不能调用其计算资源。但是呢,NVIDIA在Linux上的驱动安装特别麻烦,尤其对于新手简直就是噩梦。得屏蔽第三方显卡驱动。下面会给出教程。
CUDA:是显卡厂商NVIDIA推出的只能用于自家GPU的并行计算框架。只有安装这个框架才能够进行复杂的并行计算。主流的深度学习框架也都是基于CUDA进行GPU并行加速的,几乎无一例外。还有一个叫做cudnn,是针对深度卷积神经网络的加速库。

为什么GPU特别擅长处理图像数据呢?

这是因为图像上的每一个像素点都有被处理的需要,而且每个像素点处理的过程和方式都十分相似,GPU就是用很多简单的计算单元去完成大量的计算任务,类似于纯粹的人海战术。GPU不仅可以在图像处理领域大显身手,它还被用来科学计算、密码破解、数值分析,海量数据处理(排序,Map-Reduce等),金融分析等需要大规模并行计算的领域。

查看自己电脑是否可以使用GPU加速?

想要使用GPU加速,则需要安装cuda,所以首先需要自己的电脑显卡是否支持cuda的安装,也就是查看自己的电脑里面有没有NVIDA的独立显卡,这里再说明一下,AMD的显卡不支持安装cuda来进行加速,具体查看步骤如下:
第一步:开始菜单输入框输入设备管理器,打开设备管理器,找到显示适配器后点击,查看电脑显卡型号
image.png
第二步:在NVIDA官网列表中,地址:https://developer.nvidia.com/cuda-gpus,查看自己的显卡型号是否在NVIDA列表中,若存在则可以下载cuda实现GPU加速,这里可以看到我的显卡计算力为7.5,当然如果你的显卡运算能力在3.0以下,那没有适合你的cuda版本。
image.png
image.png