深度学习gpu为什么比cpu快

深度学习硬件这件事,GPU、CPU、FPGA到底谁最合适?
二、数据的训练:CPU与GPU之争
在如今的深度学习平台上,CPU面临着一个很尴尬的处境:它很重要又不是太重要。 它很重要,是因为它依旧是主流深度学习平台的重要组成部分:现百度首席科学家吴恩达曾利用16000颗CPU搭建了当时世界上最大的人工神经网络“Google Brain”并利用深度学习算法识别出了“猫”,又比如名震一时的“AlphaGo”就配置了多达1920颗CPU。
但是它又不是太重要:相比于其他硬件加速工具,传统的CPU在架构上就有着先天的弱势。
上图是CPU与GPU内部结构上的对比,总体上来说二者都是由控制器(Control),寄存器(Cache、DRAM)和逻辑单元(ALU:Arithmetic Logic Unit)构成。但是三者的比例却有很大的不同。在CPU中控制器和寄存器占据了结构中很大一部分,与之相反,在GPU中,逻辑单元的规模则是远远超过其他二者之和。这种不同的构架就决定了CPU在指令的处理/执行,函数的调用上有着很好的发挥,但由于逻辑单元所占比重较小,相对于GPU而言,在数据的处理方面(算术运算或者逻辑运算)的能力就弱了很多。
我们拿NIVIDA公司基于Maxwell构架的GPU来详细说明。这颗代号GM200的显示核心主要由4个图形处理集群(GPC:Graphics Processing Clusters ),16个流处理集群(SMM:Steaming Multiprocess)和4个64bit显存控制器组成。每个流处理集群中包含了4个调度器(Warp),每个调度器又控制着32个逻辑计算核心(Core),这些Core是实现逻辑计算的基本单元。
GPU进行数据处理的过程可以描述成:GPU从CPU处得到数据处理的指令,把大规模、无结构化的数据分解成很多独立的部分然后分配给各个流处理器集群。每个流处理器集群再次把数据分解,分配给调度器所控制的多个计算核心同时执行数据的计算和处理。如果一个核心的计算算作一个线程,那么在这颗GPU中就有32×4×16, 2048个线程同时进行数据的处理。尽管每个线程/Core的计算性能、效率与CPU中的Core相比低了不少,但是当所有线程都并行计算,那么累加之后它的计算能力又远远高于CPU。对于基于神经网络的深度学习来说,它硬件计算精度要求远远没有对其并行处理能力的要求来的迫切。而这种并行计算能力转化为对于硬件的要求就是尽可能大的逻辑单元规模。通常我们使用每秒钟进行的浮点运算(Flops/s)来量化的参数。不难看出,对于单精度浮点运算,GPU的执行效率远远高于CPU。
除了计算核心的增加,GPU另一个比较重要的优势就是他的内存结构。首先是共享内存。在NVIDIA披露的性能参数中,每个流处理器集群末端设有共享内存。相比于CPU每次操作数据都要返回内存再进行调用,GPU线程之间的数据通讯不需要访问全局内存,而在共享内存中就可以直接访问。这种设置的带来最大的好处就是线程间通讯速度的提高(速度:共享内存》全局内存)。
再就是高速的全局内存(显存):目前GPU上普遍采用GDDR5的显存颗粒不仅具有更高的工作频率从而带来更快的数据读取/写入速度,而且具有更大的显存带宽。我们认为在数据处理中,速度往往最终取决于处理器从内存中提取数据以及流入和通过处理器要花多少时间。
而在传统的CPU构架中,尽管有高速缓存(Cache)的存在,但是由于其容量较小,大量的数据只能存放在内存(RAM)中。进行数据处理时,数据要从内存中读取然后在CPU中运算最后返回内存中。由于构架的原因,二者之间的通信带宽通常在60GB/s左右徘徊。与之相比,大显存带宽的GPU具有更大的数据吞吐量。在大规模深度神经网络的训练中,必然带来更大的优势。
而且就目前而言,越来越多的深度学习标准库支持基于GPU的深度学习加速,通俗点描述就是深度学习的编程框架会自动根据GPU所具有的线程/Core数,去自动分配数据的处理策略,从而达到优化深度学习的时间。而这些软件上的全面支持也是其他计算结构所欠缺的。
但是CPU真的在未来规模深度神经网络的计算中沦为花瓶么?CPU巨擘英特尔显然不甘于出现这样的局面。
在其于去年发布的代号“KNL(Knignts Landing)融核”处理器介绍中,我们发现英特尔针对目前CPU的种种弊端做出了很大的调整:首先在硬件架构上集成了更多的核心(72颗),这意味着有更多的逻辑单元去进行运算。其次是英特尔为这些核心增加了“可变精度”的支持,在低精度模式下(深度学习通常使用单精度)大幅度提高其浮点运算能力(3+TFlops),甚至接近GPU的性能指标。在内存支持方面,它不仅可以支持更多的内存,而且大幅提高了与内存间数据通讯的带宽,这也解决了目前CPU数据传输速度的弊端。
与这颗处理器相匹配的,是“MIC(Many Integrated Core)”众核同构计算模型。也是有别于其他加速硬件而被称为众核计算的原因:它可以完美运行X86代码。简而言之就是它可以直接脱离CPU直接与内存相连来进行深度学习。相对于“CPU+加速硬件”的异构模型,这种众核计算在很大程度上避免了CPU与加速硬件之间的通讯带宽问题。从而优化深度学习训练时间。
以现状而论,GPU的风头远远盖过CPU,但是对于CPU而言,新发布的处理器在构架上的变化让它把曾经的劣势(核心数/带宽)逐渐变为了它潜在的优势。因此,二者数据训练领域之争还依旧会持续下去。
三、数据的推断:FPGA VS ASIC
虽然“CPU+GPU”或者“MIC”的计算模型被广泛的应用于各种深度学习中去。其实CPU与GPU都是利用现有的成熟技术去提供了一种通用级的解决方法来满足深度学习的要求,尽管如Intel 与NVIDIA不断推出了如“KNL”和“Pascal”系列加速芯片来助阵深度学习,但这仅仅是大公司对于深度学习的一种妥协,而并不是一种针对性的专业解决方案。
目前在深度学习模型的训练领域基本使用的是SIMD(Single Instruction Multiple Data:单指令多数据流架构)计算,即只需要一条指令就可以平行处理大批量数据。但是,在平台完成训练之后,它还需要进行推理环节的计算。这部分的计算更多的是属于MISD(Multiple Instruction Single Data:多指令流单数据流)。比如讯飞语音输入法在同一时间要对数以百万计的用于的语音输入进行识别并转化为文字输出。
在这个阶段,他们的作用必远不如训练阶段那么得心应手。而在未来,至少95%的深度学习都用于推断,尤其是在移动端。只有不到5%的是用于模型训练。因此,寻找低功耗,高性能,低延时的加速硬件成了当务之急。在这种情况下,人们把目光投向了“FPGA”与“ASIC”。
FPGA全称是Field Programmable Gate Array:可编程逻辑门阵列。相对于之前两种芯片,它有一下几个的特点:硬件层面上,其内部集成大量的数字电路基本门电路和存储器,用户可以通过烧入配置文件来定义这些它们之间的连线,从而达到定制电路的目的;逻辑层面上,它不依赖于冯诺依曼结构,一个计算得到的结果可以被直接馈送到下一个无需在主存储器临时保存,因此不仅存储器带宽需求比使用GPU 或者CPU实现时低得多,而且还具有流水处理和响应迅速的特点。
ASIC(Application-Specific Integrated Circuit)是一种为专门目的而设计的集成电路。是指应特定用户要求和特定电子系统的需要而设计、制造的集成电路。ASIC的特点是面向特定用户的需求。亮点在于运行速度在同等条件下比FPGA快。根据谷歌披露的数据,完全版的“AlphaGo”拥有1920颗CPU和280颗GPU,除此此外,还有它还安装一定数量的TPU(Tensor Processing Unit)。 尽管谷歌一直对TPU语焉不详,业内普遍认为“AlphaGo”对围棋局势的预判所使用的置信网络(Value
network)就是依赖TPU的发挥。
与GPU/CPU相比,FPGA与ASIC拥有良好的运行能效比,在实现相同性能的深度学习算法中,GPU所需的功耗远远大于FGPA与ASIC。浪潮与Intel 于去年底FPGA加速卡 F10A 最高性能的加速卡,单芯片峰值运算能力达到1.5TFlops,功耗才35W,每瓦特功率42GFlops,是GPU的数倍之高。其次,对于SIMD计算,GPU/CPU尽管具有很多逻辑核心,但是受限于冯诺依曼结构,无法发挥其并行计算的特点。而FPGA与ASIC不仅可以做到并行计算,而且还能实现流水处理。这大大减小了输入与输出的延时比。
下图是FPGA与ASIC在设计环节的对比。FPGA从设计的角度来说更加的灵活多变。只要用 Verilog或者其他描述语言定义好内部的逻辑结构即可实现硬件加速器功能。而ASIC则更像是一锤子卖卖:针对特定功能深度学习算法量身定做的。而且ASIC的设计和制造要经过很多的验证和物理设计,与FPGA的即插即用相比,需要更多的时间,而且从设计到制造,付出的代价也相应的高了很多。一般来说,基于FPGA的开发周期大约为6个月,而相同规格的ASIC则需要1年左右。
但是话又说回来,事物都有两面性。FPGA的的架构固然带来了应用上的灵活性和低成本,但是从执行的效率上来说,它又远远比不上ASIC,FPGA的通用性必然导致冗余。FPGA的运算电路基于查找表,比如说,FPGA内部有1000万个自定义逻辑部件,一个4输入的查找表单元需要96个晶体管来支持,而在ASIC上来实现估计只需要10个左右。这些冗余也必然体现在芯片的面积和功耗上。
与CPU与GPU之争的一边倒相比,由于功能与市场定位等原因,二者间的竞争还是相当缓和。
由于FPGA具有开发周期短,上市速度快,可配置性等特点,目前被大量的应用在大型企业的线上数据处理中心,和军工单位。
而ASIC由于一次性成本远远高于FPGA,但由于其量产成本低,因此应用上就偏向于消费电子,如移动终端等领域。
上文所说,在未来的深度学习中,大约有95%的应用是数据的推断。而且FPGA或者ASIC相较于GPU/CPU无论在研发还是产出上的成本都明显降低。因此必然是兵家必争之地。无论从INTEL收购ALTRA/ Movidius,还是XILINX与IBM合作,抑或谷歌和高通默默开发自己的专属ASIC中都可见一斑。而且针对移动端的深度学习,FPGA或者ASIC更多的会以SOC形式出现,以至于更好的优化神经网络结构提升效率。
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!数据平台上的计算能力:哪些GPU更适合深度学习和数据库?
大数据杂谈
[ 亿欧导读 ]
GPU和AI越来越火,引起了大批投资者和开发者的注意。百度前首席科学家Andrew Ng提到,AI的春天已经到来,其重要因素之一是GPU处理能力,能让神经网络的智能可以随数据增加而提升,突破了过去的AI所能达到的平台。
最近Google在ISCA2017上披露了TPU(Tensor Processing Unit)的细节,继Haswell CPU,Tesla K80之后,又增加了一种专门用于机器学习和神经网络的高性能武器。
数据分析和GPU
GPU不仅能实现数据库的许多功能,而且其强大的计算能力,能实现实时分析。MapD和Kinetica是这方面比较有名的两家公司。MapD用NVIDIA Tesla K40/K80实现了基于SQL和列式存储的数据库,无需索引,擅长任意多组合的条件查询(Where)、聚合(Groupby)等,实现传统关系型数据库的BI功能,方便用户自由地进行多条件查询。性能优势也很明显(尤其是响应时间)。
比如,MapD将年全美国进出港航班的数据扩大10倍后,执行全表扫描的报表任务,如&SELECT...GROUP BY...”。一台带有8张Tesla K40显卡的服务器(8核/384G RAM/SSD)比3台服务器(32核/244G RAM/SSD)组成的内存数据库集群快50-100倍。
GPU数据库的另一大特色是可视化渲染和绘制。将OpenGL等的缓冲区直接映射成GPU CUDA里的显存空间,原地渲染,无需将结果从内存拷到GPU,可以实现高帧频的动画。也可以原地绘制成PNG或视频stream,再发给客户端,大大减少网络传输的数据量。这些优势吸引了很多开发者。
在实时分析上比较有名的一家公司是Kinetica。他们开始时为美国情报机构实时分析250个数据流。现在能用10个节点,基于20万个传感器,为美国邮政服务(USPS)提供15000个并行的实时分析、物流路由计算和调度等。
我国用GPU进行分析和挖掘的用户也越来越多,想深入学习的朋友也不少。最快速的入门办法是重复前人的实验。弗吉尼亚大学的Accelerating SQL Database Operations on a GPU with CUDA里的开发环境和实验,值得借鉴。他们用一张4G显存的NVIDIA Tesla C1060,在一台低配的服务器上(Xeon XGHz/4核),5G RAM),用5百万行的表做查询和汇总,响应时间30-60毫秒。
我们测过的最低配置是NVidia GTX 780,一千多块,适合用来尝试查询和聚合。先用SQLite将SQL解析成多个OpCode步骤,然后在CUDA上实现一个虚机,来逐一实现每个步骤,直至将整个表逐行遍历完。其中一些步骤可以并行,因此可用CUDA起几万个线程,每个线程处理一行。
深度需要较高的计算能力,所以对GPU的选择会极大地影响使用者体验。在GPU出现之前,一个实验可能需要等几个月,或者跑了一天才发现某个试验的参数不好。好的GPU可以在深度学习网络上快速迭代,几天跑完几个月的试验,或者几小时代替几天,几分钟代替几小时。
快速的GPU可以帮助刚开始学习的朋友快速地积累实践经验,并用深度学习解决实际问题。如果不能快速得到结果,不能快速地从失误中汲取教训,学起来会比较让人灰心。Tim Dettmers利用GPU,在一系列Kaggle比赛里应用了deep learning,并在Partly Sunny with a chance of Hashtags比赛中获了亚军。他用了两个较大的两层深度神经网络,采用了ReLU激活函数,用Dropout来实现正则化。这个网络勉强能加载到6GB的GPU显存里。
是否需要多个GPU?
Tim曾用40Gbit/s的InfiniBand搭建了一个小GPU集群,但他发现很难在多个GPU上实现并行的神经网络,而且在密集的神经网络上,速度提升也不明显。小网络可以通过数据并行更有效地并行,但对比赛里所用的这个大网络,几乎没有提速。
后来又开发了一个8-bit压缩方法,按理说,能比32-bit更有效地并行处理密集或全互联的网络层。但是结果也不理想。即使对并行算法进行优化,自己专门写代码在多颗GPU上并行执行,效果和付出的努力相比仍然得不偿失。要非常了解深度学习算法和硬件之间具体如何互动,才能判断是否能从并行里真的得到好处。
对GPU的并行支持越来越常见,但还远未普及,效果也未必很好。仅有CNTK这一种深度学习库通过Microsoft特殊的1-bit量化并行算法(效率较高)和块动量算法(效率很高),能在多个GPU和多台计算机上高效地执行算法。
在96颗GPU的集群上用CNTK,可以获得90-95倍的速度提升。下一个能高效地多机并行的库可能是Pytorch,但还没完全做好。如果想在单机上并行,可以用CNTK,Torch或Pytorch。速度可提升3.6-3.8倍。这些库包含了一些算法,能在4颗GPU的单机上并行执行。其他支持并行的库,要么慢,要么这两个问题都有。
多GPU,非并行
用多个GPU的另一个好处是,即使不并行执行算法,也可以在每个GPU上分别运行多个算法或实验。虽然不能提速,但可以一次性了解多个算法或参数的性能。当科研人员需要尽快地积累深度学习经验,尝试一个算法的不同版本时,这很有用。
这对深度学习的过程也很有好处。任务执行得越快,越能更快地得到反馈,脑子就从这些记忆片段里总结出完整的结论。在不同的GPU上用小数据集训练两个卷积网络,可以更快地摸索到如何能执行得更好。也能更顺地找到交叉验证误差(Cross validation error)的规律,并正确地解读它们。还能发现某种规律,来找到需要增加、移除或调整的参数或层。
总的来说,单GPU几乎对所有的任务都够了,不过用多个GPU来加速深度学习模型变得越来越重要。多颗便宜的GPU也能用来更快地学习深度学习。因此,建议用多个小GPU,而不是一个大的。
NVIDIA GPU,AMD GPU还是Intel Xeon Phi
用NVIDIA的标准库很容易搭建起CUDA的深度学习库,而AMD的OpenCL的标准库没这么强大。而且CUDA的GPU计算或通用GPU社区很大,而OpenCL的社区较小。从CUDA社区找到好的开源办法和可靠的编程建议更方便。
而且,NVIDIA从深度学习的起步时就开始投入,回报颇丰。虽然别的公司现在也对深度学习投入资金和精力,但起步较晚,落后较多。如果在深度学习上采用NVIDIA-CUDA之外的其他软硬件,会走弯路。
据称,Intel的Xeon Phi上支持标准C代码,而且要在Xeon Phi上加速,也很容易修改这些代码。这个功能听起来有意思。但实际上只支持很少一部分C代码,并不实用。即使支持,执行起来也很慢。Tim曾用过500颗Xeon Phi的集群,遇到一个接一个的坑,比如Xeon Phi MKL和Python Numpy不兼容,所以没法做单元测试。因为Intel Xeon Phi编译器无法正确地对模板进行代码精简,比如对switch语句,很大一部分代码需要重构。因为Xeon Phi编译器不支持一些C++11功能,所以要修改程序的C接口。既麻烦,又花时间,让人抓狂。
执行也很慢。当tensor大小连续变化时,不知道是bug,还是线程调度影响了性能。举个例子,如果全连接层(FC)或剔除层(Dropout)的大小不一样,Xeon Phi比CPU慢。
预算内的最快GPU
用于深度学习的GPU的高速取决于什么?是CUDA核?时钟速度?还是RAM大小?这些都不是。影响深度学习性能的最重要的因素是显存带宽。
GPU的显存带宽经过优化,而牺牲了访问时间(延迟)。CPU恰恰相反,所用内存较小的计算速度快,比如几个数的乘法(3*6*9);所用内存较大的计算慢,比如矩阵乘法(A*B*C)。GPU凭借其显存带宽,擅长解决需要大内存的问题。当然,GPU和CPU之间还有更复杂的区别,可以参见Tim在Quora上的回答。
所以,购买快速GPU的时候,先看看带宽。
对比CPU和GPU的带宽发展
芯片架构相同时,带宽可以直接对比。比如,Pascal显卡GTX 的性能对比,只需看显存带宽。GTX GB/s)比GTX GB/s)快25%。不过如果芯片架构不同,不能直接对比。比如Pascal和Maxwell(GTX 1080和Titan X),不同的生产工艺对同样带宽的使用不一样。不过带宽还是可以大概体现GPU有多快。另外,需要看其架构是否兼容cnDNN。绝大多数深度学习库要用cuDNN来做卷积,因此要用Kepler或更好的GPU,即GTX 600系列或以上。一般来说,Kepler比较慢,所以从性能角度,应考虑900或1000系列。为了比较不同显卡在深度学习任务上的性能,Tim做了个图。比如GTX 980和0.35个Titan X Pascal一样快,或者说Titan X Pascal比GTX快了差不多3倍。
这些结果并不来自于每张卡的深度学习benchmark测试,而是从显卡参数和计算型benchmark(在计算方面,一些加密货币挖掘任务和深度学习差不多)。所以这只是粗略估计。真实数字会有些不同,不过差距不大,显卡排名应该是对的。同时,采用没有用足GPU的小网络会让大GPU看上去不够好。比如128个隐藏单元的LSTM(批处理&64)在GTX 1080 Ti上跑的速度不比GTX 1070快多少。要得到性能区别,需要用1024个隐藏单元的LSTM(批处理&64)。
GPU跑大型深度学习网络的性能比较
一般来说,Tim建议用GTX 1080 Ti或GTX 1070。这两者都不错。如果预算够的话,可以用GTX 1080 Ti。GTX 1070便宜一点,比普通GTX Titan X(Maxwell)更快。两者都比GTX 980 Ti更适合,因为显存更大——11GB和8GB,而不是6GB。
8GB有点小,但对很多任务都足够了,比如足够应付Kaggle比赛里大多数图像数据集合自然语言理解(NLP)的任务。
刚开始接触深度学习时,GTX 1060是最好的选择,也可以偶尔用于Kaggle比赛。3GB太少,6GB有时不太够,不过能应付很多应用了。GTX 1060比普通Titan X慢,但性能和二手价格都和GTX 980差不多。
从性价比来看,10系列设计很好。GTX 和1080 Ti更好。GTX 1060适合初学者,GTX 1070的用途多,适合初创公司和某些科研和工业应用,GTX 1080 Ti是不折不扣的全能高端产品。
Tim不太建议NVIDIA Titan X(Pascal),因为性价比不太好。它更适合计算机视觉的大数据集,或视频数据的科研。显存大小对这些领域的影响非常大,而Titan X比GTX 1080 Ti大1GB,因此更适合。不过,从eBay上买GTX Titan X(Maxwell)更划算——慢一点,但12GB的显存够大。
GTX 1080Ti对大多数科研人员够用了。额外多1GB的显存对很多科研和应用的用处不大。
在科研上,Tim个人会选多张GTX 1070.他宁可多做几次实验,稍微慢一点,而不是跑一次实验,快一点。NLP对显存的要求不像计算机视觉那么紧,因此GTX 1070足够了。他现在处理的任务和方式决定了最合适的选择——GTX 1070。
选择GPU时可以用类似的思路。先想清楚所执行的任务和实验方法,再找满足要求的GPU。现在AWS上的GPU实例比较贵且慢。GTX 970比较慢,而且二手的也比较贵而且启动时显卡有内存问题。可以多花点钱买GTX 1060,速度更快,显存更大,而且没有显存问题。如果GTX 1060太贵,可以用4G显存的GTX 1050 Ti。4GB有点小,但也深度学习的起步也够了。如果在某些型号上做调整,可以得到较好性能。GTX 1050 Ti适合于大多数Kaggle比赛,不过可能在一些比赛里发挥不出选手优势。
各工作岗位将被AI取代的概率
选择岗位,查看结果
制图员和摄影师
建筑造价师
计算机硬件工程师
石油工程师
采矿和地质工程师(包含安全)
电气工程师
核能工程师
景观设计师
生物医学工程师
土木工程师
航空航天工程师
化学工程师
机械工程师
制图员和摄影师
快来扫描二维码,参与话题讨论吧!
获取验证码
新用户登录后自动创建账号
登录表示你已阅读并同意
账号为用户名/邮箱的用户 选择人工找回
关联已有账户
新用户或忘记密码请选择,快捷绑定
账号为用户名/邮箱的用户 选择人工找回
获取验证码
创建关联新账户
发送验证码
获取验证码
未完成注册的用户需设置密码
如果你遇到下面的问题
我在注册/找回密码的过程中无法收到手机短信消
我先前用E-mail注册过亿欧网但是现在没有办法通过它登录,我想找回账号
其他问题导致我无法成功的登录/注册
账号密码登录
关联已有账户
曾经使用手机注册过亿欧网账户的用户
创建并关联新账户
曾用微信登录亿欧网但没有用手机注册过亿欧的用户
没有注册过亿欧网的新用户
先前使用邮箱注册亿欧网的老用户,请点击这里进入特别通道
扫描二维码,下载亿欧客户端
Android & iOS
亿欧公众号
小程序-亿欧plusCPU-GPU之间的数据传输速度大概是多少?在不同的深度学习框架间有区别吗? - 知乎有问题,上知乎。知乎作为中文互联网最大的知识分享平台,以「知识连接一切」为愿景,致力于构建一个人人都可以便捷接入的知识分享网络,让人们便捷地与世界分享知识、经验和见解,发现更大的世界。40被浏览<strong class="NumberBoard-itemValue" title="分享邀请回答11 条评论分享收藏感谢收起深度学习用cpu训练和用gpu训练有什么区别_百度知道
深度学习用cpu训练和用gpu训练有什么区别
我有更好的答案
1、深度学习用cpu训练和用gpu训练的区别(1)CPU主要用于串行运算;而GPU则是大规模并行运算。由于深度学习中样本量巨大,参数量也很大,所以GPU的作用就是加速网络运算。(2)CPU算神经网络也是可以的,算出来的神经网络放到实际应用中效果也很好,只不过速度会很慢罢了。而目前GPU运算主要集中在矩阵乘法和卷积上,其他的逻辑运算速度并没有CPU快。2、深度学习深度学习的概念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。深度学习是机器学习中一种基于对数据进行表征学习的方法。观测值(例如一幅图像)可以使用多种方式来表示,如每个像素强度值的向量,或者更抽象地表示成一系列边、特定形状的区域等。使用神经网络训练,一个最大的问题就是训练速度的问题,特别是对于深度学习而言,过多的参数会消耗很多的时间,在神经网络训练过程中,运算最多的是关于矩阵的运算,这个时候就正好用到了GPU,GPU本来是用来处理图形的,但是因为其处理矩阵计算的高效性就运用到了深度学习之中。
  GPU概念  GPU英文全称Graphic Processing Unit,中文翻译为“图形处理器”。GPU是相对于CPU的一个概念,由于在现代的计算机中(特别是家用系统,游戏的发烧友)图形的处理变得越来越重要,需要一个专门的图形的核心处理器。  GPU的作用  GPU是显示卡的“大脑”,它决定了该显卡的档次和大部分性能,同时也是2D显示卡和3D显示卡的区别依据。2D显示芯片在处理3D图像和特效时主要依赖CPU的处理能力,称为“软加速”。3D显示芯片是将三维图像和特效处理功能集中在显示芯片内,也即所谓的“硬件加速”功能。显示芯片通常是显示卡上最大的芯片(也是引脚最多的)。现在市场上的显卡大多采用NVIDIA和ATI两家公司的图形处理芯片。  于是NVIDIA公司在1999年发布GeForce 256图形处理芯片时首先提出GPU的概念。GPU使显卡减少了对CPU的依赖,并进行部分原本CPU的工作,尤其是在3D图形处理时。GPU所采用的核心技术有硬体T&L、立方环境材质贴图和顶点混合、纹理压缩和凹凸映射贴图、双重纹理四像素256位渲染引擎等,而硬体T&L技术可以说是GPU的标志。  简单说GPU就是能够从硬件上支持T&L(Transform and Lighting,多边形转换与光源处理)的显示芯片,因为T&L是3D渲染中的一个重要部分,其作用是计算多边形的3D位置和处理动态光线效果,也可以称为“几何处理”。一个好的T&L单元,可以提供细致的3D物体和高级的光线特效;只不过大多数PC中,T&L的大部分运算是交由CPU处理的(这就也就是所谓的软件T&L),由于CPU的任务繁多,除了T&L之外,还要做内存管理、输入响应等非3D图形处理工作,因此在实际运算的时候性能会大打折扣,常常出现显卡等待CPU数据的情况,其运算速度远跟不上今天复杂三维游戏的要求。即使CPU的工作频率超过1GHz或更高,对它的帮助也不大,由于这是PC本身设计造成的问题,与CPU的速度无太大关系。  关于CPU和GPU的相关问题  第一个问题:  GPU的竞争远比CPU的竞争来得激烈。通用PC的CPU就只有英特尔和AMD两家大厂。而在GPU方面领先的是N记和A记两家厂商,但能生产中低端产品的还有英特尔、3S等好几家厂商。它们的产品虽然不如前两家,但在很多应用方面也能满足用户的需要,所以N记和A记只有拼命往前跑才不会死掉。CPU厂商没有采用GPU的先进工艺是因为CPU厂商都有自己投资的生产线,不可能一下把原来的生产线都淘汰了上新的生产线,那样做可能连当初投入的资金都难以收回。而GPU厂商由于种种原因,一般都是自己设计由别人代工的,比如找台积电代工。代工厂商为了能接到业务,只有不停升级自己的生产设备,这样才能生存下来。所以造成以上原因。  第二个问题  就如你所说的一样,CPU除了处理游戏的AI,情节等方面的数据外,对于有些图像方面也是由它完成的。当微软每次发布新的DX时,并不是每款GPU都能支持DX新的特性,所以有些图像方面的任务还得由CPU来完成。还有有些特性比如重力特性以前是由CPU来完成,现在有些GPU也能支持了,这些任务就由GPU来完成了。  第三个问题  GPU相当于专用于图像处理的CPU,正因为它专,所以它强,在处理图像时它的工作效率远高于CPU,但是CPU是通用的数据处理器,在处理数值计算时是它的强项,它能完成的任务是GPU无法代替的,所以不能用GPU来代替CPU。  另外  现在AMD收购了A记显卡芯片的设计厂商,AMD看到今后CPU和GPU只有走一条融合的道路才能地竞争中占得先机。CPU和GPU如何配合默契才能最大地提高工作效率是AMD现在考虑的问题,也是英特尔的问题。  第四个问题  微软发布windows7 其中一个显著特性就是 联合GPU和CPU的强大实力,提升GPU在硬件使用的价值,在Windows7中,CPU与GPU组成了协同处理环境。CPU运算非常复杂的序列代码,而GPU则运行大规模并行应用程序。微软利用DirectX Compute将GPU作为操作系统的核心组成部分之一。DirectX Compute。它让开发人员能够利用 GPU的大规模并行计算能力,创造出引人入胜的消费级和专业级计算应用程序。简单的说,DirectX Compute就是微软开发的GPGPU通用计算接口,欲统一GPU通用计算标准。也就是说windows7 以后GPU的硬件地位将仅次于CPU,发挥出更大的效用。
本回答被网友采纳
为您推荐:
其他类似问题
gpu的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信