版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
版权
深度学习同时被 2 个专栏收录
24 篇文章8 订阅
订阅专栏
35 篇文章10 订阅
订阅专栏
学习数据集训练时,电脑没有GPU,所以当时训练时用的是CPU,也没有意识到两者之间在训练数据集有什么差别,直到在一次训练过程中,着重看了一下训练过程,才发现,训练时间是真的差距大。
接下来就给大家讲一下,这两个具体有什么差别。
一、GPU和CPU是什么?
CPU:中央处理器(英文Central Processing Unit)是一台计算机的运算核心和控制核心。CPU、内部存储器和输入/输出设备是电子计算机三大核心部件。其功能主要是解释计算机指令以及处理计算机软件中的数据。
CPU
GPU:英文全称Graphic Processing Unit,中文翻译为“图形处理器”。一个专门的图形核心处理器。GPU是显示卡的“大脑”,决定了该显卡的档次和大部分性能,同时也是2D显示卡和3D显示卡的区别依据。2D显示芯片在处理3D图像和特效时主要依赖CPU的处理能力,称为“软加速”。3D显示芯片是将三维图像和特效处理功能集中在显示芯片内,也即所谓的“硬件加速”功能。
GPU
显卡
二、GPU与CPU有什么区别?
CPU和GPU之所以大不相同,是由于其设计目标的不同,它们分别针对了两种不同的应用场景。主要区别如下。
CPU需要很强的通用性来处理各种不同的数据类型,同时又要逻辑判断又会引入大量的分支跳转和中断的处理。这些都使得CPU的内部结构异常复杂。而GPU面对的则是类型高度统一的、相互无依赖的大规模数据和不需要被打断的纯净的计算环境。
于是CPU和GPU就呈现出非常不同的架构。
其中上图中绿色的是计算单元,橙红色的是存储单元,橙黄色的是控制单元。
GPU采用了数量众多的计算单元和超长的流水线,但只有非常简单的控制逻辑并省去了Cache。而CPU不仅被Cache占据了大量空间,而且还有有复杂的控制逻辑和诸多优化电路,相比之下计算能力只是CPU很小的一部分。
CPU 基于低延时的设计:
CPU有强大的ALU(算术运算单元),它可以在很少的时钟周期内完成算术计算。
当今的CPU可以达到64bit 双精度。执行双精度浮点源算的加法和乘法只需要1~3个时钟周期。CPU的时钟周期的频率是非常高的,达到1.532~3gigahertz(千兆HZ, 10的9次方).大的缓存也可以降低延时。保存很多的数据放在缓存里面,当需要访问的这些数据,只要在之前访问过的,如今直接在缓存里面取即可。
复杂的逻辑控制单元。当程序含有多个分支的时候,它通过提供分支预测的能力来降低延时。数据转发。 当一些指令依赖前面的指令结果时,数据转发的逻辑控制单元决定这些指令在pipeline中的位置并且尽可能快的转发一个指令的结果给后续的指令。这些动作需要很多的对比电路单元和转发电路单元。
GPU是基于大的吞吐量设计。
GPU的特点是有很多的ALU和很少的cache. 缓存的目的不是保存后面需要访问的数据的,这点和CPU不同,而是为thread提高服务的。如果有很多线程需要访问同一个相同的数据,缓存会合并这些访问,然后再去访问dram(因为需要访问的数据保存在dram中而不是cache里面),获取数据后cache会转发这个数据给对应的线程,这个时候是数据转发的角色。但是由于需要访问dram,自然会带来延时的问题。
GPU的控制单元(左边黄色区域块)可以把多个的访问合并成少的访问。
GPU的虽然有dram延时,却有非常多的ALU和非常多的thread. 为啦平衡内存延时的问题,我们可以中充分利用多的ALU的特性达到一个非常大的吞吐量的效果。尽可能多的分配多的Threads.通常来看GPU ALU会有非常重的pipeline就是因为这样。所以与CPU擅长逻辑控制,串行的运算。和通用类型数据运算不同,GPU擅长的是大规模并发计算,这也正是密码破解等所需要的。所以GPU除了图像处理,也越来越多的参与到计算当中来。
上面说的有点专业化,接下来就简单说一下,他们两个到底差在哪?
CPU(Central Processing Unit)是电脑最主要的部件,他的主要功能是解释计算机指令以及处理计算机软件中的数据,说白了就是做指挥工作,统筹各方面。CPU相当于整个电脑的心脏,而GPU相当于显卡的心脏。
普通的处理器CPU差不多双核心四线程,目前市面上最高端的桌面处理器i9-7980XE(RMB1.5万)不过十八核心三十六线程。GPU则不同,就拿普通的2000块的游戏显卡RX 480来说,RX480的GPU芯片计算单元划分为36个CU计算核心,每个CU核心又包含了64个流处理器计算核心,所以总共就是36X64=2304个流处理器计算核心。
CPU相对于GPU就像老教授和小学生,拿i9-7980XE和RX480举个例子,出一套小学数学试卷,老教授刚做一道题,两千多名学生一人一题早就交卷子了。如果套高数卷子,老教授做完学生们一道也不会做。
三、训练神经网络GPU优于CPU
很多个简单的工作,交给GPU显然更适合。
其实在早期,神经网络都是用CPU训练的。即使现在,像TensorFlow这样的流行框架也支持在CPU上运行。那么,既然CPU和GPU都可以训练神经网络,为什么一般用GPU训练神经网络?很简单,因为GPU比CPU快很多。比如,Victor Dibia(IBM研究院Research Staff Member)基于Tensorflow框架训练了一个实时检测手部的网络。
训练这样一个神经网络要花多久?CPU上大约要12天,而GPU上则是5小时。(我们这里不讨论具体的型号,关键是两者的比例。CPU和GPU的差距太大了)。
而且,实际上这个神经网络的训练时间已经通过迁移学习大大缩短了。迁移学习指直接拿训练好的图像分类的模型来用,只是重新训练最后一层或几层网络以检测手部,所以能快很多。那如果从头开始训练的话(有的时候没有现成的模型可供迁移),可能要几周甚至几个月。这还是GPU的情况。
按照上面的比例,换算成CPU,那基本上就太慢太慢,慢到不现实的程度。GPU之所以比CPU快好多,主要是因为,从运算的角度来看,神经网络主要是由大量的浮点矩阵构成的。而现代的神经网络,可能有几千到几百万的浮点矩阵(所谓深度学习),因此需要很大的内存带宽来访问这些海量的浮点矩阵。而GPU的内存带宽比CPU高很多。比如Intel的Core i9-7980XE内存带宽约为57GB/s,而NVIDIA的Tesla P100带宽高达900GB/s。
使用神经网络训练,一个最大的问题就是训练速度的问题,特别是对于深度学习而言,过多的参数会消耗很多的时间,在神经网络训练过程中,运算最多的是关于矩阵的运算,这个时候就正好用到了GPU,GPU本来是用来处理图形的,但是因为其处理矩阵计算的高效性就运用到了深度学习之中。
收藏
一键三连
扫一扫,分享海报
专栏目录
晶门科技有限公司(Solomon Systech Limited)日前正式推出其为3至3.5英寸中型显示应用系统设计的解决方案。该解决方案可被用于数码相框、MP4、学习机以及个人导航设备(PND),使产品的设计周期缩短50%,从而加快投放市场的时间。 这款显示系统由一枚128针LQFP封装的SSD1926QL9图像处理器、一块使用SSD2116Z TFT控制器驱动的CPT QVGA TFT LCD显示屏、一个SD插槽、以及一个MCU接头组成。整个系统的设计就是为了提供一个用户友好的平台,同时其内置的SD插槽使用户可以方便的对SSD1926QL9进行存取操作。图像处理器内的JPE
今天小编就为大家分享一篇对pandas将dataframe中某列按照条件赋值的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
导读:一文看懂GPU的前世今生。作者:钱纲来源:大数据DT(ID:hzdashuju)2016年,发生了一件震动IT界的大事。谷歌的人工智能软件阿尔法狗(AlphaGo)击败了韩国的世界...
CPU和GPU之所以大不相同,是由于其设计目标的不同,它们分别针对了两种不同的应用场景。CPU需要很强的通用性来处理各种不同的数据类型,同时又要逻辑判断又会引入大量的分支跳转和中断的处理。这些都使得CPU的内部结构异常复杂。而GPU面对的则是类型高度统一的、相互无依赖的大规模数据和不需要被打断的纯净的计算环境。 于是CPU和GPU就呈现出非常不同的架构(示意图): 图片
作者:知乎用户 链接:https://www.zhihu.com/question/19903344/answer/96081382 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 看了好多,觉得下面这个介绍才是我想要的以及能看明白的,转载自: 1.2CPU和GPU的设计区别CPU和GPU之所以大不相同,是由于其设计目标的不同,它们分别针对了
下面小编就为大家分享一篇pandas.DataFrame 根据条件新建列并赋值的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
如下图是pandas的Dataframe清洗数据步骤,包括数据行列选取,赋值,更改列名集重建索引的思维导图: 文章目录一、数据选取-普通行列总结:二、 数据选取-按条件筛选行列 总结三、重建索引和更改列名总结 一、数据选取-普通行列总结: df[col] # 根据列名,并以Series的形式返回列 df[[col1, col2]] # 以Data...
一:什么是GPU 很久以前,大概2000年那时候,显卡还被叫做图形加速卡。一般叫做加速卡的都不是什么核心组件,和现在苹果使用的M7协处理器地位差不多。这种东西就是有了更好,没有也不是不行,只要有个基本的图形输出就可以接显示器了。在那之前,只有一些高端工作站和家用游戏机上才能见到这种单独的图形处理器。后来随着PC的普及,游戏的发展和Windows这样的市场霸主出现,简化了图形硬件厂商的工作量...
有网友在网上提问:“为什么现在更多需要用的是GPU 而不是CPU,比如挖矿甚至破解密码? ”以下是比较准确靠谱的回答: 1、现在更多被需要的依然是CPU,只是GPU在大规模并发计算中体现出其一技之长所以应用范围逐渐变得广泛,并成为近些年的热点话题之一。 为什么二者会有如此的不同呢?首先要从CPU和GPU的区别说起。 CPU和GPU之所以大不相同,是由于其设计目标的
本篇结构 前言 概论 CPU简介 GPU简介 并行计算 CPU/GPU对比 适于GPU计算的场景 GPU开发环境 参考博文 一、前言 因为工作需要,需要从github上找一个CUDA的DBSCAN聚类实现,刚开始从github上获取到的代码只支持二维数据,为了适配多维数据,要对代码简单改造,这就需要了解CUDA编程模式。之前没有接触过GPU编程相关概念,甚至于没有学过c语言,加上脑袋笨重...
©\ufe0f2020 CSDN皮肤主题: Age of Ai 设计师:meimeiellie返回首页
水亦心
CSDN认证博客专家CSDN认证企业博客
1万+
积分
关注

个人介绍

网络空间安全博士,研究方向包括:
区块链、移动社会网络、数据安全、ML、DL、CV。
想了解更多深入知识,学习更多前沿技术,欢迎大家关注对应微信公众号
AI与区块链技术

您愿意向朋友推荐“博客详情页”吗?

强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
点击重新获取
扫码支付
钱包余额0
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值