GPU与深度学习

    技术2022-07-11  120

    GPU与深度学习

    一.为什么深度学习要使用CPU 深度学习:深度学习是模拟人脑神经系统而建立的数学网络模型,最大特点是需要大数据来训练,也就需要大量的并行的重复计算。 GPU:CPU的全称是Central Processing Unit,GPU的全称是Graphics Processing Unit。在命名上,这两种器件相同点是它们都是Processing Unit——处理单元;不同点是CPU是“核心的”,而GPU是用于“图像”处理的。顾名思义,这些名称的确非常符合大众印象中它们的用途——一个是电脑的“大脑核心”,一个是图像方面的“处理器件”,它拥有大量计算能力,接受CPU调度。 (一)GPU具有如下特点: 1 、提供了多核并行计算的基础结构,且核心数非常多,可以支撑大量数据的并行计算。 2、 拥有更高的访存速度。 3、更高的浮点运算能力。浮点运算能力是关系到处理器的多媒体、3D图形处理的一个重要指标。现在的计算机技术中,由于大量多媒体技术的应用,浮点数的计算大大增加了,比如3D图形的渲染等工作,因此浮点运算的能力是考察处理器计算能力的重要指标。 (二)和深度学习相关的主要 GPU 性能指标如下:

    内存带宽:GPU 处理大量数据的能力,是最重要的性能指标。 处理能力:表示 GPU 处理数据的速度,我们将其量化为 CUDA 核心数量和每一个核心的频率的乘积。 显存大小:一次性加载到显卡上的数据量。运行计算机视觉模型时,显存越大越好,特别是如果你想参加 CV Kaggle 竞赛的话。对于自然语言处理和数据分类,显存没有那么重要。

    深度学习(DL)是机器学习(ML)的一个分支。深度学习使用神经网络来解决问题。神经网络的优点之一是自行寻找数据(特征)模式。这和以前告诉算法需要找什么不一样。但是,通常这意味着该模型从空白状态开始(除非使用迁移学习)。为了从头捕捉数据的本质/模式,神经网络需要处理大量信息。通常有两种处理方式:使用 CPU 或 GPU。计算机的主要计算模块是中央处理器(CPU),CPU 的设计目的是在少量数据上执行快速计算。在 CPU 上添加数倍的数字非常快,但是在大量数据上进行计算就会很慢。如,几十、几百或几千次矩阵乘法。在表象背后,深度学习多由矩阵乘法之类的操作组成。有趣的是,3D 电子游戏同样依赖这些操作来渲染那些美丽的风景。因此,GPU 的作用被开发出来,它们可以使用数千个核心处理大量并行计算。此外,它们还有大量内存带宽处理数据。这使得 GPU 成为进行 DL 的完美硬件。至少,在用于机器学习的 ASIC 如谷歌的 TPU 投入市场之前,我们还没有其他更好的选择。 总之,尽管使用 CPU 进行深度学习从技术上是可行的,想获得真实的结果你就应该使用 GPU。深度学习的运算是大量的简单运算,所以使用GPU。 二.为什么GPU的学习对深度学习如此重要 正如大多数人所知道的,GPU的处理速度之快得益于它可以高效地处理矩阵乘法和卷积,但是大家并不一定知道真正的理由。GPU如此快速的真正原因是内存带宽和不必要的并行。深度学习是人工智能技术的一种算法,即使在安防领域中,深度学习出现的频率也在不断提升。这种算法对于运算量的要求很高,但是对计算精度的要求不高。 在CPU与GPU的取舍中,CPU虽然每个处理器计算精度比GPU更高,但是运算单元一般不多,而且做简单运算的速度上并没什么优势,GPU则可以用一些工具让大量处理器做并行运算,在面对简单而又大量的运算时,有设计上的优越性。 在英伟达的GPU芯片中,有一种名为CUDA的架构,主要负责处理器的并行运算,后来又衍生出了cuDNN架构,据深度学习的开发者反馈,这种架构在开发起来比较好使,目前全球大部分深度学习框架都对 cuDNN 支持的比较好,比如谷歌的TensorFlow。 可以说,GPU芯片在人工智能领域基本处于垄断地位,因此英伟达才希望通过霸王条款来提升Tesla显卡的出货量,限制服务器企业和系统集成商使用成本低廉的GeForce 显卡。想要提高网络服务、云端运算,以及专注深度学习的企业与研究机构来说,设备费用将会明显上涨。

    Processed: 0.010, SQL: 10