您现在的位置:>  东田工控机 > 新闻中心 > 行业动态
联系我们

电 话:0571-88855790/88855791

传 真:0571-88315242

地 址:杭州市余杭区龙潭路7号未来科技研创园A座三楼320室

深度学习当中GPU相较于CPU而言存在哪些优势

来源:杭州东田工控  日期:2019-06-21

    CPU被称作中央处理器,是一台计算机的计算处理核心,主要负责计算机的控制命令处理和核心运算输出。GPU被称作图像处理器,是一台主机的显示处理核心,主要负责对计算机中的图形和图像的处理与运算。

    从硬件层面上来说,GPU相较于CPU而言,它拥有更多的核心数量,这也是为什么说GPU更适合并行运算的原因;但是CPU虽然核心数量比较少,但是其每一个核心计算单元相较于GPU的每一个核心计算单元,具有更高效的计算能力。所以如果从应用场景上来区分的话,只能说CPU侧重于串行计算,而GPU侧重于并行计算。

    那为什么大部分深度学习都采用GPU来结合呢?

    因为在深度学习中,大多数模型的参数结构都是张量形式,做张量计算就像做矩阵运算一样,存在着大量的并行计算,所以使用GPU做深度学习运算,犹如两个轮子的自行车和四个轮子的汽车一样,同样的起点和终点,到达的时间相差百倍。

    举个例子,我们来描述一下GPU进行数据处理的过程。当GPU从CPU处得到数据处理的指令,把大规模、无结构化的数据分解成很多独立的部分然后分配给各个流处理器集群。每个流处理器集群再次把数据分解,分配给调度器所控制的多个计算核心同时执行数据的计算和处理。如果一个核心的计算算作一个线程,那么在这颗GPU中就有32×4×16,2048个线程同时进行数据的处理。尽管每个线程/Core的计算性能、效率与CPU中的Core相比低了不少,但是当所有线程都并行计算,那么累加之后它的计算能力又远远高于CPU。

    对于基于神经网络的深度学习来说,它硬件计算精度要求远远没有对其并行处理能力的要求来的迫切。而这种并行计算能力转化为对于硬件的要求就是尽可能大的逻辑单元规模。通常我们使用每秒钟进行的浮点运算来量化的参数。不难看出,对于单精度浮点运算,GPU的执行效率远远高于CPU。

    除了计算核心的增加,GPU另一个比较重要的优势就是它的内存结构——共享内存。每个流处理器集群末端设有共享内存。相比于CPU每次操作数据都要返回内存再进行调用,GPU线程之间的数据通讯不需要访问全局内存,而在共享内存中就可以直接访问。这种设置的带来最大的好处就是线程间通讯速度的提高。

    再就是高速的全局内存(显存):目前GPU上普遍采用GDDR5的显存颗粒不仅具有更高的工作频率从而带来更快的数据读取/写入速度,而且还具备更大的显存带宽。通常我们会这样认为,在数据处理中速度往往最终取决于处理器从内存中提取数据以及流入和通过处理器要花多少时间。而在传统的CPU构架中,尽管有高速缓存的存在,但是由于其容量较小,大量的数据只能存放在内存(RAM)中。进行数据处理时,数据要从内存中读取然后在CPU中运算最后返回内存中。由于构架的原因,二者之间的通信带宽通常在60GB/s左右徘徊。与之相比,大显存带宽的GPU具有更大的数据吞吐量。在大规模深度神经网络的训练中,必然带来更大的优势。

    而且就目前而言,越来越多的深度学习标准库支持基于GPU的深度学习加速,通俗点讲就是深度学习的编程框架会自动根据GPU所具有的线程/Core数,去自动分配数据的处理策略,从而达到优化深度学习的时间。

  • 电话咨询

  • 4008-0571-96